URL
https://opencores.org/ocsvn/t400/t400/trunk
Subversion Repositories t400
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 14 to Rev 15
- ↔ Reverse comparison
Rev 14 → Rev 15
/trunk/bench/vhdl/t420_rom-lpm-a.vhd
0,0 → 1,96
------------------------------------------------------------------------------- |
-- |
-- T420 ROM wrapper for lpm_rom. |
-- |
-- $Id: t420_rom-lpm-a.vhd,v 1.1 2006-05-14 22:31:08 arniml Exp $ |
-- |
-- Copyright (c) 2006 Arnim Laeuger (arniml@opencores.org) |
-- |
-- All rights reserved |
-- |
-- Redistribution and use in source and synthezised forms, with or without |
-- modification, are permitted provided that the following conditions are met: |
-- |
-- Redistributions of source code must retain the above copyright notice, |
-- this list of conditions and the following disclaimer. |
-- |
-- Redistributions in synthesized form must reproduce the above copyright |
-- notice, this list of conditions and the following disclaimer in the |
-- documentation and/or other materials provided with the distribution. |
-- |
-- Neither the name of the author nor the names of other contributors may |
-- be used to endorse or promote products derived from this software without |
-- specific prior written permission. |
-- |
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE |
-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
-- POSSIBILITY OF SUCH DAMAGE. |
-- |
-- Please report bugs to the author, but before you do so, please |
-- make sure that this is not a derivative work and that |
-- you have the latest version of this file. |
-- |
-- The latest version of this file can be found at: |
-- http://www.opencores.org/cvsweb.shtml/t400/ |
-- |
------------------------------------------------------------------------------- |
|
architecture lpm of t420_rom is |
|
component lpm_rom |
generic ( |
LPM_WIDTH : positive; |
LPM_WIDTHAD : positive; |
LPM_NUMWORDS : natural := 0; |
LPM_ADDRESS_CONTROL : string := "REGISTERED"; |
LPM_OUTDATA : string := "REGISTERED"; |
LPM_FILE : string; |
LPM_TYPE : string := "LPM_ROM"; |
LPM_HINT : string := "UNUSED" |
); |
port ( |
ADDRESS : in STD_LOGIC_VECTOR(LPM_WIDTHAD-1 downto 0); |
INCLOCK : in STD_LOGIC := '0'; |
OUTCLOCK : in STD_LOGIC := '0'; |
MEMENAB : in STD_LOGIC := '1'; |
Q : out STD_LOGIC_VECTOR(LPM_WIDTH-1 downto 0) |
); |
end component; |
|
signal vdd_s : std_logic; |
|
begin |
|
vdd_s <= '1'; |
|
rom_b : lpm_rom |
generic map ( |
LPM_WIDTH => 8, |
LPM_WIDTHAD => 10, |
LPM_OUTDATA => "UNREGISTERED", |
LPM_FILE => "rom_42x.hex" |
) |
port map ( |
ADDRESS => addr_i, |
INCLOCK => ck_i, |
OUTCLOCK => ck_i, |
MEMENAB => vdd_s, |
Q => data_o |
); |
|
end lpm; |
|
|
------------------------------------------------------------------------------- |
-- File History: |
-- |
-- $Log: not supported by cvs2svn $ |
------------------------------------------------------------------------------- |
/trunk/bench/vhdl/t420_rom-lpm-c.vhd
0,0 → 1,30
------------------------------------------------------------------------------- |
-- |
-- T420 ROM wrapper for lpm_rom. |
-- |
-- $Id: t420_rom-lpm-c.vhd,v 1.1 2006-05-14 22:31:08 arniml Exp $ |
-- |
-- Copyright (c) 2006, Arnim Laeuger (arniml@opencores.org) |
-- |
-- All rights reserved |
-- |
------------------------------------------------------------------------------- |
|
configuration t420_rom_struct_c0 of t420_rom is |
|
for lpm |
|
for rom_b: lpm_rom |
use configuration work.lpm_rom_c0; |
end for; |
|
end for; |
|
end t420_rom_struct_c0; |
|
|
------------------------------------------------------------------------------- |
-- File History: |
-- |
-- $Log: not supported by cvs2svn $ |
------------------------------------------------------------------------------- |
/trunk/rtl/vhdl/system/t420_notri-c.vhd
0,0 → 1,42
------------------------------------------------------------------------------- |
-- |
-- T420/421 controller toplevel without tri-states. |
-- |
-- $Id: t420_notri-c.vhd,v 1.1 2006-05-14 22:29:01 arniml Exp $ |
-- |
-- Copyright (c) 2006, Arnim Laeuger (arniml@opencores.org) |
-- |
-- All rights reserved |
-- |
------------------------------------------------------------------------------- |
|
configuration t420_notri_struct_c0 of t420_notri is |
|
for struct |
|
for core_b: t400_core |
use configuration work.t400_core_struct_c0; |
end for; |
|
for pmem_b: t420_rom |
use configuration work.t420_rom_struct_c0; |
end for; |
|
for dmem_b: generic_ram |
use configuration work.generic_ram_rtl_c0; |
end for; |
|
for por_b: t400_por |
use configuration work.t400_por_rtl_c0; |
end for; |
|
end for; |
|
end t420_notri_struct_c0; |
|
|
------------------------------------------------------------------------------- |
-- File History: |
-- |
-- $Log: not supported by cvs2svn $ |
------------------------------------------------------------------------------- |
/trunk/rtl/vhdl/system/t420_notri.vhd
0,0 → 1,230
------------------------------------------------------------------------------- |
-- |
-- T420/421 controller toplevel without tri-states. |
-- |
-- $Id: t420_notri.vhd,v 1.1 2006-05-14 22:29:01 arniml Exp $ |
-- |
-- Copyright (c) 2006 Arnim Laeuger (arniml@opencores.org) |
-- |
-- All rights reserved |
-- |
-- Redistribution and use in source and synthezised forms, with or without |
-- modification, are permitted provided that the following conditions are met: |
-- |
-- Redistributions of source code must retain the above copyright notice, |
-- this list of conditions and the following disclaimer. |
-- |
-- Redistributions in synthesized form must reproduce the above copyright |
-- notice, this list of conditions and the following disclaimer in the |
-- documentation and/or other materials provided with the distribution. |
-- |
-- Neither the name of the author nor the names of other contributors may |
-- be used to endorse or promote products derived from this software without |
-- specific prior written permission. |
-- |
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE |
-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
-- POSSIBILITY OF SUCH DAMAGE. |
-- |
-- Please report bugs to the author, but before you do so, please |
-- make sure that this is not a derivative work and that |
-- you have the latest version of this file. |
-- |
-- The latest version of this file can be found at: |
-- http://www.opencores.org/cvsweb.shtml/t400/ |
-- |
------------------------------------------------------------------------------- |
|
library ieee; |
use ieee.std_logic_1164.all; |
|
use work.t400_opt_pack.all; |
|
entity t420_notri is |
|
generic ( |
opt_ck_div_g : integer := t400_opt_ck_div_16_c; |
opt_cko_g : integer := t400_opt_cko_crystal_c; |
opt_l_out_type_7_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_6_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_5_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_4_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_3_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_2_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_1_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_0_g : integer := t400_opt_out_type_std_c; |
opt_d_out_type_3_g : integer := t400_opt_out_type_std_c; |
opt_d_out_type_2_g : integer := t400_opt_out_type_std_c; |
opt_d_out_type_1_g : integer := t400_opt_out_type_std_c; |
opt_d_out_type_0_g : integer := t400_opt_out_type_std_c; |
opt_g_out_type_3_g : integer := t400_opt_out_type_std_c; |
opt_g_out_type_2_g : integer := t400_opt_out_type_std_c; |
opt_g_out_type_1_g : integer := t400_opt_out_type_std_c; |
opt_g_out_type_0_g : integer := t400_opt_out_type_std_c; |
opt_so_output_type_g : integer := t400_opt_out_type_std_c; |
opt_sk_output_type_g : integer := t400_opt_out_type_std_c |
); |
port ( |
ck_i : in std_logic; |
ck_en_i : in std_logic; |
reset_n_i : in std_logic; |
cko_i : in std_logic; |
io_l_i : in std_logic_vector(7 downto 0); |
io_l_o : out std_logic_vector(7 downto 0); |
io_l_en_o : out std_logic_vector(7 downto 0); |
io_d_o : out std_logic_vector(3 downto 0); |
io_d_en_o : out std_logic_vector(3 downto 0); |
io_g_i : in std_logic_vector(3 downto 0); |
io_g_o : out std_logic_vector(3 downto 0); |
io_g_en_o : out std_logic_vector(3 downto 0); |
io_in_i : in std_logic_vector(3 downto 0); |
si_i : in std_logic; |
so_o : out std_logic; |
so_en_o : out std_logic; |
sk_o : out std_logic; |
sk_en_o : out std_logic |
); |
|
end t420_notri; |
|
|
use work.t400_core_comp_pack.t400_core; |
use work.t400_tech_comp_pack.t400_por; |
use work.t400_tech_comp_pack.generic_ram; |
|
architecture struct of t420_notri is |
|
component t420_rom |
port ( |
ck_i : in std_logic; |
addr_i : in std_logic_vector(9 downto 0); |
data_o : out std_logic_vector(7 downto 0) |
); |
end component; |
|
signal por_n_s : std_logic; |
|
signal pm_addr_s : std_logic_vector(9 downto 0); |
signal pm_data_s : std_logic_vector(7 downto 0); |
|
signal dm_addr_s : std_logic_vector(5 downto 0); |
signal dm_we_s : std_logic; |
signal dm_data_to_core_s, |
dm_data_from_core_s : std_logic_vector(3 downto 0); |
|
begin |
|
----------------------------------------------------------------------------- |
-- T400 core |
----------------------------------------------------------------------------- |
core_b : t400_core |
generic map ( |
opt_type_g => t400_opt_type_420_c, |
opt_ck_div_g => opt_ck_div_g, |
opt_cko_g => opt_cko_g, |
opt_l_out_type_7_g => opt_l_out_type_7_g, |
opt_l_out_type_6_g => opt_l_out_type_6_g, |
opt_l_out_type_5_g => opt_l_out_type_5_g, |
opt_l_out_type_4_g => opt_l_out_type_4_g, |
opt_l_out_type_3_g => opt_l_out_type_3_g, |
opt_l_out_type_2_g => opt_l_out_type_2_g, |
opt_l_out_type_1_g => opt_l_out_type_1_g, |
opt_l_out_type_0_g => opt_l_out_type_0_g, |
opt_microbus_g => t400_opt_no_microbus_c, |
opt_d_out_type_3_g => opt_d_out_type_3_g, |
opt_d_out_type_2_g => opt_d_out_type_2_g, |
opt_d_out_type_1_g => opt_d_out_type_1_g, |
opt_d_out_type_0_g => opt_d_out_type_0_g, |
opt_g_out_type_3_g => opt_g_out_type_3_g, |
opt_g_out_type_2_g => opt_g_out_type_2_g, |
opt_g_out_type_1_g => opt_g_out_type_1_g, |
opt_g_out_type_0_g => opt_g_out_type_0_g, |
opt_so_output_type_g => opt_so_output_type_g, |
opt_sk_output_type_g => opt_sk_output_type_g |
) |
port map ( |
ck_i => ck_i, |
ck_en_i => ck_en_i, |
por_n_i => por_n_s, |
reset_n_i => reset_n_i, |
cko_i => cko_i, |
pm_addr_o => pm_addr_s, |
pm_data_i => pm_data_s, |
dm_addr_o => dm_addr_s, |
dm_we_o => dm_we_s, |
dm_data_o => dm_data_from_core_s, |
dm_data_i => dm_data_to_core_s, |
io_l_i => io_l_i, |
io_l_o => io_l_o, |
io_l_en_o => io_l_en_o, |
io_d_o => io_d_o, |
io_d_en_o => io_d_en_o, |
io_g_i => io_g_i, |
io_g_o => io_g_o, |
io_g_en_o => io_g_en_o, |
io_in_i => io_in_i, |
si_i => si_i, |
so_o => so_o, |
so_en_o => so_en_o, |
sk_o => sk_o, |
sk_en_o => sk_en_o |
); |
|
|
----------------------------------------------------------------------------- |
-- Program memory |
----------------------------------------------------------------------------- |
pmem_b : t420_rom |
port map ( |
ck_i => ck_i, |
addr_i => pm_addr_s, |
data_o => pm_data_s |
); |
|
|
----------------------------------------------------------------------------- |
-- Data memory |
----------------------------------------------------------------------------- |
dmem_b : generic_ram |
generic map ( |
addr_width_g => 6, |
data_width_g => 4 |
) |
port map ( |
clk_i => ck_i, |
a_i => dm_addr_s, |
we_i => dm_we_s, |
d_i => dm_data_from_core_s, |
d_o => dm_data_to_core_s |
); |
|
|
----------------------------------------------------------------------------- |
-- Power-on reset circuit |
----------------------------------------------------------------------------- |
por_b : t400_por |
generic map ( |
delay_g => 4, |
cnt_width_g => 2 |
) |
port map ( |
clk_i => ck_i, |
por_n_o => por_n_s |
); |
|
end struct; |
|
|
------------------------------------------------------------------------------- |
-- File History: |
-- |
-- $Log: not supported by cvs2svn $ |
------------------------------------------------------------------------------- |
/trunk/rtl/vhdl/system/t420_rom-e.vhd
0,0 → 1,64
------------------------------------------------------------------------------- |
-- |
-- T420/421 ROM. |
-- |
-- $Id: t420_rom-e.vhd,v 1.1 2006-05-14 22:29:01 arniml Exp $ |
-- |
-- Copyright (c) 2006 Arnim Laeuger (arniml@opencores.org) |
-- |
-- All rights reserved |
-- |
-- Redistribution and use in source and synthezised forms, with or without |
-- modification, are permitted provided that the following conditions are met: |
-- |
-- Redistributions of source code must retain the above copyright notice, |
-- this list of conditions and the following disclaimer. |
-- |
-- Redistributions in synthesized form must reproduce the above copyright |
-- notice, this list of conditions and the following disclaimer in the |
-- documentation and/or other materials provided with the distribution. |
-- |
-- Neither the name of the author nor the names of other contributors may |
-- be used to endorse or promote products derived from this software without |
-- specific prior written permission. |
-- |
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE |
-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
-- POSSIBILITY OF SUCH DAMAGE. |
-- |
-- Please report bugs to the author, but before you do so, please |
-- make sure that this is not a derivative work and that |
-- you have the latest version of this file. |
-- |
-- The latest version of this file can be found at: |
-- http://www.opencores.org/cvsweb.shtml/t400/ |
-- |
------------------------------------------------------------------------------- |
|
library ieee; |
use ieee.std_logic_1164.all; |
|
entity t420_rom is |
|
port ( |
ck_i : in std_logic; |
addr_i : in std_logic_vector(9 downto 0); |
data_o : out std_logic_vector(7 downto 0) |
); |
|
end t420_rom; |
|
|
------------------------------------------------------------------------------- |
-- File History: |
-- |
-- $Log: not supported by cvs2svn $ |
------------------------------------------------------------------------------- |
/trunk/rtl/vhdl/system/t420-c.vhd
0,0 → 1,63
------------------------------------------------------------------------------- |
-- |
-- T420 system toplevel. |
-- |
-- $Id: t420-c.vhd,v 1.1 2006-05-14 22:29:01 arniml Exp $ |
-- |
-- Copyright (c) 2006 Arnim Laeuger (arniml@opencores.org) |
-- |
-- All rights reserved |
-- |
-- Redistribution and use in source and synthezised forms, with or without |
-- modification, are permitted provided that the following conditions are met: |
-- |
-- Redistributions of source code must retain the above copyright notice, |
-- this list of conditions and the following disclaimer. |
-- |
-- Redistributions in synthesized form must reproduce the above copyright |
-- notice, this list of conditions and the following disclaimer in the |
-- documentation and/or other materials provided with the distribution. |
-- |
-- Neither the name of the author nor the names of other contributors may |
-- be used to endorse or promote products derived from this software without |
-- specific prior written permission. |
-- |
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE |
-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
-- POSSIBILITY OF SUCH DAMAGE. |
-- |
-- Please report bugs to the author, but before you do so, please |
-- make sure that this is not a derivative work and that |
-- you have the latest version of this file. |
-- |
-- The latest version of this file can be found at: |
-- http://www.opencores.org/cvsweb.shtml/t400/ |
-- |
------------------------------------------------------------------------------- |
|
configuration t420_struct_c0 of t420 is |
|
for struct |
|
for t420_notri_b: t420_notri |
use configuration work.t420_notri_struct_c0; |
end for; |
|
end for; |
|
end t420_struct_c0; |
|
|
------------------------------------------------------------------------------- |
-- File History: |
-- |
-- $Log: not supported by cvs2svn $ |
------------------------------------------------------------------------------- |
/trunk/rtl/vhdl/system/t420.vhd
0,0 → 1,194
------------------------------------------------------------------------------- |
-- |
-- T420 system toplevel. |
-- |
-- $Id: t420.vhd,v 1.1 2006-05-14 22:29:01 arniml Exp $ |
-- |
-- Copyright (c) 2006 Arnim Laeuger (arniml@opencores.org) |
-- |
-- All rights reserved |
-- |
-- Redistribution and use in source and synthezised forms, with or without |
-- modification, are permitted provided that the following conditions are met: |
-- |
-- Redistributions of source code must retain the above copyright notice, |
-- this list of conditions and the following disclaimer. |
-- |
-- Redistributions in synthesized form must reproduce the above copyright |
-- notice, this list of conditions and the following disclaimer in the |
-- documentation and/or other materials provided with the distribution. |
-- |
-- Neither the name of the author nor the names of other contributors may |
-- be used to endorse or promote products derived from this software without |
-- specific prior written permission. |
-- |
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE |
-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
-- POSSIBILITY OF SUCH DAMAGE. |
-- |
-- Please report bugs to the author, but before you do so, please |
-- make sure that this is not a derivative work and that |
-- you have the latest version of this file. |
-- |
-- The latest version of this file can be found at: |
-- http://www.opencores.org/cvsweb.shtml/t400/ |
-- |
------------------------------------------------------------------------------- |
|
library ieee; |
use ieee.std_logic_1164.all; |
|
use work.t400_opt_pack.all; |
|
entity t420 is |
|
generic ( |
opt_ck_div_g : integer := t400_opt_ck_div_16_c; |
opt_l_out_type_7_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_6_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_5_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_4_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_3_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_2_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_1_g : integer := t400_opt_out_type_std_c; |
opt_l_out_type_0_g : integer := t400_opt_out_type_std_c; |
opt_d_out_type_1_g : integer := t400_opt_out_type_std_c; |
opt_d_out_type_0_g : integer := t400_opt_out_type_std_c; |
opt_g_out_type_2_g : integer := t400_opt_out_type_std_c; |
opt_g_out_type_1_g : integer := t400_opt_out_type_std_c; |
opt_g_out_type_0_g : integer := t400_opt_out_type_std_c; |
opt_so_output_type_g : integer := t400_opt_out_type_std_c; |
opt_sk_output_type_g : integer := t400_opt_out_type_std_c |
); |
port ( |
ck_i : in std_logic; |
ck_en_i : in std_logic; |
reset_n_i : in std_logic; |
io_l_b : inout std_logic_vector(7 downto 0); |
io_d_o : out std_logic_vector(3 downto 0); |
io_g_b : inout std_logic_vector(3 downto 0); |
io_in_i : in std_logic_vector(3 downto 0); |
si_i : in std_logic; |
so_o : out std_logic; |
sk_o : out std_logic |
); |
|
end t420; |
|
|
use work.t400_system_comp_pack.t420_notri; |
|
architecture struct of t420 is |
|
signal io_l_from_t420_s, |
io_l_en_s : std_logic_vector(7 downto 0); |
signal io_d_from_t420_s, |
io_d_en_s : std_logic_vector(3 downto 0); |
signal io_g_to_t420_s, |
io_g_from_t420_s, |
io_g_en_s : std_logic_vector(3 downto 0); |
|
signal so_s, |
so_en_s : std_logic; |
signal sk_s, |
sk_en_s : std_logic; |
|
signal gnd_s : std_logic; |
|
begin |
|
gnd_s <= '0'; |
|
----------------------------------------------------------------------------- |
-- T420 without tri-states |
----------------------------------------------------------------------------- |
t420_notri_b : t420_notri |
generic map ( |
opt_ck_div_g => opt_ck_div_g, |
opt_cko_g => t400_opt_cko_crystal_c, |
opt_l_out_type_7_g => opt_l_out_type_7_g, |
opt_l_out_type_6_g => opt_l_out_type_6_g, |
opt_l_out_type_5_g => opt_l_out_type_5_g, |
opt_l_out_type_4_g => opt_l_out_type_4_g, |
opt_l_out_type_3_g => opt_l_out_type_3_g, |
opt_l_out_type_2_g => opt_l_out_type_2_g, |
opt_l_out_type_1_g => opt_l_out_type_1_g, |
opt_l_out_type_0_g => opt_l_out_type_0_g, |
opt_d_out_type_3_g => t400_opt_out_type_std_c, |
opt_d_out_type_2_g => t400_opt_out_type_std_c, |
opt_d_out_type_1_g => opt_d_out_type_1_g, |
opt_d_out_type_0_g => opt_d_out_type_0_g, |
opt_g_out_type_3_g => t400_opt_out_type_std_c, |
opt_g_out_type_2_g => opt_g_out_type_2_g, |
opt_g_out_type_1_g => opt_g_out_type_1_g, |
opt_g_out_type_0_g => opt_g_out_type_0_g, |
opt_so_output_type_g => opt_so_output_type_g, |
opt_sk_output_type_g => opt_sk_output_type_g |
) |
port map ( |
ck_i => ck_i, |
ck_en_i => ck_en_i, |
reset_n_i => reset_n_i, |
cko_i => gnd_s, |
io_l_i => io_l_b, |
io_l_o => io_l_from_t420_s, |
io_l_en_o => io_l_en_s, |
io_d_o => io_d_from_t420_s, |
io_d_en_o => io_d_en_s, |
io_g_i => io_g_to_t420_s, |
io_g_o => io_g_from_t420_s, |
io_g_en_o => io_g_en_s, |
io_in_i => io_in_i, |
si_i => si_i, |
so_o => so_s, |
so_en_o => so_en_s, |
sk_o => sk_s, |
sk_en_o => sk_en_s |
); |
|
|
----------------------------------------------------------------------------- |
-- Tri-states for output drivers |
----------------------------------------------------------------------------- |
io_l_tri: for idx in 7 downto 0 generate |
io_l_b(idx) <= io_l_from_t420_s(idx) |
when io_l_en_s(idx) = '1' else |
'Z'; |
end generate; |
-- |
io_d_tri: for idx in 3 downto 0 generate |
io_d_o(idx) <= io_d_from_t420_s(idx) |
when io_d_en_s(idx) = '1' else |
'Z'; |
end generate; |
-- |
io_g_tri: for idx in 3 downto 0 generate |
io_g_b(idx) <= io_g_from_t420_s(idx) |
when io_g_en_s(idx) = '1' else |
'Z'; |
end generate; |
-- |
so_o <= so_s |
when so_en_s = '1' else |
'Z'; |
-- |
sk_o <= sk_s |
when sk_en_s = '1' else |
'Z'; |
|
end struct; |
|
|
------------------------------------------------------------------------------- |
-- File History: |
-- |
-- $Log: not supported by cvs2svn $ |
------------------------------------------------------------------------------- |