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 |