- fixed Zwischenstand

git-svn-id: http://moon:8086/svn/vhdl/trunk@1195 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2015-05-24 09:22:21 +00:00
parent 477467abaa
commit f06a5b3eb8
5 changed files with 69 additions and 96 deletions
@@ -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
+37 -38
View File
@@ -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
( (