-- Mask write selects with do_write since BRAM doesn't always
-- have a global write-enable (Vivado generates TDP instead
-- of SDP when using one, thus doubling cache BRAM usage).
- for i in 0 to ROW_SIZE-1 loop
- wr_sel_m(i) <= wr_sel(i) and do_write;
+ for j in 0 to ROW_SIZE-1 loop
+ wr_sel_m(j) <= wr_sel(j) and do_write;
end loop;
if TRACE and rising_edge(system_clk) then
-- Store signals (hard wired for 64-bit wishbone at the moment)
req_wsl <= wb_req.adr(WB_WSEL_BITS-1 downto 0);
for i in 0 to WB_WORD_COUNT-1 loop
- if to_integer(unsigned(req_wsl)) = i then
+ if is_X(req_wsl) then
+ req_we(WBSL*(i+1)-1 downto WBSL*i) <= x"XX";
+ elsif to_integer(unsigned(req_wsl)) = i then
req_we(WBSL*(i+1)-1 downto WBSL*i) <= wb_req.sel;
else
req_we(WBSL*(i+1)-1 downto WBSL*i) <= x"00";
stq_sel := storeq_rd_data(WBSL+WB_WSEL_BITS-1 downto WB_WSEL_BITS);
stq_wsl := storeq_rd_data(WB_WSEL_BITS-1 downto 0);
for i in 0 to WB_WORD_COUNT-1 loop
- if to_integer(unsigned(stq_wsl)) = i then
+ if is_X(stq_wsl) then
+ user_port0_wdata_we(WBSL*(i+1)-1 downto WBSL*i) <= x"XX";
+ elsif to_integer(unsigned(stq_wsl)) = i then
user_port0_wdata_we(WBSL*(i+1)-1 downto WBSL*i) <= stq_sel;
else
user_port0_wdata_we(WBSL*(i+1)-1 downto WBSL*i) <= x"00";
component litedram_trace_stub
end component;
begin
- litedram_trace: litedram_trace_stub;
+ litedram_trace_s: litedram_trace_stub;
end generate;
litedram: litedram_core