mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-22 13:17:41 -04:00
Add test randomizer and align size of Spike memory
This commit is contained in:
parent
c57d36079c
commit
b75839a5b1
9 changed files with 248 additions and 119 deletions
3
Makefile
3
Makefile
|
@ -133,6 +133,7 @@ riscv-torture-bin := java -Xmx1G -Xss8M -XX:MaxPermSize=128M -jar sbt-launch.
|
|||
ifdef batch-mode
|
||||
questa-flags += -c
|
||||
questa-cmd := -do "coverage save -onexit tmp/$@.ucdb; run -a; quit -code [coverage attribute -name TESTSTATUS -concise]"
|
||||
questa-cmd += -do " log -r /*; run -all;"
|
||||
else
|
||||
questa-cmd := -do " log -r /*; run -all;"
|
||||
endif
|
||||
|
@ -189,7 +190,7 @@ $(dpi-library)/ariane_dpi.so: $(dpi)
|
|||
|
||||
sim: build
|
||||
vsim${questa_version} +permissive $(questa-flags) $(questa-cmd) -lib $(library) +MAX_CYCLES=$(max_cycles) +UVM_TESTNAME=$(test_case) \
|
||||
+BASEDIR=$(riscv-test-dir) $(uvm-flags) -gblso $(RISCV)/lib/libfesvr.so -sv_lib $(dpi-library)/ariane_dpi \
|
||||
+BASEDIR=$(riscv-test-dir) $(uvm-flags) $(QUESTASIM_FLAGS) -gblso $(RISCV)/lib/libfesvr.so -sv_lib $(dpi-library)/ariane_dpi \
|
||||
${top_level}_optimized +permissive-off ++$(elf-bin) ++$(target-options) | tee sim.log
|
||||
|
||||
$(riscv-asm-tests): build
|
||||
|
|
Binary file not shown.
|
@ -20,45 +20,44 @@ module bootrom (
|
|||
input logic [63:0] addr_i,
|
||||
output logic [63:0] rdata_o
|
||||
);
|
||||
localparam int RomSize = 232;
|
||||
localparam int RomSize = 224;
|
||||
|
||||
const logic [RomSize-1:0][63:0] mem = {
|
||||
64'h006874_6469772d,
|
||||
64'h6f692d67_65720074,
|
||||
64'h66696873_2d676572,
|
||||
64'h00737470_75727265,
|
||||
64'h746e6900_746e6572,
|
||||
64'h61702d74_70757272,
|
||||
64'h65746e69_00646565,
|
||||
64'h70732d74_6e657272,
|
||||
64'h75630076_65646e2c,
|
||||
64'h76637369_72007974,
|
||||
64'h69726f69_72702d78,
|
||||
64'h616d2c76_63736972,
|
||||
64'h0073656d_616e2d67,
|
||||
64'h65720064_65646e65,
|
||||
64'h7478652d_73747075,
|
||||
64'h72726574_6e690073,
|
||||
64'h65676e61_7200656c,
|
||||
64'h646e6168_702c7875,
|
||||
64'h6e696c00_72656c6c,
|
||||
64'h6f72746e_6f632d74,
|
||||
64'h_006874,
|
||||
64'h6469772d_6f692d67,
|
||||
64'h65720074_66696873,
|
||||
64'h2d676572_00737470,
|
||||
64'h75727265_746e6900,
|
||||
64'h746e6572_61702d74,
|
||||
64'h70757272_65746e69,
|
||||
64'h00736c6c_65632d74,
|
||||
64'h70757272_65746e69,
|
||||
64'h23007469_6c70732d,
|
||||
64'h626c7400_65707974,
|
||||
64'h2d756d6d_00617369,
|
||||
64'h2c766373_69720073,
|
||||
64'h75746174_73006765,
|
||||
64'h72006570_79745f65,
|
||||
64'h63697665_64007963,
|
||||
64'h6e657571_6572662d,
|
||||
64'h6b636f6c_63007963,
|
||||
64'h6e657571_6572662d,
|
||||
64'h65736162_656d6974,
|
||||
64'h00687461_702d7475,
|
||||
64'h6f647473_006c6564,
|
||||
64'h00646565_70732d74,
|
||||
64'h6e657272_75630076,
|
||||
64'h65646e2c_76637369,
|
||||
64'h72007974_69726f69,
|
||||
64'h72702d78_616d2c76,
|
||||
64'h63736972_0073656d,
|
||||
64'h616e2d67_65720064,
|
||||
64'h65646e65_7478652d,
|
||||
64'h73747075_72726574,
|
||||
64'h6e690073_65676e61,
|
||||
64'h7200656c_646e6168,
|
||||
64'h702c7875_6e696c00,
|
||||
64'h72656c6c_6f72746e,
|
||||
64'h6f632d74_70757272,
|
||||
64'h65746e69_00736c6c,
|
||||
64'h65632d74_70757272,
|
||||
64'h65746e69_23007469,
|
||||
64'h6c70732d_626c7400,
|
||||
64'h65707974_2d756d6d,
|
||||
64'h00617369_2c766373,
|
||||
64'h69720073_75746174,
|
||||
64'h73006765_72006570,
|
||||
64'h79745f65_63697665,
|
||||
64'h64007963_6e657571,
|
||||
64'h6572662d_6b636f6c,
|
||||
64'h63007963_6e657571,
|
||||
64'h6572662d_65736162,
|
||||
64'h656d6974_006c6564,
|
||||
64'h6f6d0065_6c626974,
|
||||
64'h61706d6f_6300736c,
|
||||
64'h6c65632d_657a6973,
|
||||
|
@ -66,21 +65,21 @@ module bootrom (
|
|||
64'h73736572_64646123,
|
||||
64'h09000000_02000000,
|
||||
64'h02000000_02000000,
|
||||
64'h04000000_3a010000,
|
||||
64'h04000000_2e010000,
|
||||
64'h04000000_03000000,
|
||||
64'h02000000_30010000,
|
||||
64'h02000000_24010000,
|
||||
64'h04000000_03000000,
|
||||
64'h01000000_25010000,
|
||||
64'h01000000_19010000,
|
||||
64'h04000000_03000000,
|
||||
64'h02000000_14010000,
|
||||
64'h02000000_08010000,
|
||||
64'h04000000_03000000,
|
||||
64'h00c20100_06010000,
|
||||
64'h00c20100_fa000000,
|
||||
64'h04000000_03000000,
|
||||
64'h80f0fa02_4b000000,
|
||||
64'h80f0fa02_3f000000,
|
||||
64'h04000000_03000000,
|
||||
64'h00100000_00000000,
|
||||
64'h00000010_00000000,
|
||||
64'h67000000_10000000,
|
||||
64'h5b000000_10000000,
|
||||
64'h03000000_00303537,
|
||||
64'h3631736e_1b000000,
|
||||
64'h08000000_03000000,
|
||||
|
@ -88,13 +87,13 @@ module bootrom (
|
|||
64'h30303140_74726175,
|
||||
64'h01000000_02000000,
|
||||
64'h006c6f72_746e6f63,
|
||||
64'hde000000_08000000,
|
||||
64'hd2000000_08000000,
|
||||
64'h03000000_00100000,
|
||||
64'h00000000_00000000,
|
||||
64'h00000000_67000000,
|
||||
64'h00000000_5b000000,
|
||||
64'h10000000_03000000,
|
||||
64'hffff0000_01000000,
|
||||
64'hca000000_08000000,
|
||||
64'hbe000000_08000000,
|
||||
64'h03000000_00333130,
|
||||
64'h2d677562_65642c76,
|
||||
64'h63736972_1b000000,
|
||||
|
@ -103,26 +102,26 @@ module bootrom (
|
|||
64'h6f72746e_6f632d67,
|
||||
64'h75626564_01000000,
|
||||
64'h02000000_02000000,
|
||||
64'hbb000000_04000000,
|
||||
64'haf000000_04000000,
|
||||
64'h03000000_02000000,
|
||||
64'hb5000000_04000000,
|
||||
64'ha9000000_04000000,
|
||||
64'h03000000_02000000,
|
||||
64'hfb000000_04000000,
|
||||
64'hef000000_04000000,
|
||||
64'h03000000_07000000,
|
||||
64'he8000000_04000000,
|
||||
64'hdc000000_04000000,
|
||||
64'h03000000_00000004,
|
||||
64'h00000000_0000000c,
|
||||
64'h00000000_67000000,
|
||||
64'h00000000_5b000000,
|
||||
64'h10000000_03000000,
|
||||
64'h09000000_01000000,
|
||||
64'h0b000000_01000000,
|
||||
64'hca000000_10000000,
|
||||
64'h03000000_a0000000,
|
||||
64'hbe000000_10000000,
|
||||
64'h03000000_94000000,
|
||||
64'h00000000_03000000,
|
||||
64'h00306369_6c702c76,
|
||||
64'h63736972_1b000000,
|
||||
64'h0c000000_03000000,
|
||||
64'h01000000_8f000000,
|
||||
64'h01000000_83000000,
|
||||
64'h04000000_03000000,
|
||||
64'h00000000_00000000,
|
||||
64'h04000000_03000000,
|
||||
|
@ -132,21 +131,21 @@ module bootrom (
|
|||
64'h70757272_65746e69,
|
||||
64'h01000000_02000000,
|
||||
64'h006c6f72_746e6f63,
|
||||
64'hde000000_08000000,
|
||||
64'hd2000000_08000000,
|
||||
64'h03000000_00000c00,
|
||||
64'h00000000_00000002,
|
||||
64'h00000000_67000000,
|
||||
64'h00000000_5b000000,
|
||||
64'h10000000_03000000,
|
||||
64'h07000000_01000000,
|
||||
64'h03000000_01000000,
|
||||
64'hca000000_10000000,
|
||||
64'hbe000000_10000000,
|
||||
64'h03000000_00000000,
|
||||
64'h30746e69_6c632c76,
|
||||
64'h63736972_1b000000,
|
||||
64'h0d000000_03000000,
|
||||
64'h00000030_30303030,
|
||||
64'h30324074_6e696c63,
|
||||
64'h01000000_c3000000,
|
||||
64'h01000000_b7000000,
|
||||
64'h00000000_03000000,
|
||||
64'h00007375_622d656c,
|
||||
64'h706d6973_00636f73,
|
||||
|
@ -161,64 +160,57 @@ module bootrom (
|
|||
64'h01000000_02000000,
|
||||
64'h00000008_00000000,
|
||||
64'h00000080_00000000,
|
||||
64'h67000000_10000000,
|
||||
64'h5b000000_10000000,
|
||||
64'h03000000_00007972,
|
||||
64'h6f6d656d_5b000000,
|
||||
64'h6f6d656d_4f000000,
|
||||
64'h07000000_03000000,
|
||||
64'h00303030_30303030,
|
||||
64'h38407972_6f6d656d,
|
||||
64'h01000000_02000000,
|
||||
64'h02000000_02000000,
|
||||
64'h01000000_bb000000,
|
||||
64'h01000000_af000000,
|
||||
64'h04000000_03000000,
|
||||
64'h01000000_b5000000,
|
||||
64'h01000000_a9000000,
|
||||
64'h04000000_03000000,
|
||||
64'h00006374_6e692d75,
|
||||
64'h70632c76_63736972,
|
||||
64'h1b000000_0f000000,
|
||||
64'h03000000_a0000000,
|
||||
64'h03000000_94000000,
|
||||
64'h00000000_03000000,
|
||||
64'h01000000_8f000000,
|
||||
64'h01000000_83000000,
|
||||
64'h04000000_03000000,
|
||||
64'h00000000_72656c6c,
|
||||
64'h6f72746e_6f632d74,
|
||||
64'h70757272_65746e69,
|
||||
64'h01000000_85000000,
|
||||
64'h01000000_79000000,
|
||||
64'h00000000_03000000,
|
||||
64'h00003933_76732c76,
|
||||
64'h63736972_7c000000,
|
||||
64'h63736972_70000000,
|
||||
64'h0b000000_03000000,
|
||||
64'h00007573_63616d69,
|
||||
64'h34367672_72000000,
|
||||
64'h34367672_66000000,
|
||||
64'h0b000000_03000000,
|
||||
64'h00000076_63736972,
|
||||
64'h00656e61_69726120,
|
||||
64'h2c687465_1b000000,
|
||||
64'h12000000_03000000,
|
||||
64'h00000000_79616b6f,
|
||||
64'h6b000000_05000000,
|
||||
64'h5f000000_05000000,
|
||||
64'h03000000_00000000,
|
||||
64'h67000000_04000000,
|
||||
64'h03000000_00757063,
|
||||
64'h5b000000_04000000,
|
||||
64'h03000000_00757063,
|
||||
64'h4f000000_04000000,
|
||||
64'h03000000_80f0fa02,
|
||||
64'h4b000000_04000000,
|
||||
64'h3f000000_04000000,
|
||||
64'h03000000_00000030,
|
||||
64'h40757063_01000000,
|
||||
64'h40787d01_38000000,
|
||||
64'h40787d01_2c000000,
|
||||
64'h04000000_03000000,
|
||||
64'h00000000_0f000000,
|
||||
64'h04000000_03000000,
|
||||
64'h01000000_00000000,
|
||||
64'h04000000_03000000,
|
||||
64'h00000000_73757063,
|
||||
64'h01000000_02000000,
|
||||
64'h00000030_30323531,
|
||||
64'h313a3030_30303030,
|
||||
64'h30314074_7261752f,
|
||||
64'h636f732f_2c000000,
|
||||
64'h1a000000_03000000,
|
||||
64'h00006e65_736f6863,
|
||||
64'h01000000_00657261,
|
||||
64'h622d656e_61697261,
|
||||
64'h2c687465_26000000,
|
||||
|
@ -234,11 +226,11 @@ module bootrom (
|
|||
64'h00000000_01000000,
|
||||
64'h00000000_00000000,
|
||||
64'h00000000_00000000,
|
||||
64'h40050000_47010000,
|
||||
64'h08050000_3b010000,
|
||||
64'h00000000_10000000,
|
||||
64'h11000000_28000000,
|
||||
64'h78050000_38000000,
|
||||
64'hbf060000_edfe0dd0,
|
||||
64'h40050000_38000000,
|
||||
64'h7b060000_edfe0dd0,
|
||||
64'h00000000_00000000,
|
||||
64'h00000000_00000000,
|
||||
64'h00000000_00000000,
|
||||
|
|
2
src/axi
2
src/axi
|
@ -1 +1 @@
|
|||
Subproject commit 50c23985e4ea063dd4aa919101ce16c4e48624ac
|
||||
Subproject commit de1af467229315ee6af31fea96664c7aae5638a9
|
|
@ -1 +1 @@
|
|||
Subproject commit ef352e68becc9e33c64f5b051ad05c3d86b4d598
|
||||
Subproject commit 0a5067404ea76ed3cbaa7e75ccee0b3d76c57689
|
36
src/mmu.sv
36
src/mmu.sv
|
@ -156,24 +156,24 @@ module mmu #(
|
|||
.*
|
||||
);
|
||||
|
||||
ila_1 i_ila_1 (
|
||||
.clk(clk_i), // input wire clk
|
||||
.probe0({req_port_o.address_tag, req_port_o.address_index}),
|
||||
.probe1(req_port_o.data_req), // input wire [63:0] probe1
|
||||
.probe2(req_port_i.data_gnt), // input wire [0:0] probe2
|
||||
.probe3(req_port_i.data_rdata), // input wire [0:0] probe3
|
||||
.probe4(req_port_i.data_rvalid), // input wire [0:0] probe4
|
||||
.probe5(ptw_error), // input wire [1:0] probe5
|
||||
.probe6(update_vaddr), // input wire [0:0] probe6
|
||||
.probe7(update_ptw_itlb.valid), // input wire [0:0] probe7
|
||||
.probe8(update_ptw_dtlb.valid), // input wire [0:0] probe8
|
||||
.probe9(dtlb_lu_access), // input wire [0:0] probe9
|
||||
.probe10(lsu_vaddr_i), // input wire [0:0] probe10
|
||||
.probe11(dtlb_lu_hit), // input wire [0:0] probe11
|
||||
.probe12(itlb_lu_access), // input wire [0:0] probe12
|
||||
.probe13(icache_areq_i.fetch_vaddr), // input wire [0:0] probe13
|
||||
.probe14(itlb_lu_hit) // input wire [0:0] probe13
|
||||
);
|
||||
// ila_1 i_ila_1 (
|
||||
// .clk(clk_i), // input wire clk
|
||||
// .probe0({req_port_o.address_tag, req_port_o.address_index}),
|
||||
// .probe1(req_port_o.data_req), // input wire [63:0] probe1
|
||||
// .probe2(req_port_i.data_gnt), // input wire [0:0] probe2
|
||||
// .probe3(req_port_i.data_rdata), // input wire [0:0] probe3
|
||||
// .probe4(req_port_i.data_rvalid), // input wire [0:0] probe4
|
||||
// .probe5(ptw_error), // input wire [1:0] probe5
|
||||
// .probe6(update_vaddr), // input wire [0:0] probe6
|
||||
// .probe7(update_ptw_itlb.valid), // input wire [0:0] probe7
|
||||
// .probe8(update_ptw_dtlb.valid), // input wire [0:0] probe8
|
||||
// .probe9(dtlb_lu_access), // input wire [0:0] probe9
|
||||
// .probe10(lsu_vaddr_i), // input wire [0:0] probe10
|
||||
// .probe11(dtlb_lu_hit), // input wire [0:0] probe11
|
||||
// .probe12(itlb_lu_access), // input wire [0:0] probe12
|
||||
// .probe13(icache_areq_i.fetch_vaddr), // input wire [0:0] probe13
|
||||
// .probe14(itlb_lu_hit) // input wire [0:0] probe13
|
||||
// );
|
||||
|
||||
//-----------------------
|
||||
// Instruction Interface
|
||||
|
|
|
@ -56,7 +56,9 @@ module ariane_tb;
|
|||
|
||||
// `ifdef TANDEM
|
||||
// initial $display("Tandem defined",);
|
||||
spike i_spike (
|
||||
spike #(
|
||||
.Size ( NUM_WORDS * 8 )
|
||||
) i_spike (
|
||||
.clk_i,
|
||||
.rst_ni,
|
||||
.clint_tick_i ( rtc_i ),
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
module ariane_testharness #(
|
||||
parameter logic [63:0] CACHE_START_ADDR = 64'h8000_0000, // address on which to decide whether the request is cache-able or not
|
||||
parameter int unsigned AXI_ID_WIDTH = 10,
|
||||
parameter int unsigned AXI_ID_WIDTH = 2,
|
||||
parameter int unsigned AXI_USER_WIDTH = 1,
|
||||
parameter int unsigned AXI_ADDRESS_WIDTH = 64,
|
||||
parameter int unsigned AXI_DATA_WIDTH = 64,
|
||||
|
@ -226,6 +226,14 @@ module ariane_testharness #(
|
|||
// ---------------
|
||||
// Memory
|
||||
// ---------------
|
||||
|
||||
AXI_BUS #(
|
||||
.AXI_ADDR_WIDTH ( AXI_ADDRESS_WIDTH ),
|
||||
.AXI_DATA_WIDTH ( AXI_DATA_WIDTH ),
|
||||
.AXI_ID_WIDTH ( AXI_ID_WIDTH_SLAVES ),
|
||||
.AXI_USER_WIDTH ( AXI_USER_WIDTH )
|
||||
) dram();
|
||||
|
||||
logic req;
|
||||
logic we;
|
||||
logic [AXI_ADDRESS_WIDTH-1:0] addr;
|
||||
|
@ -233,21 +241,147 @@ module ariane_testharness #(
|
|||
logic [AXI_DATA_WIDTH-1:0] wdata;
|
||||
logic [AXI_DATA_WIDTH-1:0] rdata;
|
||||
|
||||
axi_pkg::aw_chan_t aw_chan_i;
|
||||
axi_pkg::w_chan_t w_chan_i;
|
||||
axi_pkg::b_chan_t b_chan_o;
|
||||
axi_pkg::ar_chan_t ar_chan_i;
|
||||
axi_pkg::r_chan_t r_chan_o;
|
||||
axi_pkg::aw_chan_t aw_chan_o;
|
||||
axi_pkg::w_chan_t w_chan_o;
|
||||
axi_pkg::b_chan_t b_chan_i;
|
||||
axi_pkg::ar_chan_t ar_chan_o;
|
||||
axi_pkg::r_chan_t r_chan_i;
|
||||
|
||||
axi_delayer #(
|
||||
.aw_t ( axi_pkg::aw_chan_t ),
|
||||
.w_t ( axi_pkg::w_chan_t ),
|
||||
.b_t ( axi_pkg::b_chan_t ),
|
||||
.ar_t ( axi_pkg::ar_chan_t ),
|
||||
.r_t ( axi_pkg::r_chan_t ),
|
||||
.StallRandomOutput ( 1 ),
|
||||
.StallRandomInput ( 1 ),
|
||||
.FixedDelayInput ( 0 ),
|
||||
.FixedDelayOutput ( 0 )
|
||||
) i_axi_delayer (
|
||||
.clk_i ( clk_i ),
|
||||
.rst_ni ( ndmreset_n ),
|
||||
.aw_valid_i ( master[ariane_soc::DRAM].aw_valid ),
|
||||
.aw_chan_i ( aw_chan_i ),
|
||||
.aw_ready_o ( master[ariane_soc::DRAM].aw_ready ),
|
||||
.w_valid_i ( master[ariane_soc::DRAM].w_valid ),
|
||||
.w_chan_i ( w_chan_i ),
|
||||
.w_ready_o ( master[ariane_soc::DRAM].w_ready ),
|
||||
.b_valid_o ( master[ariane_soc::DRAM].b_valid ),
|
||||
.b_chan_o ( b_chan_o ),
|
||||
.b_ready_i ( master[ariane_soc::DRAM].b_ready ),
|
||||
.ar_valid_i ( master[ariane_soc::DRAM].ar_valid ),
|
||||
.ar_chan_i ( ar_chan_i ),
|
||||
.ar_ready_o ( master[ariane_soc::DRAM].ar_ready ),
|
||||
.r_valid_o ( master[ariane_soc::DRAM].r_valid ),
|
||||
.r_chan_o ( r_chan_o ),
|
||||
.r_ready_i ( master[ariane_soc::DRAM].r_ready ),
|
||||
.aw_valid_o ( dram.aw_valid ),
|
||||
.aw_chan_o ( aw_chan_o ),
|
||||
.aw_ready_i ( dram.aw_ready ),
|
||||
.w_valid_o ( dram.w_valid ),
|
||||
.w_chan_o ( w_chan_o ),
|
||||
.w_ready_i ( dram.w_ready ),
|
||||
.b_valid_i ( dram.b_valid ),
|
||||
.b_chan_i ( b_chan_i ),
|
||||
.b_ready_o ( dram.b_ready ),
|
||||
.ar_valid_o ( dram.ar_valid ),
|
||||
.ar_chan_o ( ar_chan_o ),
|
||||
.ar_ready_i ( dram.ar_ready ),
|
||||
.r_valid_i ( dram.r_valid ),
|
||||
.r_chan_i ( r_chan_i ),
|
||||
.r_ready_o ( dram.r_ready )
|
||||
);
|
||||
|
||||
assign aw_chan_i.id = master[ariane_soc::DRAM].aw_id;
|
||||
assign aw_chan_i.addr = master[ariane_soc::DRAM].aw_addr;
|
||||
assign aw_chan_i.len = master[ariane_soc::DRAM].aw_len;
|
||||
assign aw_chan_i.size = master[ariane_soc::DRAM].aw_size;
|
||||
assign aw_chan_i.burst = master[ariane_soc::DRAM].aw_burst;
|
||||
assign aw_chan_i.lock = master[ariane_soc::DRAM].aw_lock;
|
||||
assign aw_chan_i.cache = master[ariane_soc::DRAM].aw_cache;
|
||||
assign aw_chan_i.prot = master[ariane_soc::DRAM].aw_prot;
|
||||
assign aw_chan_i.qos = master[ariane_soc::DRAM].aw_qos;
|
||||
assign aw_chan_i.region = master[ariane_soc::DRAM].aw_region;
|
||||
|
||||
assign ar_chan_i.id = master[ariane_soc::DRAM].ar_id;
|
||||
assign ar_chan_i.addr = master[ariane_soc::DRAM].ar_addr;
|
||||
assign ar_chan_i.len = master[ariane_soc::DRAM].ar_len;
|
||||
assign ar_chan_i.size = master[ariane_soc::DRAM].ar_size;
|
||||
assign ar_chan_i.burst = master[ariane_soc::DRAM].ar_burst;
|
||||
assign ar_chan_i.lock = master[ariane_soc::DRAM].ar_lock;
|
||||
assign ar_chan_i.cache = master[ariane_soc::DRAM].ar_cache;
|
||||
assign ar_chan_i.prot = master[ariane_soc::DRAM].ar_prot;
|
||||
assign ar_chan_i.qos = master[ariane_soc::DRAM].ar_qos;
|
||||
assign ar_chan_i.region = master[ariane_soc::DRAM].ar_region;
|
||||
|
||||
assign w_chan_i.data = master[ariane_soc::DRAM].w_data;
|
||||
assign w_chan_i.strb = master[ariane_soc::DRAM].w_strb;
|
||||
assign w_chan_i.last = master[ariane_soc::DRAM].w_last;
|
||||
|
||||
assign master[ariane_soc::DRAM].r_id = r_chan_o.id;
|
||||
assign master[ariane_soc::DRAM].r_data = r_chan_o.data;
|
||||
assign master[ariane_soc::DRAM].r_resp = r_chan_o.resp;
|
||||
assign master[ariane_soc::DRAM].r_last = r_chan_o.last;
|
||||
|
||||
assign master[ariane_soc::DRAM].b_id = b_chan_o.id;
|
||||
assign master[ariane_soc::DRAM].b_resp = b_chan_o.resp;
|
||||
|
||||
|
||||
assign dram.aw_id = aw_chan_o.id;
|
||||
assign dram.aw_addr = aw_chan_o.addr;
|
||||
assign dram.aw_len = aw_chan_o.len;
|
||||
assign dram.aw_size = aw_chan_o.size;
|
||||
assign dram.aw_burst = aw_chan_o.burst;
|
||||
assign dram.aw_lock = aw_chan_o.lock;
|
||||
assign dram.aw_cache = aw_chan_o.cache;
|
||||
assign dram.aw_prot = aw_chan_o.prot;
|
||||
assign dram.aw_qos = aw_chan_o.qos;
|
||||
assign dram.aw_region = aw_chan_o.region;
|
||||
|
||||
assign dram.ar_id = ar_chan_o.id;
|
||||
assign dram.ar_addr = ar_chan_o.addr;
|
||||
assign dram.ar_len = ar_chan_o.len;
|
||||
assign dram.ar_size = ar_chan_o.size;
|
||||
assign dram.ar_burst = ar_chan_o.burst;
|
||||
assign dram.ar_lock = ar_chan_o.lock;
|
||||
assign dram.ar_cache = ar_chan_o.cache;
|
||||
assign dram.ar_prot = ar_chan_o.prot;
|
||||
assign dram.ar_qos = ar_chan_o.qos;
|
||||
assign dram.ar_region = ar_chan_o.region;
|
||||
|
||||
assign dram.w_data = w_chan_o.data;
|
||||
assign dram.w_strb = w_chan_o.strb;
|
||||
assign dram.w_last = w_chan_o.last;
|
||||
|
||||
assign r_chan_i.id = dram.r_id;
|
||||
assign r_chan_i.data = dram.r_data;
|
||||
assign r_chan_i.resp = dram.r_resp;
|
||||
assign r_chan_i.last = dram.r_last;
|
||||
|
||||
assign b_chan_i.id = dram.b_id;
|
||||
assign b_chan_i.resp = dram.b_resp;
|
||||
|
||||
|
||||
axi2mem #(
|
||||
.AXI_ID_WIDTH ( AXI_ID_WIDTH_SLAVES ),
|
||||
.AXI_ADDR_WIDTH ( AXI_ADDRESS_WIDTH ),
|
||||
.AXI_DATA_WIDTH ( AXI_DATA_WIDTH ),
|
||||
.AXI_USER_WIDTH ( AXI_USER_WIDTH )
|
||||
) i_axi2mem (
|
||||
.clk_i ( clk_i ),
|
||||
.rst_ni ( ndmreset_n ),
|
||||
.slave ( master[ariane_soc::DRAM] ),
|
||||
.req_o ( req ),
|
||||
.we_o ( we ),
|
||||
.addr_o ( addr ),
|
||||
.be_o ( be ),
|
||||
.data_o ( wdata ),
|
||||
.data_i ( rdata )
|
||||
.clk_i ( clk_i ),
|
||||
.rst_ni ( ndmreset_n ),
|
||||
.slave ( dram ),
|
||||
.req_o ( req ),
|
||||
.we_o ( we ),
|
||||
.addr_o ( addr ),
|
||||
.be_o ( be ),
|
||||
.data_o ( wdata ),
|
||||
.data_i ( rdata )
|
||||
);
|
||||
|
||||
sram #(
|
||||
|
|
|
@ -28,11 +28,11 @@ module spike #(
|
|||
input logic rst_ni,
|
||||
input logic clint_tick_i,
|
||||
input ariane_pkg::scoreboard_entry_t [ariane_pkg::NR_COMMIT_PORTS-1:0] commit_instr_i,
|
||||
input logic [ariane_pkg::NR_COMMIT_PORTS-1:0] commit_ack_i,
|
||||
input ariane_pkg::exception_t exception_i,
|
||||
input logic [ariane_pkg::NR_COMMIT_PORTS-1:0][4:0] waddr_i,
|
||||
input logic [ariane_pkg::NR_COMMIT_PORTS-1:0][63:0] wdata_i,
|
||||
input riscv::priv_lvl_t priv_lvl_i
|
||||
input logic [ariane_pkg::NR_COMMIT_PORTS-1:0] commit_ack_i,
|
||||
input ariane_pkg::exception_t exception_i,
|
||||
input logic [ariane_pkg::NR_COMMIT_PORTS-1:0][4:0] waddr_i,
|
||||
input logic [ariane_pkg::NR_COMMIT_PORTS-1:0][63:0] wdata_i,
|
||||
input riscv::priv_lvl_t priv_lvl_i
|
||||
);
|
||||
static uvm_cmdline_processor uvcl = uvm_cmdline_processor::get_inst();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue