Skip to content
Snippets Groups Projects
Commit 65e0540f authored by Job van Wee's avatar Job van Wee
Browse files

NOT ready for review.

parent 6ff51f1d
No related branches found
No related tags found
1 merge request!215Resolve L2SDP-660
Pipeline #25990 passed
...@@ -54,8 +54,7 @@ ARCHITECTURE tb OF tb_ddrctrl IS ...@@ -54,8 +54,7 @@ ARCHITECTURE tb OF tb_ddrctrl IS
CONSTANT c_in_data_w : NATURAL := g_nof_streams * g_data_w; -- output data with, 168 CONSTANT c_in_data_w : NATURAL := g_nof_streams * g_data_w; -- output data with, 168
CONSTANT c_out_data_w : NATURAL := func_tech_ddr_ctlr_data_w( g_tech_ddr ); -- output data vector with, 576 CONSTANT c_out_data_w : NATURAL := func_tech_ddr_ctlr_data_w( g_tech_ddr ); -- output data vector with, 576
CONSTANT c_adr_w : NATURAL := 4; -- address with in simulation CONSTANT c_adr_w : NATURAL := 4; -- address with in simulation
CONSTANT c_max_adr : NATURAL := 2**c_adr_w-1; -- max address in simulation CONSTANT c_adr_size : NATURAL := 2**c_adr_w; -- address size in simulation
-- function for making total data vector -- function for making total data vector
FUNCTION c_total_vector_init RETURN STD_LOGIC_VECTOR IS FUNCTION c_total_vector_init RETURN STD_LOGIC_VECTOR IS
...@@ -126,17 +125,17 @@ BEGIN ...@@ -126,17 +125,17 @@ BEGIN
ASSERT FALSE REPORT "Test: OK" SEVERITY FAILURE; ASSERT FALSE REPORT "Test: OK" SEVERITY FAILURE;
END PROCESS; END PROCESS;
-- excecuting the reset test -- Excecuting the reset test.
p_test_reset : PROCESS p_test_reset : PROCESS
BEGIN BEGIN
rst <= '0'; rst <= '0';
WAIT FOR c_clk_period*g_sim_lengt*3/4; WAIT FOR c_clk_period*g_sim_lengt*3/4;
rst <= '1'; IF lag_due_reset + TO_UINT(out_mosi.address) >= c_adr_size THEN
IF lag_due_reset + TO_UINT(out_mosi.address) >= c_max_adr THEN lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address)-c_adr_size;
lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address)-c_max_adr;
ELSE ELSE
lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address); lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address);
END IF; END IF;
rst <= '1';
WAIT FOR c_clk_period*1; WAIT FOR c_clk_period*1;
END PROCESS; END PROCESS;
...@@ -163,14 +162,15 @@ BEGIN ...@@ -163,14 +162,15 @@ BEGIN
-- verifying if the address is correct by keeping trach of the address -- verifying if the address is correct by keeping trach of the address
p_verify_address : PROCESS p_verify_address : PROCESS
BEGIN BEGIN
FOR I IN 0 TO c_max_adr LOOP FOR I IN 0 TO c_adr_size-1 LOOP
WAIT UNTIL rising_edge(out_mosi.wr); WAIT UNTIL out_mosi.wr = '1';
IF rst = '0' THEN -- testing on reset is a bad idea IF rst = '1' THEN
IF I >= lag_due_reset THEN WAIT UNTIL out_mosi.wr = '1';
ASSERT I-lag_due_reset = TO_UINT(out_mosi.address) REPORT "Wrong address, 1, I = " & NATURAL'image(I-lag_due_reset) SEVERITY ERROR; END IF;
ELSE IF I >= lag_due_reset THEN
ASSERT I+c_max_adr-lag_due_reset+1 = TO_UINT(out_mosi.address) REPORT "Wrong address, 2, I = " & NATURAL'image(I+c_max_adr-lag_due_reset+1) SEVERITY ERROR; ASSERT I-lag_due_reset = TO_UINT(out_mosi.address) REPORT "Wrong address, 1, I = " & NATURAL'image(I-lag_due_reset) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address)) SEVERITY ERROR;
END IF; ELSE
ASSERT (I-lag_due_reset)+c_adr_size = TO_UINT(out_mosi.address) REPORT "Wrong address, 2, I = " & NATURAL'image((I-lag_due_reset)+c_adr_size) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address)) SEVERITY ERROR;
END IF; END IF;
END LOOP; END LOOP;
END PROCESS; END PROCESS;
......
...@@ -115,12 +115,12 @@ BEGIN ...@@ -115,12 +115,12 @@ BEGIN
BEGIN BEGIN
rst <= '0'; rst <= '0';
WAIT FOR c_clk_period*g_sim_lengt*3/4; WAIT FOR c_clk_period*g_sim_lengt*3/4;
rst <= '1';
IF lag_due_reset + TO_UINT(out_mosi.address) >= c_adr_size THEN IF lag_due_reset + TO_UINT(out_mosi.address) >= c_adr_size THEN
lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address)-c_adr_size; lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address)-c_adr_size;
ELSE ELSE
lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address); lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address);
END IF; END IF;
rst <= '1';
WAIT FOR c_clk_period*1; WAIT FOR c_clk_period*1;
END PROCESS; END PROCESS;
...@@ -128,13 +128,14 @@ BEGIN ...@@ -128,13 +128,14 @@ BEGIN
p_verify_address : PROCESS p_verify_address : PROCESS
BEGIN BEGIN
FOR I IN 0 TO c_adr_size-1 LOOP FOR I IN 0 TO c_adr_size-1 LOOP
WAIT UNTIL rising_edge(out_mosi.wr); WAIT UNTIL out_mosi.wr = '1';
IF rst = '0' THEN -- testing on reset is a bad idea IF rst = '1' THEN
IF I >= lag_due_reset THEN WAIT UNTIL out_mosi.wr = '1';
ASSERT I-lag_due_reset = TO_UINT(out_mosi.address) REPORT "Wrong address, 1, I = " & NATURAL'image(I-lag_due_reset) SEVERITY ERROR; END IF;
ELSE IF I >= lag_due_reset THEN
ASSERT (I-lag_due_reset)+c_adr_size = TO_UINT(out_mosi.address) REPORT "Wrong address, 2, I = " & NATURAL'image((I-lag_due_reset)+c_adr_size) SEVERITY ERROR; ASSERT I-lag_due_reset = TO_UINT(out_mosi.address) REPORT "Wrong address, 1, I = " & NATURAL'image(I-lag_due_reset) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address)) SEVERITY ERROR;
END IF; ELSE
ASSERT (I-lag_due_reset)+c_adr_size = TO_UINT(out_mosi.address) REPORT "Wrong address, 2, I = " & NATURAL'image((I-lag_due_reset)+c_adr_size) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address)) SEVERITY ERROR;
END IF; END IF;
END LOOP; END LOOP;
END PROCESS; END PROCESS;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment