diff --git a/src/uncore/ahbapbbridge.sv b/src/uncore/ahbapbbridge.sv
index 011356ba2..bfbe9caaf 100644
--- a/src/uncore/ahbapbbridge.sv
+++ b/src/uncore/ahbapbbridge.sv
@@ -25,31 +25,29 @@
// and limitations under the License.
////////////////////////////////////////////////////////////////////////////////////////////////
-`include "wally-config.vh"
-
-module ahbapbbridge #(PERIPHS = 2) (
+module ahbapbbridge import cvw::*; #(parameter cvw_t P, PERIPHS = 2) (
input logic HCLK, HRESETn,
input logic [PERIPHS-1:0] HSEL,
- input logic [`PA_BITS-1:0] HADDR,
- input logic [`XLEN-1:0] HWDATA,
- input logic [`XLEN/8-1:0] HWSTRB,
+ input logic [P.PA_BITS-1:0] HADDR,
+ input logic [P.XLEN-1:0] HWDATA,
+ input logic [P.XLEN/8-1:0] HWSTRB,
input logic HWRITE,
input logic [1:0] HTRANS,
input logic HREADY,
// input logic [3:0] HPROT, // not used
- output logic [`XLEN-1:0] HRDATA,
+ output logic [P.XLEN-1:0] HRDATA,
output logic HRESP, HREADYOUT,
output logic PCLK, PRESETn,
output logic [PERIPHS-1:0] PSEL,
output logic PWRITE,
output logic PENABLE,
output logic [31:0] PADDR,
- output logic [`XLEN-1:0] PWDATA,
+ output logic [P.XLEN-1:0] PWDATA,
// output logic [2:0] PPROT, // not used
- output logic [`XLEN/8-1:0] PSTRB,
+ output logic [P.XLEN/8-1:0] PSTRB,
// output logic PWAKEUP // not used
input logic [PERIPHS-1:0] PREADY,
- input var [PERIPHS-1:0][`XLEN-1:0] PRDATA
+ input var [PERIPHS-1:0][P.XLEN-1:0] PRDATA
);
logic initTrans, initTransSel, initTransSelD;
diff --git a/src/uncore/clint_apb.sv b/src/uncore/clint_apb.sv
index 7b6bf676b..fdbe8f640 100644
--- a/src/uncore/clint_apb.sv
+++ b/src/uncore/clint_apb.sv
@@ -27,17 +27,15 @@
// and limitations under the License.
////////////////////////////////////////////////////////////////////////////////////////////////
-`include "wally-config.vh"
-
-module clint_apb (
+module clint_apb import cvw::*; #(parameter cvw_t P) (
input logic PCLK, PRESETn,
input logic PSEL,
input logic [15:0] PADDR,
- input logic [`XLEN-1:0] PWDATA,
- input logic [`XLEN/8-1:0] PSTRB,
+ input logic [P.XLEN-1:0] PWDATA,
+ input logic [P.XLEN/8-1:0] PSTRB,
input logic PWRITE,
input logic PENABLE,
- output logic [`XLEN-1:0] PRDATA,
+ output logic [P.XLEN-1:0] PRDATA,
output logic PREADY,
output logic [63:0] MTIME,
output logic MTimerInt, MSwInt
@@ -53,7 +51,7 @@ module clint_apb (
assign PREADY = 1'b1; // CLINT never takes >1 cycle to respond
// word aligned reads
- if (`XLEN==64) assign #2 entry = {PADDR[15:3], 3'b000};
+ if (P.XLEN==64) assign #2 entry = {PADDR[15:3], 3'b000};
else assign #2 entry = {PADDR[15:2], 2'b00};
// DH 2/20/21: Eventually allow MTIME to run off a separate clock
@@ -63,7 +61,7 @@ module clint_apb (
// Use req and ack signals synchronized across the clock domains.
// register access
- if (`XLEN==64) begin:clint // 64-bit
+ if (P.XLEN==64) begin:clint // 64-bit
always @(posedge PCLK) begin
case(entry)
16'h0000: PRDATA <= {63'b0, MSIP};
@@ -79,7 +77,7 @@ module clint_apb (
end else if (memwrite) begin
if (entry == 16'h0000) MSIP <= PWDATA[0];
if (entry == 16'h4000) begin
- for(i=0;i<`XLEN/8;i++)
+ for(i=0;i
APB bridge
- ahbapbbridge #(4) ahbapbbridge (
+ ahbapbbridge #(P, 4) ahbapbbridge (
.HCLK, .HRESETn, .HSEL({HSELUART, HSELPLIC, HSELCLINT, HSELGPIO}), .HADDR, .HWDATA, .HWSTRB, .HWRITE, .HTRANS, .HREADY,
.HRDATA(HREADBRIDGE), .HRESP(HRESPBRIDGE), .HREADYOUT(HREADYBRIDGE),
.PCLK, .PRESETn, .PSEL, .PWRITE, .PENABLE, .PADDR, .PWDATA, .PSTRB, .PREADY, .PRDATA);
assign HSELBRIDGE = HSELGPIO | HSELCLINT | HSELPLIC | HSELUART; // if any of the bridge signals are selected
// on-chip RAM
- if (`UNCORE_RAM_SUPPORTED) begin : ram
- ram_ahb #(.BASE(`UNCORE_RAM_BASE), .RANGE(`UNCORE_RAM_RANGE)) ram (
+ if (P.UNCORE_RAM_SUPPORTED) begin : ram
+ ram_ahb #(.P(P), .BASE(P.UNCORE_RAM_BASE), .RANGE(P.UNCORE_RAM_RANGE)) ram (
.HCLK, .HRESETn, .HSELRam, .HADDR, .HWRITE, .HREADY,
.HTRANS, .HWDATA, .HWSTRB, .HREADRam, .HRESPRam, .HREADYRam);
end
- if (`BOOTROM_SUPPORTED) begin : bootrom
- rom_ahb #(.BASE(`BOOTROM_BASE), .RANGE(`BOOTROM_RANGE))
+ if (P.BOOTROM_SUPPORTED) begin : bootrom
+ rom_ahb #(.P(P), .BASE(P.BOOTROM_BASE), .RANGE(P.BOOTROM_RANGE))
bootrom(.HCLK, .HRESETn, .HSELRom(HSELBootRom), .HADDR, .HREADY, .HTRANS,
.HREADRom(HREADBootRom), .HRESPRom(HRESPBootRom), .HREADYRom(HREADYBootRom));
end
// memory-mapped I/O peripherals
- if (`CLINT_SUPPORTED == 1) begin : clint
- clint_apb clint(.PCLK, .PRESETn, .PSEL(PSEL[1]), .PADDR(PADDR[15:0]), .PWDATA, .PSTRB, .PWRITE, .PENABLE,
+ if (P.CLINT_SUPPORTED == 1) begin : clint
+ clint_apb #(P) clint(.PCLK, .PRESETn, .PSEL(PSEL[1]), .PADDR(PADDR[15:0]), .PWDATA, .PSTRB, .PWRITE, .PENABLE,
.PRDATA(PRDATA[1]), .PREADY(PREADY[1]), .MTIME(MTIME_CLINT), .MTimerInt, .MSwInt);
end else begin : clint
assign MTIME_CLINT = 0;
assign MTimerInt = 0; assign MSwInt = 0;
end
- if (`PLIC_SUPPORTED == 1) begin : plic
- plic_apb plic(.PCLK, .PRESETn, .PSEL(PSEL[2]), .PADDR(PADDR[27:0]), .PWDATA, .PSTRB, .PWRITE, .PENABLE,
+ if (P.PLIC_SUPPORTED == 1) begin : plic
+ plic_apb #(P) plic(.PCLK, .PRESETn, .PSEL(PSEL[2]), .PADDR(PADDR[27:0]), .PWDATA, .PSTRB, .PWRITE, .PENABLE,
.PRDATA(PRDATA[2]), .PREADY(PREADY[2]), .UARTIntr, .GPIOIntr, .MExtInt, .SExtInt);
end else begin : plic
assign MExtInt = 0;
assign SExtInt = 0;
end
- if (`GPIO_SUPPORTED == 1) begin : gpio
- gpio_apb gpio(
+ if (P.GPIO_SUPPORTED == 1) begin : gpio
+ gpio_apb #(P) gpio(
.PCLK, .PRESETn, .PSEL(PSEL[0]), .PADDR(PADDR[7:0]), .PWDATA, .PSTRB, .PWRITE, .PENABLE,
.PRDATA(PRDATA[0]), .PREADY(PREADY[0]),
.iof0(), .iof1(), .GPIOIN, .GPIOOUT, .GPIOEN, .GPIOIntr);
end else begin : gpio
assign GPIOOUT = 0; assign GPIOEN = 0; assign GPIOIntr = 0;
end
- if (`UART_SUPPORTED == 1) begin : uart
- uart_apb uart(
+ if (P.UART_SUPPORTED == 1) begin : uart
+ uart_apb #(P) uart(
.PCLK, .PRESETn, .PSEL(PSEL[3]), .PADDR(PADDR[2:0]), .PWDATA, .PSTRB, .PWRITE, .PENABLE,
.PRDATA(PRDATA[3]), .PREADY(PREADY[3]),
.SIN(UARTSin), .DSRb(1'b1), .DCDb(1'b1), .CTSb(1'b0), .RIb(1'b1), // from E1A driver from RS232 interface
@@ -147,7 +145,7 @@ module uncore import cvw::*; #(parameter cvw_t P)(
end else begin : uart
assign UARTSout = 0; assign UARTIntr = 0;
end
- if (`SDC_SUPPORTED == 1) begin : sdc
+ if (P.SDC_SUPPORTED == 1) begin : sdc
SDC SDC(.HCLK, .HRESETn, .HSELSDC, .HADDR(HADDR[4:0]), .HWRITE, .HREADY, .HTRANS,
.HWDATA, .HREADSDC, .HRESPSDC, .HREADYSDC,
// sdc interface
@@ -162,11 +160,11 @@ module uncore import cvw::*; #(parameter cvw_t P)(
end
// AHB Read Multiplexer
- assign HRDATA = ({`XLEN{HSELRamD}} & HREADRam) |
- ({`XLEN{HSELEXTD}} & HRDATAEXT) |
- ({`XLEN{HSELBRIDGED}} & HREADBRIDGE) |
- ({`XLEN{HSELBootRomD}} & HREADBootRom) |
- ({`XLEN{HSELSDCD}} & HREADSDC);
+ assign HRDATA = ({P.XLEN{HSELRamD}} & HREADRam) |
+ ({P.XLEN{HSELEXTD}} & HRDATAEXT) |
+ ({P.XLEN{HSELBRIDGED}} & HREADBRIDGE) |
+ ({P.XLEN{HSELBootRomD}} & HREADBootRom) |
+ ({P.XLEN{HSELSDCD}} & HREADSDC);
assign HRESP = HSELRamD & HRESPRam |
HSELEXTD & HRESPEXT |