OpenCores
URL https://opencores.org/ocsvn/t48/t48/trunk

Subversion Repositories t48

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 31 to Rev 32
    Reverse comparison

Rev 31 → Rev 32

/trunk/rtl/vhdl/system/t8048.vhd
2,7 → 2,7
--
-- T8048 Microcontroller System
--
-- $Id: t8048.vhd,v 1.1 2004-03-24 21:32:27 arniml Exp $
-- $Id: t8048.vhd,v 1.2 2004-03-29 19:40:14 arniml Exp $
--
-- Copyright (c) 2004, Arnim Laeuger (arniml@opencores.org)
--
69,7 → 69,6
 
 
use work.t48_core_comp_pack.t48_core;
use work.t48_core_comp_pack.clk_gen;
use work.t48_core_comp_pack.syn_rom;
use work.t48_core_comp_pack.syn_ram;
 
80,9 → 79,9
signal db_s : std_logic_vector( 7 downto 0);
signal db_dir_s : std_logic;
signal p2_s : std_logic_vector( 7 downto 0);
signal p2_limp_s : std_logic;
signal p2_low_imp_s : std_logic;
signal p1_s : std_logic_vector( 7 downto 0);
signal p1_limp_s : std_logic;
signal p1_low_imp_s : std_logic;
signal xtal3_s : std_logic;
signal dmem_addr_s : std_logic_vector( 7 downto 0);
signal dmem_we_s : std_logic;
104,37 → 103,37
sample_t1_state_g => 4
)
port map (
xtal_i => xtal_i,
reset_i => reset_n_i,
t0_i => t0_b,
t0_o => t0_s,
t0_dir_o => t0_dir_s,
int_n_i => int_n_i,
ea_i => ea_i,
rd_n_o => rd_n_o,
psen_n_o => psen_n_o,
wr_n_o => wr_n_o,
ale_o => ale_o,
db_i => db_b,
db_o => db_s,
db_dir_o => db_dir_s,
t1_i => t1_i,
p2_i => p2_b,
p2_o => p2_s,
p2_limp_o => p2_limp_s,
p1_i => p1_b,
p1_o => p1_s,
p1_limp_o => p1_limp_s,
prog_n_o => prog_n_o,
clk_i => xtal_i,
en_clk_i => xtal3_s,
xtal3_o => xtal3_s,
dmem_addr_o => dmem_addr_s,
dmem_we_o => dmem_we_s,
dmem_data_i => dmem_data_from_s,
dmem_data_o => dmem_data_to_s,
pmem_addr_o => pmem_addr_s,
pmem_data_i => pmem_data_s
xtal_i => xtal_i,
reset_i => reset_n_i,
t0_i => t0_b,
t0_o => t0_s,
t0_dir_o => t0_dir_s,
int_n_i => int_n_i,
ea_i => ea_i,
rd_n_o => rd_n_o,
psen_n_o => psen_n_o,
wr_n_o => wr_n_o,
ale_o => ale_o,
db_i => db_b,
db_o => db_s,
db_dir_o => db_dir_s,
t1_i => t1_i,
p2_i => p2_b,
p2_o => p2_s,
p2_low_imp_o => p2_low_imp_s,
p1_i => p1_b,
p1_o => p1_s,
p1_low_imp_o => p1_low_imp_s,
prog_n_o => prog_n_o,
clk_i => xtal_i,
en_clk_i => xtal3_s,
xtal3_o => xtal3_s,
dmem_addr_o => dmem_addr_s,
dmem_we_o => dmem_we_s,
dmem_data_i => dmem_data_from_s,
dmem_data_o => dmem_data_to_s,
pmem_addr_o => pmem_addr_s,
pmem_data_i => pmem_data_s
);
 
-----------------------------------------------------------------------------
145,8 → 144,8
--
bidirs: process (t0_b, t0_s, t0_dir_s,
db_b, db_s, db_dir_s,
p1_b, p1_s, p1_limp_s,
p2_b, p2_s, p2_limp_s)
p1_b, p1_s, p1_low_imp_s,
p2_b, p2_s, p2_low_imp_s)
 
function open_collector_f(sig : std_logic) return std_logic is
variable sig_v : std_logic;
179,7 → 178,7
for i in p1_b'range loop
p1_b(i) <= open_collector_f(p1_s(i));
end loop;
-- if p1_limp_s = '1' then
-- if p1_low_imp_s = '1' then
-- p1_b <= p1_s;
-- else
-- p1_b <= (others => 'Z');
189,7 → 188,7
for i in p2_b'range loop
p2_b(i) <= open_collector_f(p2_s(i));
end loop;
-- if p2_limp_s = '1' then
-- if p2_low_imp_s = '1' then
-- p2_b <= p2_b_s;
-- else
-- p2_b <= (others => 'Z');
229,4 → 228,7
-- File History:
--
-- $Log: not supported by cvs2svn $
-- Revision 1.1 2004/03/24 21:32:27 arniml
-- initial check-in
--
-------------------------------------------------------------------------------
/trunk/rtl/vhdl/p1.vhd
3,7 → 3,7
-- The Port 1 unit.
-- Implements the Port 1 logic.
--
-- $Id: p1.vhd,v 1.1 2004-03-23 21:31:52 arniml Exp $
-- $Id: p1.vhd,v 1.2 2004-03-29 19:39:58 arniml Exp $
--
-- All rights reserved
--
51,19 → 51,19
 
port (
-- Global Interface -------------------------------------------------------
clk_i : in std_logic;
res_i : in std_logic;
en_clk_i : in boolean;
clk_i : in std_logic;
res_i : in std_logic;
en_clk_i : in boolean;
-- T48 Bus Interface ------------------------------------------------------
data_i : in word_t;
data_o : out word_t;
write_p1_i : in boolean;
read_p1_i : in boolean;
read_reg_i : in boolean;
data_i : in word_t;
data_o : out word_t;
write_p1_i : in boolean;
read_p1_i : in boolean;
read_reg_i : in boolean;
-- Port 1 Interface -------------------------------------------------------
p1_i : in word_t;
p1_o : out word_t;
p1_limp_o : out std_logic
p1_i : in word_t;
p1_o : out word_t;
p1_low_imp_o : out std_logic
);
 
end p1;
79,7 → 79,7
signal p1_q : word_t;
 
-- the low impedance marker
signal limp_q : std_logic;
signal low_imp_q : std_logic;
 
begin
 
92,17 → 92,17
p1_reg: process (res_i, clk_i)
begin
if res_i = res_active_c then
p1_q <= (others => '1');
limp_q <= '0';
p1_q <= (others => '1');
low_imp_q <= '0';
 
elsif clk_i'event and clk_i = clk_active_c then
if en_clk_i then
 
if write_p1_i then
p1_q <= data_i;
limp_q <= '1';
p1_q <= data_i;
low_imp_q <= '1';
else
limp_q <= '0';
low_imp_q <= '0';
end if;
 
end if;
117,13 → 117,13
-----------------------------------------------------------------------------
-- Output Mapping.
-----------------------------------------------------------------------------
p1_o <= p1_q;
p1_limp_o <= limp_q;
data_o <= (others => bus_idle_level_c)
when not read_p1_i else
p1_q
when read_reg_i else
p1_i;
p1_o <= p1_q;
p1_low_imp_o <= low_imp_q;
data_o <= (others => bus_idle_level_c)
when not read_p1_i else
p1_q
when read_reg_i else
p1_i;
 
end rtl;
 
132,5 → 132,7
-- File History:
--
-- $Log: not supported by cvs2svn $
-- Revision 1.1 2004/03/23 21:31:52 arniml
-- initial check-in
--
-------------------------------------------------------------------------------
/trunk/rtl/vhdl/p2.vhd
3,7 → 3,7
-- The Port 2 unit.
-- Implements the Port 2 logic.
--
-- $Id: p2.vhd,v 1.2 2004-03-28 13:11:43 arniml Exp $
-- $Id: p2.vhd,v 1.3 2004-03-29 19:39:58 arniml Exp $
--
-- All rights reserved
--
69,7 → 69,7
pch_i : in nibble_t;
p2_i : in word_t;
p2_o : out word_t;
p2_limp_o : out std_logic
p2_low_imp_o : out std_logic
);
 
end p2;
89,7 → 89,7
signal p2_q : word_t;
 
-- the low impedance marker
signal limp_q : std_logic;
signal low_imp_q : std_logic;
 
-- the expander register
signal exp_q : nibble_t;
105,22 → 105,22
p2_regs: process (res_i, clk_i)
begin
if res_i = res_active_c then
p2_q <= (others => '1');
limp_q <= '0';
exp_q <= (others => '0');
p2_q <= (others => '1');
low_imp_q <= '0';
exp_q <= (others => '0');
 
elsif clk_i'event and clk_i = clk_active_c then
if en_clk_i then
 
if write_p2_i then
p2_q <= data_i;
limp_q <= '1';
p2_q <= data_i;
low_imp_q <= '1';
else
limp_q <= '0';
low_imp_q <= '0';
end if;
 
if write_exp_i then
exp_q <= data_i(exp_q'range);
exp_q <= data_i(exp_q'range);
end if;
 
end if;
189,7 → 189,7
-----------------------------------------------------------------------------
-- Output Mapping.
-----------------------------------------------------------------------------
p2_limp_o <= limp_q;
p2_low_imp_o <= low_imp_q;
 
end rtl;
 
198,6 → 198,9
-- File History:
--
-- $Log: not supported by cvs2svn $
-- Revision 1.2 2004/03/28 13:11:43 arniml
-- rework Port 2 expander handling
--
-- Revision 1.1 2004/03/23 21:31:53 arniml
-- initial check-in
--
/trunk/rtl/vhdl/t48_core_comp_pack-p.vhd
1,6 → 1,6
-------------------------------------------------------------------------------
--
-- $Id: t48_core_comp_pack-p.vhd,v 1.1 2004-03-23 21:31:53 arniml Exp $
-- $Id: t48_core_comp_pack-p.vhd,v 1.2 2004-03-29 19:39:58 arniml Exp $
--
-- Copyright (c) 2004, Arnim Laeuger (arniml@opencores.org)
--
25,57 → 25,40
);
 
port (
xtal_i : in std_logic;
reset_i : in std_logic;
t0_i : in std_logic;
t0_o : out std_logic;
t0_dir_o : out std_logic;
int_n_i : in std_logic;
ea_i : in std_logic;
rd_n_o : out std_logic;
psen_n_o : out std_logic;
wr_n_o : out std_logic;
ale_o : out std_logic;
db_i : in std_logic_vector( 7 downto 0);
db_o : out std_logic_vector( 7 downto 0);
db_dir_o : out std_logic;
t1_i : in std_logic;
p2_i : in std_logic_vector( 7 downto 0);
p2_o : out std_logic_vector( 7 downto 0);
p2_limp_o : out std_logic;
p1_i : in std_logic_vector( 7 downto 0);
p1_o : out std_logic_vector( 7 downto 0);
p1_limp_o : out std_logic;
prog_n_o : out std_logic;
clk_i : in std_logic;
en_clk_i : in std_logic;
xtal3_o : out std_logic;
dmem_addr_o : out std_logic_vector( 7 downto 0);
dmem_we_o : out std_logic;
dmem_data_i : in std_logic_vector( 7 downto 0);
dmem_data_o : out std_logic_vector( 7 downto 0);
pmem_addr_o : out std_logic_vector(11 downto 0);
pmem_data_i : in std_logic_vector( 7 downto 0)
xtal_i : in std_logic;
reset_i : in std_logic;
t0_i : in std_logic;
t0_o : out std_logic;
t0_dir_o : out std_logic;
int_n_i : in std_logic;
ea_i : in std_logic;
rd_n_o : out std_logic;
psen_n_o : out std_logic;
wr_n_o : out std_logic;
ale_o : out std_logic;
db_i : in std_logic_vector( 7 downto 0);
db_o : out std_logic_vector( 7 downto 0);
db_dir_o : out std_logic;
t1_i : in std_logic;
p2_i : in std_logic_vector( 7 downto 0);
p2_o : out std_logic_vector( 7 downto 0);
p2_low_imp_o : out std_logic;
p1_i : in std_logic_vector( 7 downto 0);
p1_o : out std_logic_vector( 7 downto 0);
p1_low_imp_o : out std_logic;
prog_n_o : out std_logic;
clk_i : in std_logic;
en_clk_i : in std_logic;
xtal3_o : out std_logic;
dmem_addr_o : out std_logic_vector( 7 downto 0);
dmem_we_o : out std_logic;
dmem_data_i : in std_logic_vector( 7 downto 0);
dmem_data_o : out std_logic_vector( 7 downto 0);
pmem_addr_o : out std_logic_vector(11 downto 0);
pmem_data_i : in std_logic_vector( 7 downto 0)
);
end component;
 
component clk_gate
port (
xtal_i : in std_logic;
xtal3_i : in std_logic;
clk_o : out std_logic
);
end component;
 
component clk_gen
port (
xtal_i : in std_logic;
xtal3_i : in std_logic;
res_i : in std_logic;
clk_o : out std_logic
);
end component;
 
component syn_rom
generic (
address_width_g : positive := 10
/trunk/rtl/vhdl/t48_core.vhd
2,7 → 2,7
--
-- T48 Microcontroller Core
--
-- $Id: t48_core.vhd,v 1.3 2004-03-28 21:27:50 arniml Exp $
-- $Id: t48_core.vhd,v 1.4 2004-03-29 19:39:58 arniml Exp $
--
-- Copyright (c) 2004, Arnim Laeuger (arniml@opencores.org)
--
82,38 → 82,38
 
port (
-- T48 Interface ----------------------------------------------------------
xtal_i : in std_logic;
reset_i : in std_logic;
t0_i : in std_logic;
t0_o : out std_logic;
t0_dir_o : out std_logic;
int_n_i : in std_logic;
ea_i : in std_logic;
rd_n_o : out std_logic;
psen_n_o : out std_logic;
wr_n_o : out std_logic;
ale_o : out std_logic;
db_i : in std_logic_vector( 7 downto 0);
db_o : out std_logic_vector( 7 downto 0);
db_dir_o : out std_logic;
t1_i : in std_logic;
p2_i : in std_logic_vector( 7 downto 0);
p2_o : out std_logic_vector( 7 downto 0);
p2_limp_o : out std_logic;
p1_i : in std_logic_vector( 7 downto 0);
p1_o : out std_logic_vector( 7 downto 0);
p1_limp_o : out std_logic;
prog_n_o : out std_logic;
xtal_i : in std_logic;
reset_i : in std_logic;
t0_i : in std_logic;
t0_o : out std_logic;
t0_dir_o : out std_logic;
int_n_i : in std_logic;
ea_i : in std_logic;
rd_n_o : out std_logic;
psen_n_o : out std_logic;
wr_n_o : out std_logic;
ale_o : out std_logic;
db_i : in std_logic_vector( 7 downto 0);
db_o : out std_logic_vector( 7 downto 0);
db_dir_o : out std_logic;
t1_i : in std_logic;
p2_i : in std_logic_vector( 7 downto 0);
p2_o : out std_logic_vector( 7 downto 0);
p2_low_imp_o : out std_logic;
p1_i : in std_logic_vector( 7 downto 0);
p1_o : out std_logic_vector( 7 downto 0);
p1_low_imp_o : out std_logic;
prog_n_o : out std_logic;
-- Core Interface ---------------------------------------------------------
clk_i : in std_logic;
en_clk_i : in std_logic;
xtal3_o : out std_logic;
dmem_addr_o : out std_logic_vector( 7 downto 0);
dmem_we_o : out std_logic;
dmem_data_i : in std_logic_vector( 7 downto 0);
dmem_data_o : out std_logic_vector( 7 downto 0);
pmem_addr_o : out std_logic_vector(11 downto 0);
pmem_data_i : in std_logic_vector( 7 downto 0)
clk_i : in std_logic;
en_clk_i : in std_logic;
xtal3_o : out std_logic;
dmem_addr_o : out std_logic_vector( 7 downto 0);
dmem_we_o : out std_logic;
dmem_data_i : in std_logic_vector( 7 downto 0);
dmem_data_o : out std_logic_vector( 7 downto 0);
pmem_addr_o : out std_logic_vector(11 downto 0);
pmem_data_i : in std_logic_vector( 7 downto 0)
);
 
end t48_core;
520,24 → 520,24
use_p1: if include_port1_g = 1 generate
p1_b : p1
port map (
clk_i => clk_i,
res_i => reset_i,
en_clk_i => en_clk_s,
data_i => t48_data_s,
data_o => p1_data_s,
write_p1_i => p1_write_p1_s,
read_p1_i => p1_read_p1_s,
read_reg_i => p1_read_reg_s,
p1_i => p1_i,
p1_o => p1_o,
p1_limp_o => p1_limp_o
clk_i => clk_i,
res_i => reset_i,
en_clk_i => en_clk_s,
data_i => t48_data_s,
data_o => p1_data_s,
write_p1_i => p1_write_p1_s,
read_p1_i => p1_read_p1_s,
read_reg_i => p1_read_reg_s,
p1_i => p1_i,
p1_o => p1_o,
p1_low_imp_o => p1_low_imp_o
);
end generate;
 
skip_p1: if include_port1_g = 0 generate
p1_data_s <= (others => bus_idle_level_c);
p1_o <= (others => '0');
p1_limp_o <= '0';
p1_data_s <= (others => bus_idle_level_c);
p1_o <= (others => '0');
p1_low_imp_o <= '0';
end generate;
 
use_p2: if include_port2_g = 1 generate
558,14 → 558,14
pch_i => pmem_addr_s(11 downto 8),
p2_i => p2_i,
p2_o => p2_o,
p2_limp_o => p2_limp_o
p2_low_imp_o => p2_low_imp_o
);
end generate;
 
skip_p2: if include_port2_g = 0 generate
p2_data_s <= (others => bus_idle_level_c);
p2_o <= (others => '0');
p2_limp_o <= '0';
p2_data_s <= (others => bus_idle_level_c);
p2_o <= (others => '0');
p2_low_imp_o <= '0';
end generate;
 
pmem_ctrl_b : pmem_ctrl
632,6 → 632,9
-- File History:
--
-- $Log: not supported by cvs2svn $
-- Revision 1.3 2004/03/28 21:27:50 arniml
-- update wiring for DA support
--
-- Revision 1.2 2004/03/28 13:13:20 arniml
-- connect control signal for Port 2 expander
--
/trunk/rtl/vhdl/t48_comp_pack-p.vhd
1,6 → 1,6
-------------------------------------------------------------------------------
--
-- $Id: t48_comp_pack-p.vhd,v 1.3 2004-03-28 21:27:49 arniml Exp $
-- $Id: t48_comp_pack-p.vhd,v 1.4 2004-03-29 19:39:58 arniml Exp $
--
-- Copyright (c) 2004, Arnim Laeuger (arniml@opencores.org)
--
308,17 → 308,17
 
component p1
port (
clk_i : in std_logic;
res_i : in std_logic;
en_clk_i : in boolean;
data_i : in word_t;
data_o : out word_t;
write_p1_i : in boolean;
read_p1_i : in boolean;
read_reg_i : in boolean;
p1_i : in word_t;
p1_o : out word_t;
p1_limp_o : out std_logic
clk_i : in std_logic;
res_i : in std_logic;
en_clk_i : in boolean;
data_i : in word_t;
data_o : out word_t;
write_p1_i : in boolean;
read_p1_i : in boolean;
read_reg_i : in boolean;
p1_i : in word_t;
p1_o : out word_t;
p1_low_imp_o : out std_logic
);
end component;
 
339,7 → 339,7
pch_i : in nibble_t;
p2_i : in word_t;
p2_o : out word_t;
p2_limp_o : out std_logic
p2_low_imp_o : out std_logic
);
end component;
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.