diff options
Diffstat (limited to 'scripts/icestorm/top.v')
-rw-r--r-- | scripts/icestorm/top.v | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/scripts/icestorm/top.v b/scripts/icestorm/top.v deleted file mode 100644 index 026321d..0000000 --- a/scripts/icestorm/top.v +++ /dev/null @@ -1,70 +0,0 @@ -`timescale 1 ns / 1 ps - -module top ( - input clk, - input resetn, - output trap, - output reg [7:0] out_byte, - output reg out_byte_en -); - // 1024 32bit words = 4kB memory - parameter MEM_SIZE = 1024; - - wire mem_valid; - wire mem_instr; - wire mem_ready; - wire [31:0] mem_addr; - wire [31:0] mem_wdata; - wire [3:0] mem_wstrb; - reg [31:0] mem_rdata; - - wire mem_la_read; - wire mem_la_write; - wire [31:0] mem_la_addr; - wire [31:0] mem_la_wdata; - wire [3:0] mem_la_wstrb; - - picorv32 #( - .ENABLE_COUNTERS(0), - .TWO_STAGE_SHIFT(0), - .CATCH_MISALIGN(0), - .CATCH_ILLINSN(0) - ) uut ( - .clk (clk ), - .resetn (resetn ), - .trap (trap ), - .mem_valid (mem_valid ), - .mem_instr (mem_instr ), - .mem_ready (mem_ready ), - .mem_addr (mem_addr ), - .mem_wdata (mem_wdata ), - .mem_wstrb (mem_wstrb ), - .mem_rdata (mem_rdata ), - .mem_la_read (mem_la_read ), - .mem_la_write(mem_la_write), - .mem_la_addr (mem_la_addr ), - .mem_la_wdata(mem_la_wdata), - .mem_la_wstrb(mem_la_wstrb) - ); - - reg [31:0] memory [0:MEM_SIZE-1]; - initial $readmemh("firmware.hex", memory); - - assign mem_ready = 1; - - always @(posedge clk) begin - out_byte_en <= 0; - mem_rdata <= memory[mem_la_addr >> 2]; - if (mem_la_write && (mem_la_addr >> 2) < MEM_SIZE) begin - if (mem_la_wstrb[0]) memory[mem_la_addr >> 2][ 7: 0] <= mem_la_wdata[ 7: 0]; - if (mem_la_wstrb[1]) memory[mem_la_addr >> 2][15: 8] <= mem_la_wdata[15: 8]; - if (mem_la_wstrb[2]) memory[mem_la_addr >> 2][23:16] <= mem_la_wdata[23:16]; - if (mem_la_wstrb[3]) memory[mem_la_addr >> 2][31:24] <= mem_la_wdata[31:24]; - end - else - if (mem_la_write && mem_la_addr == 32'h1000_0000) begin - out_byte_en <= 1; - out_byte <= mem_la_wdata; - end - end -endmodule |