generic map(
DRAM_ABITS => 24,
DRAM_ALINES => 1,
+ DRAM_DLINES => 16,
+ DRAM_CKLINES => 1,
+ DRAM_PORT_WIDTH => 128,
PAYLOAD_FILE => DRAM_INIT_FILE,
PAYLOAD_SIZE => DRAM_INIT_SIZE
)
check_data(make_pattern(i));
end loop;
+ report "Pre-fill a line";
+ a(11) := '1';
+ clr_acks;
+ wb_write(add_off(a, 0), x"1111111100000000", x"ff");
+ wb_write(add_off(a, 8), x"3333333322222222", x"ff");
+ wb_write(add_off(a, 16), x"5555555544444444", x"ff");
+ wb_write(add_off(a, 24), x"7777777766666666", x"ff");
+ wb_write(add_off(a, 32), x"9999999988888888", x"ff");
+ wb_write(add_off(a, 40), x"bbbbbbbbaaaaaaaa", x"ff");
+ wb_write(add_off(a, 48), x"ddddddddcccccccc", x"ff");
+ wb_write(add_off(a, 56), x"ffffffffeeeeeeee", x"ff");
+ wb_write(add_off(a, 64), x"1111111100000000", x"ff");
+ wb_write(add_off(a, 72), x"3333333322222222", x"ff");
+ wb_write(add_off(a, 80), x"5555555544444444", x"ff");
+ wb_write(add_off(a, 88), x"7777777766666666", x"ff");
+ wb_write(add_off(a, 96), x"9999999988888888", x"ff");
+ wb_write(add_off(a,104), x"bbbbbbbbaaaaaaaa", x"ff");
+ wb_write(add_off(a,112), x"ddddddddcccccccc", x"ff");
+ wb_write(add_off(a,120), x"ffffffffeeeeeeee", x"ff");
+ wait_acks(16);
+
+ report "Scattered from middle of line...";
+ clr_acks;
+ wb_read(add_off(a,24));
+ wb_read(add_off(a,32));
+ wb_read(add_off(a, 0));
+ wb_read(add_off(a,16));
+ wait_acks(4);
+ read_data(d);
+ assert d = x"7777777766666666" report "bad data (24), got " & to_hstring(d) severity failure;
+ read_data(d);
+ assert d = x"9999999988888888" report "bad data (32), got " & to_hstring(d) severity failure;
+ read_data(d);
+ assert d = x"1111111100000000" report "bad data (0), got " & to_hstring(d) severity failure;
+ read_data(d);
+ assert d = x"5555555544444444" report "bad data (16), got " & to_hstring(d) severity failure;
+
std.env.finish;
end process;
end architecture;