- fixed Zwischenstand
git-svn-id: http://moon:8086/svn/vhdl/trunk@1195 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -19,12 +19,12 @@ vcom -explicit -93 "../src/ddr_clk_virtex4.vhd"
|
|||||||
vcom -explicit -93 "../src/ddr_phy_virtex4.vhd"
|
vcom -explicit -93 "../src/ddr_phy_virtex4.vhd"
|
||||||
vcom -explicit -93 "../src/sdram_ctrl_top.vhd"
|
vcom -explicit -93 "../src/sdram_ctrl_top.vhd"
|
||||||
vcom -explicit -93 "../src/sdram_ctrl_frontend64_wb.vhd"
|
vcom -explicit -93 "../src/sdram_ctrl_frontend64_wb.vhd"
|
||||||
|
vcom -explicit -93 "../src/ctrl_ddr_wb.vhd"
|
||||||
vcom -explicit -93 "../src/mt46v16m16.vhd"
|
vcom -explicit -93 "../src/mt46v16m16.vhd"
|
||||||
vcom -explicit -93 "../src/tb_sdram_ctrl_frontend64_wb.vhd"
|
vcom -explicit -93 "../src/tb_ctrl_ddr_wb.vhd"
|
||||||
|
|
||||||
#restart -force
|
vsim -t 1ps -lib work tb_ctrl_ddr_wb
|
||||||
vsim -t 1ps -lib work tb_sdram_ctrl_frontend64_wb
|
do {tb_ctrl_ddr_wb.wdo}
|
||||||
do {tb_sdram_ctrl_frontend64_wb.wdo}
|
|
||||||
view wave
|
view wave
|
||||||
view structure
|
view structure
|
||||||
view signals
|
view signals
|
||||||
|
|||||||
@@ -1,43 +1,42 @@
|
|||||||
onerror {resume}
|
onerror {resume}
|
||||||
quietly WaveActivateNextPane {} 0
|
quietly WaveActivateNextPane {} 0
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/clk_o
|
add wave -noupdate -divider J-Bus
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/rst_o
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/clk_o
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/cyc_o
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/rst_o
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/stb_o
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/cyc_o
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/we_o
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/stb_o
|
||||||
add wave -noupdate -format Literal /tb_sdram_ctrl_frontend64_wb/sel_o
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/we_o
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/ack_i
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/sel_o
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/mrdy_o
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/ack_i
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/srdy_i
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/mrdy_o
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/addr_o
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/srdy_i
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/dat_i
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/addr_o
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/dat_o
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/dat_i
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/dout_reg
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/dat_o
|
||||||
add wave -noupdate -format Literal /tb_sdram_ctrl_frontend64_wb/dout_cnt
|
add wave -noupdate -divider SDRAM
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/sdram_clk
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/sdclk
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/sdram_clk_fb
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/sdclk_fb
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/sdram_clk0
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/part_clk_p
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/sdram_rst0
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/part_clk_n
|
||||||
add wave -noupdate -divider Part
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/part_cke
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/part_cs_n
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/part_cs_n
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/part_we_n
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/part_we_n
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/part_ras_n
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/part_ras_n
|
||||||
add wave -noupdate -format Logic /tb_sdram_ctrl_frontend64_wb/part_cas_n
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/part_cas_n
|
||||||
add wave -noupdate -format Literal /tb_sdram_ctrl_frontend64_wb/part_ba
|
add wave -noupdate -format Literal /tb_ctrl_ddr_wb/part_ba
|
||||||
add wave -noupdate -format Literal /tb_sdram_ctrl_frontend64_wb/part_dm
|
add wave -noupdate -format Literal /tb_ctrl_ddr_wb/part_dm
|
||||||
add wave -noupdate -format Literal /tb_sdram_ctrl_frontend64_wb/part_dqs
|
add wave -noupdate -format Literal /tb_ctrl_ddr_wb/part_dqs
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/part_addr
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/part_addr
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/part_data
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/part_data
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/inst_sdram_ctrl/u_addr
|
add wave -noupdate -divider Test
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/inst_sdram_ctrl/u_col_addr
|
add wave -noupdate -format Literal /tb_ctrl_ddr_wb/sd_cmd
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/inst_sdram_ctrl/col_addr_reg
|
add wave -noupdate -format Logic /tb_ctrl_ddr_wb/dout_rst
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/inst_sdram_ctrl/u_row_addr
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/sddat
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/inst_sdram_ctrl/row_addr_reg
|
add wave -noupdate -format Literal /tb_ctrl_ddr_wb/sdsel
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/inst_sdram_ctrl/u_bank_addr
|
add wave -noupdate -format Literal -radix hexadecimal /tb_ctrl_ddr_wb/dout_reg
|
||||||
add wave -noupdate -format Literal -radix hexadecimal /tb_sdram_ctrl_frontend64_wb/sdram_ctrl_frontend64_wb/inst_sdram_ctrl_top/inst_sdram_ctrl/bank_addr_reg
|
add wave -noupdate -format Literal /tb_ctrl_ddr_wb/dout_cnt
|
||||||
add wave -noupdate -format Literal /tb_sdram_ctrl_frontend64_wb/sd_cmd
|
|
||||||
TreeUpdate [SetDefaultTree]
|
TreeUpdate [SetDefaultTree]
|
||||||
WaveRestoreCursors {{Cursor 1} {38990166 ps} 0}
|
WaveRestoreCursors {{Cursor 1} {189465865 ps} 0}
|
||||||
configure wave -namecolwidth 150
|
configure wave -namecolwidth 150
|
||||||
configure wave -valuecolwidth 100
|
configure wave -valuecolwidth 100
|
||||||
configure wave -justifyvalue left
|
configure wave -justifyvalue left
|
||||||
@@ -51,4 +50,4 @@ configure wave -gridperiod 1
|
|||||||
configure wave -griddelta 40
|
configure wave -griddelta 40
|
||||||
configure wave -timeline 0
|
configure wave -timeline 0
|
||||||
update
|
update
|
||||||
WaveRestoreZoom {38975716 ps} {39081070 ps}
|
WaveRestoreZoom {0 ps} {210 us}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ entity sdram_ctrl_frontend64_wb is
|
|||||||
DAT_I : in unsigned(SDR_DATA_WIDTH-1 downto 0);
|
DAT_I : in unsigned(SDR_DATA_WIDTH-1 downto 0);
|
||||||
DAT_O : out unsigned(SDR_DATA_WIDTH-1 downto 0);
|
DAT_O : out unsigned(SDR_DATA_WIDTH-1 downto 0);
|
||||||
|
|
||||||
-- Phy interface
|
-- PHY interface
|
||||||
phy_ctrl : out phy_ctrl_t;
|
phy_ctrl : out phy_ctrl_t;
|
||||||
phy_in : out phy_in_t;
|
phy_in : out phy_in_t;
|
||||||
phy_out : in phy_out_t;
|
phy_out : in phy_out_t;
|
||||||
@@ -215,7 +215,7 @@ begin
|
|||||||
u_cmd => u_cmd,
|
u_cmd => u_cmd,
|
||||||
u_cmd_we => u_cmd_we,
|
u_cmd_we => u_cmd_we,
|
||||||
|
|
||||||
-- Phy controll interface
|
-- Phy control interface
|
||||||
phy_ctrl => phy_ctrl
|
phy_ctrl => phy_ctrl
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -32,17 +32,17 @@ use work.sdram_types.all;
|
|||||||
entity sdram_ctrl_frontend_wb is
|
entity sdram_ctrl_frontend_wb is
|
||||||
Generic
|
Generic
|
||||||
(
|
(
|
||||||
BL : natural := 2;
|
BURST_LEN : natural := 2;
|
||||||
F_SYSCLK : real := 100.0;
|
F_SYSCLK : real := 100.0;
|
||||||
f_sdrclk : real := 100.0;
|
F_SDRCLK : real := 100.0;
|
||||||
fifo_depth : integer := 4
|
FIFO_DEPTH : integer := 4
|
||||||
);
|
);
|
||||||
Port
|
Port
|
||||||
(
|
(
|
||||||
RST_I : in STD_LOGIC;
|
RST_I : in STD_LOGIC;
|
||||||
CLK_I : in STD_LOGIC;
|
CLK_I : in STD_LOGIC;
|
||||||
SDRAM_CLK_I : in STD_LOGIC;
|
SDRAM_RST0 : in STD_LOGIC;
|
||||||
SDRAM_CLK_FB_I : in STD_LOGIC;
|
SDRAM_CLK0 : in STD_LOGIC;
|
||||||
|
|
||||||
CYC_I : in STD_LOGIC;
|
CYC_I : in STD_LOGIC;
|
||||||
STB_I : in STD_LOGIC;
|
STB_I : in STD_LOGIC;
|
||||||
@@ -55,6 +55,11 @@ entity sdram_ctrl_frontend_wb is
|
|||||||
DAT_I : in unsigned(31 downto 0);
|
DAT_I : in unsigned(31 downto 0);
|
||||||
DAT_O : out unsigned(31 downto 0);
|
DAT_O : out unsigned(31 downto 0);
|
||||||
|
|
||||||
|
-- PHY interface
|
||||||
|
phy_ctrl : out phy_ctrl_t;
|
||||||
|
phy_in : out phy_in_t;
|
||||||
|
phy_out : in phy_out_t;
|
||||||
|
|
||||||
-- SDRAM signals
|
-- SDRAM signals
|
||||||
sd_clk_p : out STD_LOGIC;
|
sd_clk_p : out STD_LOGIC;
|
||||||
sd_clk_n : out STD_LOGIC;
|
sd_clk_n : out STD_LOGIC;
|
||||||
@@ -74,24 +79,11 @@ end sdram_ctrl_frontend_wb;
|
|||||||
|
|
||||||
architecture struct of sdram_ctrl_frontend_wb is
|
architecture struct of sdram_ctrl_frontend_wb is
|
||||||
|
|
||||||
signal SDRAM_CLK0 : std_logic;
|
|
||||||
signal SDRAM_RST0 : std_logic;
|
|
||||||
|
|
||||||
signal phy_in : phy_in_t;
|
|
||||||
signal phy_out : phy_out_t;
|
|
||||||
|
|
||||||
signal u_addr : user_addr_t;
|
signal u_addr : user_addr_t;
|
||||||
signal u_tag_in : user_tag_t;
|
signal u_tag_in : user_tag_t;
|
||||||
signal u_tag_rd : user_tag_t;
|
|
||||||
signal u_tag_wr : user_tag_t;
|
|
||||||
signal u_cmd : user_cmd_t;
|
signal u_cmd : user_cmd_t;
|
||||||
signal u_cmd_we : std_logic;
|
signal u_cmd_we : std_logic;
|
||||||
signal u_busy : std_logic;
|
signal u_busy : std_logic;
|
||||||
signal u_data_w : unsigned(SDR_DATA_WIDTH-1 downto 0);
|
|
||||||
signal u_dm_wr_in : unsigned(SDR_DM_WIDTH-1 downto 0);
|
|
||||||
signal u_data_r : unsigned(SDR_DATA_WIDTH-1 downto 0);
|
|
||||||
signal u_rd_data_we : std_logic;
|
|
||||||
signal u_wr_data_re : std_logic;
|
|
||||||
signal rdy : std_logic;
|
signal rdy : std_logic;
|
||||||
|
|
||||||
constant CAT_FIFO_WIDTH : integer := user_cmd_t'length + user_tag_t'length + DDR_ROW_ADDR_WIDTH + DDR_BANK_WIDTH + DDR_COL_ADDR_WIDTH;
|
constant CAT_FIFO_WIDTH : integer := user_cmd_t'length + user_tag_t'length + DDR_ROW_ADDR_WIDTH + DDR_BANK_WIDTH + DDR_COL_ADDR_WIDTH;
|
||||||
@@ -137,7 +129,7 @@ begin
|
|||||||
inst_cat_fifo: entity work.fifo_sync
|
inst_cat_fifo: entity work.fifo_sync
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
addr_width => fifo_depth,
|
addr_width => FIFO_DEPTH,
|
||||||
data_width => CAT_FIFO_WIDTH
|
data_width => CAT_FIFO_WIDTH
|
||||||
)
|
)
|
||||||
PORT MAP
|
PORT MAP
|
||||||
@@ -158,7 +150,7 @@ begin
|
|||||||
inst_write_fifo: entity work.fifo_async
|
inst_write_fifo: entity work.fifo_async
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
addr_width => fifo_depth,
|
addr_width => FIFO_DEPTH,
|
||||||
data_width => write_fifo_din'length
|
data_width => write_fifo_din'length
|
||||||
)
|
)
|
||||||
PORT MAP
|
PORT MAP
|
||||||
@@ -180,7 +172,7 @@ begin
|
|||||||
inst_read_fifo: entity work.fifo_async
|
inst_read_fifo: entity work.fifo_async
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
addr_width => fifo_depth,
|
addr_width => FIFO_DEPTH,
|
||||||
data_width => read_fifo_din'length
|
data_width => read_fifo_din'length
|
||||||
)
|
)
|
||||||
PORT MAP
|
PORT MAP
|
||||||
@@ -202,7 +194,7 @@ begin
|
|||||||
inst_sdram_ctrl_top : entity work.sdram_ctrl_top
|
inst_sdram_ctrl_top : entity work.sdram_ctrl_top
|
||||||
Generic map
|
Generic map
|
||||||
(
|
(
|
||||||
BL => BL,
|
BURST_LEN => BURST_LEN,
|
||||||
F_SYSCLK => F_SYSCLK,
|
F_SYSCLK => F_SYSCLK,
|
||||||
F_SDRCLK => F_SDRCLK,
|
F_SDRCLK => F_SDRCLK,
|
||||||
FIFO_DEPTH => FIFO_DEPTH
|
FIFO_DEPTH => FIFO_DEPTH
|
||||||
@@ -213,10 +205,8 @@ begin
|
|||||||
sys_rst_in => RST_I,
|
sys_rst_in => RST_I,
|
||||||
sys_clk_in => CLK_I,
|
sys_clk_in => CLK_I,
|
||||||
|
|
||||||
sdram_clk => SDRAM_CLK_I,
|
sdram_rst0 => SDRAM_RST0,
|
||||||
sdram_clk_fb => SDRAM_CLK_FB_I,
|
sdram_clk0 => SDRAM_CLK0,
|
||||||
sdram_clk_out => SDRAM_CLK0,
|
|
||||||
sdram_rst_out => SDRAM_RST0,
|
|
||||||
|
|
||||||
-- User interface
|
-- User interface
|
||||||
u_tag => u_tag_in,
|
u_tag => u_tag_in,
|
||||||
@@ -225,23 +215,8 @@ begin
|
|||||||
u_cmd => u_cmd,
|
u_cmd => u_cmd,
|
||||||
u_cmd_we => u_cmd_we,
|
u_cmd_we => u_cmd_we,
|
||||||
|
|
||||||
-- Phy user interface
|
-- Phy control interface
|
||||||
phy_in => phy_in,
|
phy_ctrl => phy_ctrl
|
||||||
phy_out => phy_out,
|
|
||||||
|
|
||||||
-- SDRAM signals
|
|
||||||
sd_clk_p => sd_clk_p,
|
|
||||||
sd_clk_n => sd_clk_n,
|
|
||||||
sd_cke => sd_cke,
|
|
||||||
sd_cs_n => sd_cs_n,
|
|
||||||
sd_cas_n => sd_cas_n,
|
|
||||||
sd_ras_n => sd_ras_n,
|
|
||||||
sd_we_n => sd_we_n,
|
|
||||||
sd_addr => sd_addr,
|
|
||||||
sd_ba => sd_ba,
|
|
||||||
sd_dm => sd_dm,
|
|
||||||
sd_dqs => sd_dqs,
|
|
||||||
sd_data => sd_data
|
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -28,14 +28,13 @@ use IEEE.numeric_std.ALL;
|
|||||||
use work.sdram_config.all;
|
use work.sdram_config.all;
|
||||||
use work.sdram_types.all;
|
use work.sdram_types.all;
|
||||||
|
|
||||||
entity tb_sdram_ctrl_frontend_wb is
|
entity tb_ctrl_ddr_wb is
|
||||||
end;
|
end;
|
||||||
|
|
||||||
architecture struct of tb_sdram_ctrl_frontend_wb is
|
architecture struct of tb_ctrl_ddr_wb is
|
||||||
|
|
||||||
-- Number of user data words for simulation
|
|
||||||
constant CLK_PERIOD : time := 10 ns;
|
constant CLK_PERIOD : time := 10 ns;
|
||||||
constant SDCLK_PERIOD : time := 8 ns;
|
constant SDCLK_PERIOD : time := 7.5 ns;
|
||||||
constant BURST_LEN : natural := 2;
|
constant BURST_LEN : natural := 2;
|
||||||
|
|
||||||
signal sdclk : std_logic := '1';
|
signal sdclk : std_logic := '1';
|
||||||
@@ -110,13 +109,13 @@ begin
|
|||||||
sdclk_fb <= part_clk_p after 1 ns;
|
sdclk_fb <= part_clk_p after 1 ns;
|
||||||
|
|
||||||
-- DDR SDRAM Controller Core
|
-- DDR SDRAM Controller Core
|
||||||
sdram_ctrl_frontend_wb : entity work.sdram_ctrl_frontend_wb
|
uut : entity work.ctrl_ddr_wb
|
||||||
GENERIC MAP
|
GENERIC MAP
|
||||||
(
|
(
|
||||||
BL => BURST_LEN,
|
BURST_LEN => BURST_LEN,
|
||||||
f_sysclk => 100.0,
|
F_SYSCLK => 100.000,
|
||||||
f_sdrclk => 100.0,
|
F_SDRCLK => 133.333,
|
||||||
fifo_depth => 4
|
FIFO_DEPTH => 4
|
||||||
)
|
)
|
||||||
PORT MAP
|
PORT MAP
|
||||||
(
|
(
|
||||||
|
|||||||
Reference in New Issue
Block a user