mirror of
https://github.com/MPSU/APS.git
synced 2025-09-16 17:40:41 +00:00
Initial commit
This commit is contained in:
74
Labs/07. Load-store unit/miriscv_top.sv
Normal file
74
Labs/07. Load-store unit/miriscv_top.sv
Normal file
@@ -0,0 +1,74 @@
|
||||
module miriscv_top
|
||||
#(
|
||||
parameter RAM_SIZE = 256, // bytes
|
||||
parameter RAM_INIT_FILE = ""
|
||||
)
|
||||
(
|
||||
// clock, reset
|
||||
input clk_i,
|
||||
input rst_n_i
|
||||
);
|
||||
|
||||
logic [31:0] instr_rdata_core;
|
||||
logic [31:0] instr_addr_core;
|
||||
|
||||
logic [31:0] data_rdata_core;
|
||||
logic data_req_core;
|
||||
logic data_we_core;
|
||||
logic [3:0] data_be_core;
|
||||
logic [31:0] data_addr_core;
|
||||
logic [31:0] data_wdata_core;
|
||||
|
||||
logic [31:0] data_rdata_ram;
|
||||
logic data_req_ram;
|
||||
logic data_we_ram;
|
||||
logic [3:0] data_be_ram;
|
||||
logic [31:0] data_addr_ram;
|
||||
logic [31:0] data_wdata_ram;
|
||||
|
||||
logic data_mem_valid;
|
||||
assign data_mem_valid = (data_addr_core >= RAM_SIZE) ? 1'b0 : 1'b1;
|
||||
|
||||
assign data_rdata_core = (data_mem_valid) ? data_rdata_ram : 1'b0;
|
||||
assign data_req_ram = (data_mem_valid) ? data_req_core : 1'b0;
|
||||
assign data_we_ram = data_we_core;
|
||||
assign data_be_ram = data_be_core;
|
||||
assign data_addr_ram = data_addr_core;
|
||||
assign data_wdata_ram = data_wdata_core;
|
||||
|
||||
miriscv_core core (
|
||||
.clk_i ( clk_i ),
|
||||
.arstn_i ( rst_n_i ),
|
||||
|
||||
.instr_rdata_i ( instr_rdata_core ),
|
||||
.instr_addr_o ( instr_addr_core ),
|
||||
|
||||
.data_rdata_i ( data_rdata_core ),
|
||||
.data_req_o ( data_req_core ),
|
||||
.data_we_o ( data_we_core ),
|
||||
.data_be_o ( data_be_core ),
|
||||
.data_addr_o ( data_addr_core ),
|
||||
.data_wdata_o ( data_wdata_core )
|
||||
);
|
||||
|
||||
miriscv_ram
|
||||
#(
|
||||
.RAM_SIZE (RAM_SIZE),
|
||||
.RAM_INIT_FILE (RAM_INIT_FILE)
|
||||
) ram (
|
||||
.clk_i ( clk_i ),
|
||||
.rst_n_i ( rst_n_i ),
|
||||
|
||||
.instr_rdata_o ( instr_rdata_core ),
|
||||
.instr_addr_i ( instr_addr_core ),
|
||||
|
||||
.data_rdata_o ( data_rdata_ram ),
|
||||
.data_req_i ( data_req_ram ),
|
||||
.data_we_i ( data_we_ram ),
|
||||
.data_be_i ( data_be_ram ),
|
||||
.data_addr_i ( data_addr_ram ),
|
||||
.data_wdata_i ( data_wdata_ram )
|
||||
);
|
||||
|
||||
|
||||
endmodule
|
Reference in New Issue
Block a user