diff --git a/Makefile b/Makefile index 6397aec..3b6c897 100644 --- a/Makefile +++ b/Makefile @@ -34,8 +34,7 @@ clean: $(RM) $(BLIF) $(ASC_SYN) $(ASC) $(BIN) $(PLL) progmem_syn.hex progmem.hex progmem.o start.o progmem progmem.hex: progmem - $(OBJCOPY) -O srec $< /dev/stdout \ - | srec_cat - -byte-swap 4 -output - -binary \ + $(OBJCOPY) -O binary $< /dev/stdout \ | xxd -p -c 4 > $@ progmem: progmem.o start.o progmem.lds diff --git a/ram.sv b/ram.sv index a2e79b0..953b622 100644 --- a/ram.sv +++ b/ram.sv @@ -20,20 +20,20 @@ module ram ( assign read_value_out = sel_in ? read_value : 0; always_ff @(negedge clk) begin - read_value <= mem[address_in[31:2]]; + read_value <= {mem[address_in[31:2]][7:0], mem[address_in[31:2]][15:8], mem[address_in[31:2]][23:16], mem[address_in[31:2]][31:24]}; if (sel_in) begin if (write_mask_in[3]) - mem[address_in[31:2]][31:24] <= write_value_in[31:24]; + mem[address_in[31:2]][7:0] <= write_value_in[31:24]; if (write_mask_in[2]) - mem[address_in[31:2]][23:16] <= write_value_in[23:16]; + mem[address_in[31:2]][15:8] <= write_value_in[23:16]; if (write_mask_in[1]) - mem[address_in[31:2]][15:8] <= write_value_in[15:8]; + mem[address_in[31:2]][23:16] <= write_value_in[15:8]; if (write_mask_in[0]) - mem[address_in[31:2]][7:0] <= write_value_in[7:0]; + mem[address_in[31:2]][31:24] <= write_value_in[7:0]; end end endmodule