📄 ddr2_test_8bit.vhd
字号:
library IEEE;
use IEEE.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use work.parameter_8bit.all;
--library synplify;
--use synplify.attributes.all;
--
-- pragma translate_off
library UNISIM;
use UNISIM.VCOMPONENTS.ALL;
-- pragma translate_on
--
entity ddr2_test_8bit is
port(
dip1 : in STD_LOGIC;
dip2 : in std_logic;
dip3 : in std_logic;
--XST_REMOVECOMMENT clk180 : in std_logic;
--XST_REMOVECOMMENT clk270 : in std_logic;
reset_in : in STD_LOGIC;
rst_dqs_div_in : in std_logic;
rst_dqs_div_out : out std_logic;
ddr2_casb : out STD_LOGIC;
delay_sel_val : in STD_LOGIC_VECTOR(4 downto 0);
clk_int : in std_logic;
wait_200us : in std_logic;
clk90_int : in std_logic;
sys_rst_val : in std_logic;
sys_rst90_val : in std_logic;
sys_rst180_val : in std_logic;
sys_rst270_val : in std_logic;
ddr2_cke : out STD_LOGIC;
ddr2_clk0 : out STD_LOGIC;
ddr2_clk0b : out STD_LOGIC;
ddr2_clk1 : out STD_LOGIC;
ddr2_clk1b : out STD_LOGIC;
ddr2_csb : out STD_LOGIC;
ddr2_rasb : out STD_LOGIC;
ddr2_web : out STD_LOGIC;
ddr2_ODT0 : out STD_LOGIC;
ddr2_address : out STD_LOGIC_VECTOR((row_address_p - 1) downto 0);
ddr2_ba : out STD_LOGIC_VECTOR((bank_address_p - 1) downto 0);
ddr2_dm : out STD_LOGIC;
led_error_output1 : out std_logic;
ddr2_dqs : inout STD_LOGIC_VECTOR(1 downto 0);
ddr2_dq : inout STD_LOGIC_VECTOR(7 downto 0)
);
end ddr2_test_8bit;
architecture arc_ddr2_test_8bit of ddr2_test_8bit is
---- Component declarations -----
component ddr2_test_bench_8bit
port(
dip2 : in std_logic;
--XST_REMOVECOMMENT clk180 : in std_logic;
clk90 : in std_logic;
fpga_clk : in std_logic;
fpga_rst0 : in std_logic;
fpga_rst90 : in std_logic;
fpga_rst180 : in std_logic;
fpga_rst270 : in std_logic;
burst_done : out std_logic;
INIT_DONE : in std_logic;
auto_ref_req : in std_logic;
ar_done : in std_logic;
u_ack : in std_logic;
u_data_val : in std_logic;
u_data_o : in std_logic_vector(15 downto 0);
u_addr : out std_logic_vector(((row_address_p + column_address_p + bank_address_p)-1) downto 0);
u_cmd : out std_logic_vector(3 downto 0);
u_data_i : out std_logic_vector(15 downto 0);
u_data_m : out std_logic_vector((mask_width-1) downto 0);
u_config_parms1 : out std_logic_vector(14 downto 0);
u_config_parms2 : out std_logic_vector(12 downto 0);
led_error_output : out std_logic
);
end component;
component ddr2_top_8bit
port(
dip1 : in std_logic;
dip3 : in std_logic;
--XST_REMOVECOMMENT clk180 : in std_logic;
--XST_REMOVECOMMENT clk270 : in std_logic;
rst_dqs_div_in : in std_logic;
rst_dqs_div_out : out std_logic;
reset_in : in std_logic;
user_input_data : in std_logic_vector(15 downto 0);
user_data_mask : in std_logic_vector((mask_width-1) downto 0);
user_output_data : out std_logic_vector(15 downto 0):=(OTHERS => 'Z');
user_data_valid : out std_logic;
user_input_address : in std_logic_vector(((row_address_p + column_address_p)-1) downto 0);
user_bank_address : in std_logic_vector((bank_address_p-1) downto 0);
user_config_register1 : in std_logic_vector(14 downto 0);
user_config_register2 : in std_logic_vector(12 downto 0);
user_command_register : in std_logic_vector(3 downto 0);
user_cmd_ack : out std_logic;
burst_done : in std_logic;
init_val : out std_logic;
auto_ref_req : out std_logic;
ar_done : out std_logic;
ddr_dqs : inout std_logic_vector(1 downto 0);
ddr_dq : inout std_logic_vector(7 downto 0):= (OTHERS => 'Z');
ddr_cke : out std_logic;
ddr_csb : out std_logic;
ddr_rasb : out std_logic;
ddr_casb : out std_logic;
ddr_web : out std_logic;
ddr_dm : out std_logic;
ddr_ba : out std_logic_vector((bank_address_p-1) downto 0);
ddr_address : out std_logic_vector((row_address_p-1) downto 0);
delay_sel_val : in STD_LOGIC_VECTOR(4 downto 0);
clk_int : in std_logic;
wait_200us : in std_logic;
clk90_int : in std_logic;
sys_rst : in std_logic;
sys_rst90 : in std_logic;
sys_rst180 : in std_logic;
ddr_ODT0 : out std_logic;
ddr2_clk0 : out std_logic;
ddr2_clk0b : out std_logic;
ddr2_clk1 : out std_logic;
ddr2_clk1b : out std_logic;
sys_rst270 : in std_logic
);
end component;
---- Signal declarations used on the diagram ----
signal user_output_data : std_logic_vector(15 downto 0);
signal u1_address : std_logic_vector(((row_address_p + column_address_p + bank_address_p)-1) downto 0);
signal user_data_val1 : std_logic;
signal u1_config_parms1 : std_logic_vector(14 downto 0);
signal u1_config_parms2 : std_logic_vector(12 downto 0);
signal user_cmd1 : std_logic_vector(3 downto 0);
signal auto_ref_req : std_logic;
signal user_ack1 : std_logic;
signal user_ack2 : std_logic;
signal u1_data_i : std_logic_vector(15 downto 0);
signal u1_data_m : std_logic_vector((mask_width-1) downto 0);
signal burst_done_val1 : std_logic;
signal init_val1 : std_logic;
signal pass_val1 : std_logic;
signal ar_done_val1 : std_logic;
signal data_valid_out1 : std_logic;
begin
---- Component instantiations ----
ddr2_top0 : ddr2_top_8bit port map(
auto_ref_req => auto_ref_req,
wait_200us => wait_200us,
dip1 => dip1,
dip3 => dip3,
clk_int => clk_int,
--XST_REMOVECOMMENT clk180 => clk180,
--XST_REMOVECOMMENT clk270 => clk270,
rst_dqs_div_in => rst_dqs_div_in,
rst_dqs_div_out => rst_dqs_div_out,
reset_in => reset_in,
user_input_data => u1_data_i,
user_data_mask => u1_data_m,
user_output_data => user_output_data,
user_data_valid => user_data_val1,
user_input_address => u1_address(((row_address_p + column_address_p + bank_address_p)-1) downto bank_address_p),
user_bank_address => u1_address((bank_address_p-1) downto 0),
user_config_register1 => u1_config_parms1,
user_config_register2 => u1_config_parms2,
user_command_register => user_cmd1,
user_cmd_ack => user_ack1,
burst_done => burst_done_val1,
init_val => init_val1,
ar_done => ar_done_val1,
ddr_dqs => ddr2_dqs,
ddr_dq => ddr2_dq,
ddr_cke => ddr2_cke,
ddr_csb => ddr2_csb,
ddr_rasb => ddr2_rasb,
ddr_casb => ddr2_casb,
ddr_web => ddr2_web,
ddr_dm => ddr2_dm,
ddr_ba => ddr2_ba,
ddr_address => ddr2_address,
ddr_ODT0 => ddr2_ODT0,
ddr2_clk0 => ddr2_clk0,
ddr2_clk0b => ddr2_clk0b,
ddr2_clk1 => ddr2_clk1,
ddr2_clk1b => ddr2_clk1b,
clk90_int => clk90_int,
delay_sel_val => delay_sel_val,
sys_rst => sys_rst_val,
sys_rst90 => sys_rst90_val,
sys_rst180 => sys_rst180_val,
sys_rst270 => sys_rst270_val
);
ddr2_test_bench0 : ddr2_test_bench_8bit port map (
auto_ref_req => auto_ref_req,
fpga_clk => clk_int,
dip2 => dip1 ,
--XST_REMOVECOMMENT clk180 => clk180,
fpga_rst90 => sys_rst90_val,
fpga_rst0 => sys_rst_val,
fpga_rst180 => sys_rst180_val,
fpga_rst270 => sys_rst270_val,
clk90 => clk90_int,
burst_done => burst_done_val1,
INIT_DONE => init_val1,
ar_done => ar_done_val1,
u_ack => user_ack1,
u_data_val => user_data_val1,
u_data_o => user_output_data,
u_addr => u1_address,
u_cmd => user_cmd1,
u_data_i => u1_data_i,
u_data_m => u1_data_m,
u_config_parms1 => u1_config_parms1,
u_config_parms2 => u1_config_parms2,
led_error_output => led_error_output1
);
end arc_ddr2_test_8bit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -