From 99a2ef6edb48d001ede83aa54fb2e1b17f0844c5 Mon Sep 17 00:00:00 2001 From: Erik Kooistra <kooistra@astron.nl> Date: Fri, 10 Apr 2015 09:58:15 +0000 Subject: [PATCH] Use phy records from tech_ddr_lib.tech_ddr_pkg. Use tech_ddr_lib.tech_ddr_memory_model. --- .../tb/vhdl/tb_unb1_ddr3_transpose.vhd | 75 ++++--------------- 1 file changed, 15 insertions(+), 60 deletions(-) diff --git a/boards/uniboard1/designs/unb1_ddr3_transpose/tb/vhdl/tb_unb1_ddr3_transpose.vhd b/boards/uniboard1/designs/unb1_ddr3_transpose/tb/vhdl/tb_unb1_ddr3_transpose.vhd index fedabeda98..5c16297a26 100644 --- a/boards/uniboard1/designs/unb1_ddr3_transpose/tb/vhdl/tb_unb1_ddr3_transpose.vhd +++ b/boards/uniboard1/designs/unb1_ddr3_transpose/tb/vhdl/tb_unb1_ddr3_transpose.vhd @@ -25,12 +25,13 @@ -- that are used on hardware. -LIBRARY IEEE, common_lib, unb1_board_lib, i2c_lib, ddr3_lib; +LIBRARY IEEE, tech_ddr_lib, common_lib, unb1_board_lib, i2c_lib, ddr3_lib; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; USE common_lib.common_pkg.ALL; USE unb1_board_lib.unb1_board_pkg.ALL; USE common_lib.tb_common_pkg.ALL; +USE tech_ddr_lib.tech_ddr_pkg.ALL; USE ddr3_lib.ddr3_pkg.ALL; ENTITY tb_unb1_ddr3_transpose IS @@ -52,8 +53,8 @@ ARCHITECTURE tb OF tb_unb1_ddr3_transpose IS CONSTANT c_clk_period : TIME := 5 ns; CONSTANT c_pps_period : NATURAL := 1000; - CONSTANT c_ddr : t_c_ddr3_phy := c_ddr3_phy_4g; - + CONSTANT c_tech_ddr : t_c_tech_ddr := c_tech_ddr3_4g_800m_master; + -- DUT SIGNAL clk : STD_LOGIC := '0'; SIGNAL pps : STD_LOGIC := '0'; @@ -75,14 +76,10 @@ ARCHITECTURE tb OF tb_unb1_ddr3_transpose IS SIGNAL sens_sda : STD_LOGIC; -- Signals to interface with the DDR3 memory model. - SIGNAL phy_in : t_ddr3_phy_in_arr(0 DOWNTO 0); - SIGNAL phy_io : t_ddr3_phy_io_arr(0 DOWNTO 0); - SIGNAL phy_ou : t_ddr3_phy_ou_arr(0 DOWNTO 0); + SIGNAL phy_in : t_tech_ddr3_phy_in; + SIGNAL phy_io : t_tech_ddr3_phy_io; + SIGNAL phy_ou : t_tech_ddr3_phy_ou; - SIGNAL ras_n : STD_LOGIC_VECTOR(0 DOWNTO 0); - SIGNAL cas_n : STD_LOGIC_VECTOR(0 DOWNTO 0); - SIGNAL we_n : STD_LOGIC_VECTOR(0 DOWNTO 0); - -- Model I2C sensor slaves as on the UniBoard CONSTANT c_fpga_temp_address : STD_LOGIC_VECTOR(6 DOWNTO 0) := "0011000"; -- MAX1618 address LOW LOW CONSTANT c_fpga_temp : INTEGER := 60; @@ -194,56 +191,14 @@ BEGIN ); -- DDR3 Model - u_4gb_800_ddr3_model : COMPONENT alt_mem_if_ddr3_mem_model_top_ddr3_mem_if_dm_pins_en_mem_if_dqsn_en - GENERIC MAP ( - MEM_IF_ADDR_WIDTH => 15, - MEM_IF_ROW_ADDR_WIDTH => 15, - MEM_IF_COL_ADDR_WIDTH => 10, - MEM_IF_CS_PER_RANK => 1, - MEM_IF_CONTROL_WIDTH => 1, - MEM_IF_DQS_WIDTH => 8, - MEM_IF_CS_WIDTH => 2, - MEM_IF_BANKADDR_WIDTH => 3, - MEM_IF_DQ_WIDTH => 64, - MEM_IF_CK_WIDTH => 2, - MEM_IF_CLK_EN_WIDTH => 2, - DEVICE_WIDTH => 1, - MEM_TRCD => 6, - MEM_TRTP => 3, - MEM_DQS_TO_CLK_CAPTURE_DELAY => 100, - MEM_CLK_TO_DQS_CAPTURE_DELAY => 100000, - MEM_IF_ODT_WIDTH => 2, - MEM_MIRROR_ADDRESSING_DEC => 0, - MEM_REGDIMM_ENABLED => false, - DEVICE_DEPTH => 1, - MEM_GUARANTEED_WRITE_INIT => false, - MEM_VERBOSE => true, - MEM_INIT_EN => false, - MEM_INIT_FILE => "", - DAT_DATA_WIDTH => 32 - ) + u_tech_ddr_memory_model : ENTITY tech_ddr_lib.tech_ddr_memory_model + GENERIC MAP ( + g_tech_ddr => c_tech_ddr + ) PORT MAP ( - mem_a => phy_ou(0).a(c_ddr.a_w-1 DOWNTO 0), - mem_ba => phy_ou(0).ba, - mem_ck => phy_io(0).clk, - mem_ck_n => phy_io(0).clk_n, - mem_cke => phy_ou(0).cke(c_ddr.cs_w-1 DOWNTO 0), - mem_cs_n => phy_ou(0).cs_n(c_ddr.cs_w-1 DOWNTO 0), - mem_dm => phy_ou(0).dm, - mem_ras_n => ras_n, - mem_cas_n => cas_n, - mem_we_n => we_n, - mem_reset_n => phy_ou(0).reset_n, - mem_dq => phy_io(0).dq, - mem_dqs => phy_io(0).dqs, - mem_dqs_n => phy_io(0).dqs_n, - mem_odt => phy_ou(0).odt - ); - - ras_n(0) <= phy_ou(0).ras_n; - cas_n(0) <= phy_ou(0).cas_n; - we_n(0) <= phy_ou(0).we_n; - + -- DDR3 PHY interface + mem3_in => phy_ou, + mem3_io => phy_io + ); - END tb; -- GitLab