- fixed write latency, which shall be zero

git-svn-id: http://moon:8086/svn/vhdl/trunk@1266 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2015-05-30 13:59:21 +00:00
parent 4016d60a4c
commit dabea0e2ab
3 changed files with 19 additions and 35 deletions
@@ -187,7 +187,7 @@ add wave -noupdate -format Logic /tb_ctrl_sdr_wb32/uut/sdram_ctrl_frontend_wb16/
add wave -noupdate -format Logic /tb_ctrl_sdr_wb32/uut/sdram_ctrl_frontend_wb16/inst_sdram_ctrl_top/inst_sdram_ctrl/bank_activate add wave -noupdate -format Logic /tb_ctrl_sdr_wb32/uut/sdram_ctrl_frontend_wb16/inst_sdram_ctrl_top/inst_sdram_ctrl/bank_activate
add wave -noupdate -format Logic /tb_ctrl_sdr_wb32/uut/sdram_ctrl_frontend_wb16/inst_sdram_ctrl_top/inst_sdram_ctrl/bank_clr add wave -noupdate -format Logic /tb_ctrl_sdr_wb32/uut/sdram_ctrl_frontend_wb16/inst_sdram_ctrl_top/inst_sdram_ctrl/bank_clr
TreeUpdate [SetDefaultTree] TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {119326322 ps} 0} WaveRestoreCursors {{Cursor 1} {197521836 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
@@ -201,4 +201,4 @@ configure wave -gridperiod 1
configure wave -griddelta 40 configure wave -griddelta 40
configure wave -timeline 0 configure wave -timeline 0
update update
WaveRestoreZoom {0 ps} {126 us} WaveRestoreZoom {0 ps} {231 us}
+5 -21
View File
@@ -75,10 +75,9 @@ architecture tech of sdram_phy is
signal reset_counter : unsigned(7 downto 0) := (others => '1'); signal reset_counter : unsigned(7 downto 0) := (others => '1');
signal reset : STD_LOGIC := '1'; signal reset : STD_LOGIC := '1';
signal we_cl_pipe : unsigned(TCAS-1 downto 0); signal re_cl_pipe : unsigned(TCAS+1 downto 0); -- +2 = number of pipe registers used here
signal re_cl_pipe : unsigned(TCAS+2 downto 0); -- +2 = number of pipe registers used here
type u_tag_array_t is array (natural range 0 to TCAS+3) of user_tag_t; type u_tag_array_t is array (natural range 0 to TCAS+2) of user_tag_t;
signal u_tag_pipe : u_tag_array_t; signal u_tag_pipe : u_tag_array_t;
attribute KEEP : string; attribute KEEP : string;
@@ -92,10 +91,9 @@ begin
clk0 <= clk0_temp after 10 ps; -- fix delta delay clk0 <= clk0_temp after 10 ps; -- fix delta delay
rst0_out <= rst0; rst0_out <= rst0;
-- clk0_rd <= clk_fb; -- no feedback pin on DE0-Nano, use shifted clk1_0_out from clock gen -- clk0_rd <= clk_fb; -- no feedback pin on DE0-Nano, use shifted clk1_0_out from clock gen
phy_out.rd_data_we <= re_cl_pipe(re_cl_pipe'left); phy_out.rd_data_we <= re_cl_pipe(re_cl_pipe'left);
phy_out.tag_rd <= u_tag_pipe(u_tag_pipe'high); phy_out.tag_rd <= u_tag_pipe(u_tag_pipe'high);
phy_out.tag_wr <= u_tag_pipe(0); phy_out.tag_wr <= u_tag_pipe(0);
------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------
@@ -146,21 +144,6 @@ utag_pipe:
end if; end if;
end if; end if;
end process; end process;
we_pipe:
process(clk0)
begin
if rising_edge(clk0) then
if rst0 = '1' then
we_cl_pipe <= (others => '0');
else
for i in we_cl_pipe'length-1 downto 1 loop
we_cl_pipe(i) <= we_cl_pipe(i-1);
end loop;
we_cl_pipe(0) <= phy_ctrl.we;
end if;
end if;
end process;
re_pipe: re_pipe:
process(clk0) process(clk0)
@@ -211,7 +194,8 @@ part_clk <= clk0 after TPD_BOARD_SIM;
part_ctrl_reg.ba <= (others=>'0'); part_ctrl_reg.ba <= (others=>'0');
part_ctrl_reg.addr <= (others=>'0'); part_ctrl_reg.addr <= (others=>'0');
part_ctrl_reg.cke <= '0'; part_ctrl_reg.cke <= '0';
else else
part_ctrl_reg <= phy_ctrl.part;
phy_out.wr_data_re <= phy_ctrl.we; phy_out.wr_data_re <= phy_ctrl.we;
end if; end if;
end if; end if;
+12 -12
View File
@@ -343,7 +343,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -366,7 +366,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -389,7 +389,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -412,7 +412,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
end loop; end loop;
@@ -439,7 +439,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -462,7 +462,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -485,7 +485,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -508,7 +508,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
end loop; end loop;
@@ -754,7 +754,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -777,7 +777,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -800,7 +800,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
------------------------------------------------------------ ------------------------------------------------------------
@@ -823,7 +823,7 @@ STIMULUS: process
end loop; end loop;
STB_O <= '0'; STB_O <= '0';
wait until rising_edge(CLK_O) and dout_cnt = 7; wait until rising_edge(CLK_O) and dout_cnt = 8;
CYC_O <= '0'; CYC_O <= '0';
end loop; end loop;