mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-20 12:17:19 -04:00
Verible reformat (#2014)
This commit is contained in:
parent
ec44b22920
commit
80e6d7cffc
18 changed files with 185 additions and 229 deletions
|
@ -434,7 +434,7 @@ module cache_ctrl
|
|||
end
|
||||
end
|
||||
|
||||
default:;
|
||||
default: ;
|
||||
|
||||
endcase
|
||||
|
||||
|
|
|
@ -161,8 +161,8 @@ module miss_handler
|
|||
logic [ 63:0] amo_operand_b;
|
||||
|
||||
// 32b request
|
||||
logic [31:0] halfword;
|
||||
logic [$clog2(CVA6Cfg.DCACHE_LINE_WIDTH)-1:0] cl_offset;
|
||||
logic [ 31:0] halfword;
|
||||
logic [ $clog2(CVA6Cfg.DCACHE_LINE_WIDTH)-1:0] cl_offset;
|
||||
|
||||
// ------------------------------
|
||||
// Cache Management
|
||||
|
@ -225,8 +225,8 @@ module miss_handler
|
|||
amo_resp_o.result = '0;
|
||||
amo_operand_b = '0;
|
||||
|
||||
halfword = '0;
|
||||
cl_offset = '0;
|
||||
halfword = '0;
|
||||
cl_offset = '0;
|
||||
|
||||
case (state_q)
|
||||
|
||||
|
@ -496,7 +496,7 @@ module miss_handler
|
|||
end
|
||||
end
|
||||
|
||||
default:;
|
||||
default: ;
|
||||
endcase
|
||||
end
|
||||
|
||||
|
|
50
core/cva6.sv
50
core/cva6.sv
|
@ -1513,31 +1513,31 @@ module cva6
|
|||
.INTERRUPTS(INTERRUPTS)
|
||||
) instr_tracer_i (
|
||||
// .tracer_if(tracer_if),
|
||||
.pck (clk_i),
|
||||
.rstn (rst_ni),
|
||||
.flush_unissued (flush_unissued_instr_ctrl_id),
|
||||
.flush_all (flush_ctrl_ex),
|
||||
.instruction (id_stage_i.fetch_entry_i.instruction),
|
||||
.fetch_valid (id_stage_i.fetch_entry_valid_i),
|
||||
.fetch_ack (id_stage_i.fetch_entry_ready_o),
|
||||
.issue_ack (issue_stage_i.i_scoreboard.issue_ack_i),
|
||||
.issue_sbe (issue_stage_i.i_scoreboard.issue_instr_o),
|
||||
.waddr (waddr_commit_id),
|
||||
.wdata (wdata_commit_id),
|
||||
.we_gpr (we_gpr_commit_id),
|
||||
.we_fpr (we_fpr_commit_id),
|
||||
.commit_instr (commit_instr_id_commit),
|
||||
.commit_ack (commit_ack),
|
||||
.st_valid (ex_stage_i.lsu_i.i_store_unit.store_buffer_i.valid_i),
|
||||
.st_paddr (ex_stage_i.lsu_i.i_store_unit.store_buffer_i.paddr_i),
|
||||
.ld_valid (ex_stage_i.lsu_i.i_load_unit.req_port_o.tag_valid),
|
||||
.ld_kill (ex_stage_i.lsu_i.i_load_unit.req_port_o.kill_req),
|
||||
.ld_paddr (ex_stage_i.lsu_i.i_load_unit.paddr_i),
|
||||
.resolve_branch (resolved_branch),
|
||||
.commit_exception (commit_stage_i.exception_o),
|
||||
.priv_lvl (priv_lvl),
|
||||
.debug_mode (debug_mode),
|
||||
.hart_id_i (hart_id_i)
|
||||
.pck(clk_i),
|
||||
.rstn(rst_ni),
|
||||
.flush_unissued(flush_unissued_instr_ctrl_id),
|
||||
.flush_all(flush_ctrl_ex),
|
||||
.instruction(id_stage_i.fetch_entry_i.instruction),
|
||||
.fetch_valid(id_stage_i.fetch_entry_valid_i),
|
||||
.fetch_ack(id_stage_i.fetch_entry_ready_o),
|
||||
.issue_ack(issue_stage_i.i_scoreboard.issue_ack_i),
|
||||
.issue_sbe(issue_stage_i.i_scoreboard.issue_instr_o),
|
||||
.waddr(waddr_commit_id),
|
||||
.wdata(wdata_commit_id),
|
||||
.we_gpr(we_gpr_commit_id),
|
||||
.we_fpr(we_fpr_commit_id),
|
||||
.commit_instr(commit_instr_id_commit),
|
||||
.commit_ack(commit_ack),
|
||||
.st_valid(ex_stage_i.lsu_i.i_store_unit.store_buffer_i.valid_i),
|
||||
.st_paddr(ex_stage_i.lsu_i.i_store_unit.store_buffer_i.paddr_i),
|
||||
.ld_valid(ex_stage_i.lsu_i.i_load_unit.req_port_o.tag_valid),
|
||||
.ld_kill(ex_stage_i.lsu_i.i_load_unit.req_port_o.kill_req),
|
||||
.ld_paddr(ex_stage_i.lsu_i.i_load_unit.paddr_i),
|
||||
.resolve_branch(resolved_branch),
|
||||
.commit_exception(commit_stage_i.exception_o),
|
||||
.priv_lvl(priv_lvl),
|
||||
.debug_mode(debug_mode),
|
||||
.hart_id_i(hart_id_i)
|
||||
);
|
||||
|
||||
// mock tracer for Verilator, to be used with spike-dasm
|
||||
|
|
|
@ -11,182 +11,178 @@
|
|||
// Author: Florian Zaruba <zarubaf@iis.ee.ethz.ch>
|
||||
|
||||
module cva6_fifo_v3 #(
|
||||
parameter bit FALL_THROUGH = 1'b0, // fifo is in fall-through mode
|
||||
parameter int unsigned DATA_WIDTH = 32, // default data width if the fifo is of type logic
|
||||
parameter int unsigned DEPTH = 8, // depth can be arbitrary from 0 to 2**32
|
||||
parameter type dtype = logic [DATA_WIDTH-1:0],
|
||||
parameter bit FPGA_EN = 1'b0,
|
||||
parameter bit FALL_THROUGH = 1'b0, // fifo is in fall-through mode
|
||||
parameter int unsigned DATA_WIDTH = 32, // default data width if the fifo is of type logic
|
||||
parameter int unsigned DEPTH = 8, // depth can be arbitrary from 0 to 2**32
|
||||
parameter type dtype = logic [DATA_WIDTH-1:0],
|
||||
parameter bit FPGA_EN = 1'b0,
|
||||
// DO NOT OVERWRITE THIS PARAMETER
|
||||
parameter int unsigned ADDR_DEPTH = (DEPTH > 1) ? $clog2(DEPTH) : 1
|
||||
)(
|
||||
input logic clk_i, // Clock
|
||||
input logic rst_ni, // Asynchronous reset active low
|
||||
input logic flush_i, // flush the queue
|
||||
input logic testmode_i, // test_mode to bypass clock gating
|
||||
parameter int unsigned ADDR_DEPTH = (DEPTH > 1) ? $clog2(DEPTH) : 1
|
||||
) (
|
||||
input logic clk_i, // Clock
|
||||
input logic rst_ni, // Asynchronous reset active low
|
||||
input logic flush_i, // flush the queue
|
||||
input logic testmode_i, // test_mode to bypass clock gating
|
||||
// status flags
|
||||
output logic full_o, // queue is full
|
||||
output logic empty_o, // queue is empty
|
||||
output logic [ADDR_DEPTH-1:0] usage_o, // fill pointer
|
||||
output logic full_o, // queue is full
|
||||
output logic empty_o, // queue is empty
|
||||
output logic [ADDR_DEPTH-1:0] usage_o, // fill pointer
|
||||
// as long as the queue is not full we can push new data
|
||||
input dtype data_i, // data to push into the queue
|
||||
input logic push_i, // data is valid and can be pushed to the queue
|
||||
input dtype data_i, // data to push into the queue
|
||||
input logic push_i, // data is valid and can be pushed to the queue
|
||||
// as long as the queue is not empty we can pop new elements
|
||||
output dtype data_o, // output data
|
||||
input logic pop_i // pop head from queue
|
||||
output dtype data_o, // output data
|
||||
input logic pop_i // pop head from queue
|
||||
);
|
||||
// local parameter
|
||||
// FIFO depth - handle the case of pass-through, synthesizer will do constant propagation
|
||||
localparam int unsigned FifoDepth = (DEPTH > 0) ? DEPTH : 1;
|
||||
// clock gating control
|
||||
logic gate_clock;
|
||||
// pointer to the read and write section of the queue
|
||||
logic [ADDR_DEPTH - 1:0] read_pointer_n, read_pointer_q, write_pointer_n, write_pointer_q;
|
||||
// keep a counter to keep track of the current queue status
|
||||
// this integer will be truncated by the synthesis tool
|
||||
logic [ADDR_DEPTH:0] status_cnt_n, status_cnt_q;
|
||||
// actual memory
|
||||
dtype [FifoDepth - 1:0] mem_n, mem_q;
|
||||
// local parameter
|
||||
// FIFO depth - handle the case of pass-through, synthesizer will do constant propagation
|
||||
localparam int unsigned FifoDepth = (DEPTH > 0) ? DEPTH : 1;
|
||||
// clock gating control
|
||||
logic gate_clock;
|
||||
// pointer to the read and write section of the queue
|
||||
logic [ADDR_DEPTH - 1:0] read_pointer_n, read_pointer_q, write_pointer_n, write_pointer_q;
|
||||
// keep a counter to keep track of the current queue status
|
||||
// this integer will be truncated by the synthesis tool
|
||||
logic [ADDR_DEPTH:0] status_cnt_n, status_cnt_q;
|
||||
// actual memory
|
||||
dtype [FifoDepth - 1:0] mem_n, mem_q;
|
||||
|
||||
// fifo ram signals for fpga target
|
||||
logic fifo_ram_we;
|
||||
logic [ADDR_DEPTH-1:0] fifo_ram_read_address;
|
||||
logic [ADDR_DEPTH-1:0] fifo_ram_write_address;
|
||||
logic [$bits(dtype)-1:0] fifo_ram_wdata;
|
||||
logic [$bits(dtype)-1:0] fifo_ram_rdata;
|
||||
// fifo ram signals for fpga target
|
||||
logic fifo_ram_we;
|
||||
logic [ADDR_DEPTH-1:0] fifo_ram_read_address;
|
||||
logic [ADDR_DEPTH-1:0] fifo_ram_write_address;
|
||||
logic [$bits(dtype)-1:0] fifo_ram_wdata;
|
||||
logic [$bits(dtype)-1:0] fifo_ram_rdata;
|
||||
|
||||
assign usage_o = status_cnt_q[ADDR_DEPTH-1:0];
|
||||
assign usage_o = status_cnt_q[ADDR_DEPTH-1:0];
|
||||
|
||||
if (DEPTH == 0) begin : gen_pass_through
|
||||
assign empty_o = ~push_i;
|
||||
assign full_o = ~pop_i;
|
||||
end else begin : gen_fifo
|
||||
assign full_o = (status_cnt_q == FifoDepth[ADDR_DEPTH:0]);
|
||||
assign empty_o = (status_cnt_q == 0) & ~(FALL_THROUGH & push_i);
|
||||
if (DEPTH == 0) begin : gen_pass_through
|
||||
assign empty_o = ~push_i;
|
||||
assign full_o = ~pop_i;
|
||||
end else begin : gen_fifo
|
||||
assign full_o = (status_cnt_q == FifoDepth[ADDR_DEPTH:0]);
|
||||
assign empty_o = (status_cnt_q == 0) & ~(FALL_THROUGH & push_i);
|
||||
end
|
||||
// status flags
|
||||
|
||||
// read and write queue logic
|
||||
always_comb begin : read_write_comb
|
||||
// default assignment
|
||||
read_pointer_n = read_pointer_q;
|
||||
write_pointer_n = write_pointer_q;
|
||||
status_cnt_n = status_cnt_q;
|
||||
if (FPGA_EN) begin
|
||||
fifo_ram_we = '0;
|
||||
fifo_ram_read_address = read_pointer_q;
|
||||
fifo_ram_write_address = '0;
|
||||
fifo_ram_wdata = '0;
|
||||
data_o = (DEPTH == 0) ? data_i : fifo_ram_rdata;
|
||||
end else begin
|
||||
data_o = (DEPTH == 0) ? data_i : mem_q[read_pointer_q];
|
||||
mem_n = mem_q;
|
||||
gate_clock = 1'b1;
|
||||
end
|
||||
// status flags
|
||||
|
||||
// read and write queue logic
|
||||
always_comb begin : read_write_comb
|
||||
// default assignment
|
||||
read_pointer_n = read_pointer_q;
|
||||
// push a new element to the queue
|
||||
if (push_i && ~full_o) begin
|
||||
if (FPGA_EN) begin
|
||||
fifo_ram_we = 1'b1;
|
||||
fifo_ram_write_address = write_pointer_q;
|
||||
fifo_ram_wdata = data_i;
|
||||
end else begin
|
||||
// push the data onto the queue
|
||||
mem_n[write_pointer_q] = data_i;
|
||||
// un-gate the clock, we want to write something
|
||||
gate_clock = 1'b0;
|
||||
end
|
||||
|
||||
// increment the write counter
|
||||
if (write_pointer_q == FifoDepth[ADDR_DEPTH-1:0] - 1) write_pointer_n = '0;
|
||||
else write_pointer_n = write_pointer_q + 1;
|
||||
// increment the overall counter
|
||||
status_cnt_n = status_cnt_q + 1;
|
||||
end
|
||||
|
||||
if (pop_i && ~empty_o) begin
|
||||
// read from the queue is a default assignment
|
||||
// but increment the read pointer...
|
||||
if (read_pointer_n == FifoDepth[ADDR_DEPTH-1:0] - 1) read_pointer_n = '0;
|
||||
else read_pointer_n = read_pointer_q + 1;
|
||||
// ... and decrement the overall count
|
||||
status_cnt_n = status_cnt_q - 1;
|
||||
end
|
||||
|
||||
// keep the count pointer stable if we push and pop at the same time
|
||||
if (push_i && pop_i && ~full_o && ~empty_o) status_cnt_n = status_cnt_q;
|
||||
|
||||
// FIFO is in pass through mode -> do not change the pointers
|
||||
if (FALL_THROUGH && (status_cnt_q == 0) && push_i) begin
|
||||
data_o = data_i;
|
||||
if (pop_i) begin
|
||||
status_cnt_n = status_cnt_q;
|
||||
read_pointer_n = read_pointer_q;
|
||||
write_pointer_n = write_pointer_q;
|
||||
status_cnt_n = status_cnt_q;
|
||||
if (FPGA_EN) begin
|
||||
fifo_ram_we = '0;
|
||||
fifo_ram_read_address = read_pointer_q;
|
||||
fifo_ram_write_address = '0;
|
||||
fifo_ram_wdata = '0;
|
||||
data_o = (DEPTH == 0) ? data_i : fifo_ram_rdata;
|
||||
end else begin
|
||||
data_o = (DEPTH == 0) ? data_i : mem_q[read_pointer_q];
|
||||
mem_n = mem_q;
|
||||
gate_clock = 1'b1;
|
||||
end
|
||||
|
||||
// push a new element to the queue
|
||||
if (push_i && ~full_o) begin
|
||||
if (FPGA_EN) begin
|
||||
fifo_ram_we = 1'b1;
|
||||
fifo_ram_write_address = write_pointer_q;
|
||||
fifo_ram_wdata = data_i;
|
||||
end else begin
|
||||
// push the data onto the queue
|
||||
mem_n[write_pointer_q] = data_i;
|
||||
// un-gate the clock, we want to write something
|
||||
gate_clock = 1'b0;
|
||||
end
|
||||
|
||||
// increment the write counter
|
||||
if (write_pointer_q == FifoDepth[ADDR_DEPTH-1:0] - 1)
|
||||
write_pointer_n = '0;
|
||||
else
|
||||
write_pointer_n = write_pointer_q + 1;
|
||||
// increment the overall counter
|
||||
status_cnt_n = status_cnt_q + 1;
|
||||
end
|
||||
|
||||
if (pop_i && ~empty_o) begin
|
||||
// read from the queue is a default assignment
|
||||
// but increment the read pointer...
|
||||
if (read_pointer_n == FifoDepth[ADDR_DEPTH-1:0] - 1)
|
||||
read_pointer_n = '0;
|
||||
else
|
||||
read_pointer_n = read_pointer_q + 1;
|
||||
// ... and decrement the overall count
|
||||
status_cnt_n = status_cnt_q - 1;
|
||||
end
|
||||
|
||||
// keep the count pointer stable if we push and pop at the same time
|
||||
if (push_i && pop_i && ~full_o && ~empty_o)
|
||||
status_cnt_n = status_cnt_q;
|
||||
|
||||
// FIFO is in pass through mode -> do not change the pointers
|
||||
if (FALL_THROUGH && (status_cnt_q == 0) && push_i) begin
|
||||
data_o = data_i;
|
||||
if (pop_i) begin
|
||||
status_cnt_n = status_cnt_q;
|
||||
read_pointer_n = read_pointer_q;
|
||||
write_pointer_n = write_pointer_q;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
// sequential process
|
||||
// sequential process
|
||||
always_ff @(posedge clk_i or negedge rst_ni) begin
|
||||
if (~rst_ni) begin
|
||||
read_pointer_q <= '0;
|
||||
write_pointer_q <= '0;
|
||||
status_cnt_q <= '0;
|
||||
end else begin
|
||||
if (flush_i) begin
|
||||
read_pointer_q <= '0;
|
||||
write_pointer_q <= '0;
|
||||
status_cnt_q <= '0;
|
||||
end else begin
|
||||
read_pointer_q <= read_pointer_n;
|
||||
write_pointer_q <= write_pointer_n;
|
||||
status_cnt_q <= status_cnt_n;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (FPGA_EN) begin : gen_fpga_queue
|
||||
AsyncDpRam #(
|
||||
.ADDR_WIDTH(ADDR_DEPTH),
|
||||
.DATA_DEPTH(DEPTH),
|
||||
.DATA_WIDTH($bits(dtype))
|
||||
) fifo_ram (
|
||||
.Clk_CI (clk_i),
|
||||
.WrEn_SI (fifo_ram_we),
|
||||
.RdAddr_DI(fifo_ram_read_address),
|
||||
.WrAddr_DI(fifo_ram_write_address),
|
||||
.WrData_DI(fifo_ram_wdata),
|
||||
.RdData_DO(fifo_ram_rdata)
|
||||
);
|
||||
end else begin : gen_asic_queue
|
||||
always_ff @(posedge clk_i or negedge rst_ni) begin
|
||||
if(~rst_ni) begin
|
||||
read_pointer_q <= '0;
|
||||
write_pointer_q <= '0;
|
||||
status_cnt_q <= '0;
|
||||
end else begin
|
||||
if (flush_i) begin
|
||||
read_pointer_q <= '0;
|
||||
write_pointer_q <= '0;
|
||||
status_cnt_q <= '0;
|
||||
end else begin
|
||||
read_pointer_q <= read_pointer_n;
|
||||
write_pointer_q <= write_pointer_n;
|
||||
status_cnt_q <= status_cnt_n;
|
||||
end
|
||||
end
|
||||
if (~rst_ni) begin
|
||||
mem_q <= '0;
|
||||
end else if (!gate_clock) begin
|
||||
mem_q <= mem_n;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (FPGA_EN) begin : gen_fpga_queue
|
||||
AsyncDpRam #(
|
||||
.ADDR_WIDTH (ADDR_DEPTH),
|
||||
.DATA_DEPTH (DEPTH),
|
||||
.DATA_WIDTH ($bits(dtype))
|
||||
) fifo_ram (
|
||||
.Clk_CI ( clk_i ),
|
||||
.WrEn_SI ( fifo_ram_we ),
|
||||
.RdAddr_DI ( fifo_ram_read_address ),
|
||||
.WrAddr_DI ( fifo_ram_write_address ),
|
||||
.WrData_DI ( fifo_ram_wdata ),
|
||||
.RdData_DO ( fifo_ram_rdata )
|
||||
);
|
||||
end else begin : gen_asic_queue
|
||||
always_ff @(posedge clk_i or negedge rst_ni) begin
|
||||
if(~rst_ni) begin
|
||||
mem_q <= '0;
|
||||
end else if (!gate_clock) begin
|
||||
mem_q <= mem_n;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
// pragma translate_off
|
||||
// pragma translate_off
|
||||
`ifndef VERILATOR
|
||||
initial begin
|
||||
assert (DEPTH > 0) else $error("DEPTH must be greater than 0.");
|
||||
end
|
||||
initial begin
|
||||
assert (DEPTH > 0)
|
||||
else $error("DEPTH must be greater than 0.");
|
||||
end
|
||||
|
||||
full_write : assert property(
|
||||
@(posedge clk_i) disable iff (~rst_ni) (full_o |-> ~push_i))
|
||||
else $fatal (1, "Trying to push new data although the FIFO is full.");
|
||||
full_write :
|
||||
assert property (@(posedge clk_i) disable iff (~rst_ni) (full_o |-> ~push_i))
|
||||
else $fatal(1, "Trying to push new data although the FIFO is full.");
|
||||
|
||||
empty_read : assert property(
|
||||
@(posedge clk_i) disable iff (~rst_ni) (empty_o |-> ~pop_i))
|
||||
else $fatal (1, "Trying to pop data although the FIFO is empty.");
|
||||
empty_read :
|
||||
assert property (@(posedge clk_i) disable iff (~rst_ni) (empty_o |-> ~pop_i))
|
||||
else $fatal(1, "Trying to pop data although the FIFO is empty.");
|
||||
`endif
|
||||
// pragma translate_on
|
||||
// pragma translate_on
|
||||
|
||||
endmodule // fifo_v3
|
||||
endmodule // fifo_v3
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -115,15 +115,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -120,7 +120,6 @@ package cva6_config_pkg;
|
|||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_L15_BIG_ENDIAN,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -123,15 +123,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_L15_BIG_ENDIAN,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -113,15 +113,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -113,15 +113,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
|
@ -116,15 +116,12 @@ package cva6_config_pkg;
|
|||
PMPAddrRstVal: {16{64'h0}},
|
||||
PMPEntryReadOnly: 16'd0,
|
||||
NOCType: config_pkg::NOC_TYPE_AXI4_ATOP,
|
||||
// idempotent region
|
||||
NrNonIdempotentRules: unsigned'(2),
|
||||
NonIdempotentAddrBase: 1024'({64'b0, 64'b0}),
|
||||
NonIdempotentLength: 1024'({64'b0, 64'b0}),
|
||||
NrExecuteRegionRules: unsigned'(3),
|
||||
// DRAM, Boot ROM, Debug Module
|
||||
ExecuteRegionAddrBase: 1024'({64'h8000_0000, 64'h1_0000, 64'h0}),
|
||||
ExecuteRegionLength: 1024'({64'h40000000, 64'h10000, 64'h1000}),
|
||||
// cached region
|
||||
NrCachedRegionRules: unsigned'(1),
|
||||
CachedRegionAddrBase: 1024'({64'h8000_0000}),
|
||||
CachedRegionLength: 1024'({64'h40000000}),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue