From 39deacc600317d7c68df33421c1e49521818f69f Mon Sep 17 00:00:00 2001 From: Daniel Newbrook <dwn1c21@soton.ac.uk> Date: Mon, 21 Aug 2023 16:42:00 +0100 Subject: [PATCH] Added bootrom --- flist/asic_lib_mem_ip.flist | 2 +- rom/verilog/bootrom.v | 46 +++++++++++++++++++ rom/verilog/sl_ahb_rom.v | 89 ------------------------------------- rom/verilog/sl_rom.v | 0 sram/verilog/sl_ahb_sram.v | 9 ++-- sram/verilog/sl_sram.v | 12 +++++ 6 files changed, 62 insertions(+), 96 deletions(-) create mode 100644 rom/verilog/bootrom.v delete mode 100644 rom/verilog/sl_ahb_rom.v delete mode 100644 rom/verilog/sl_rom.v diff --git a/flist/asic_lib_mem_ip.flist b/flist/asic_lib_mem_ip.flist index 8aeef8b..dab696b 100644 --- a/flist/asic_lib_mem_ip.flist +++ b/flist/asic_lib_mem_ip.flist @@ -20,5 +20,5 @@ // - Top-level testbench $(SOCLABS_ASIC_LIB_TECH_DIR)/sram/verilog/sl_ahb_sram.v -$(SOCLABS_ASIC_LIB_TECH_DIR)/rom/verilog/sl_ahb_rom.v $(SOCLABS_ASIC_LIB_TECH_DIR)/sram/verilog/sl_sram.v +$(SOCLABS_ASIC_LIB_TECH_DIR)/rom/verilog/bootrom.v diff --git a/rom/verilog/bootrom.v b/rom/verilog/bootrom.v new file mode 100644 index 0000000..c4b465d --- /dev/null +++ b/rom/verilog/bootrom.v @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// SoCLabs ASIC ROM Wrapper +// - substituded using the same name from the FPGA tech library +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// Daniel Newbrook (d.newbrook@soton.ac.uk) +// +// Copyright 2021-3, SoC Labs (www.soclabs.org) +//----------------------------------------------------------------------------- + +module bootrom #( + parameter AW_ADDR_W = 8 +)( + `ifdef POWER_PINS + inout VDD, + inout VSS, + `endif + input wire CLK, + input wire EN, + input wire [7:0] W_ADDR, + output reg [31:0] RDATA +); + + rom_via + u_sl_rom( + `ifdef POWER_PINS + .VDDE(VDD), + .VSSE(VSS), + `endif + .Q(RDATA), + .CLK(CLK), + .CEN(EN), + .A(W_ADDR), + .EMA(3'b000), + .TEN(1'b1), + .BEN(1'b1), + .TCEN(1'b0), + .TA(8'b0), + .TQ(32'b0), + .PGEN(1'b0), + .KEN(1'b1) + ); + +endmodule \ No newline at end of file diff --git a/rom/verilog/sl_ahb_rom.v b/rom/verilog/sl_ahb_rom.v deleted file mode 100644 index 241563c..0000000 --- a/rom/verilog/sl_ahb_rom.v +++ /dev/null @@ -1,89 +0,0 @@ -//----------------------------------------------------------------------------- -// SoCLabs FPGA ROM Wrapper -// - to be substitued with same name file in filelist when moving to ASIC -// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. -// -// Contributors -// -// David Mapstone (d.a.mapstone@soton.ac.uk) -// -// Copyright 2021-3, SoC Labs (www.soclabs.org) -//----------------------------------------------------------------------------- - -module sl_ahb_rom #( - // System Parameters - parameter SYS_DATA_W = 32, // System Data Width - parameter RAM_ADDR_W = 14, // Size of SRAM - parameter RAM_DATA_W = 32, // Data Width of RAM - parameter FILENAME = "image.hex" // Initial Image to Populate Memory with -)( - // -------------------------------------------------------------------------- - // Port Definitions - // -------------------------------------------------------------------------- - input wire HCLK, // system bus clock - input wire HRESETn, // system bus reset - input wire HSEL, // AHB peripheral select - input wire HREADY, // AHB ready input - input wire [1:0] HTRANS, // AHB transfer type - input wire [2:0] HSIZE, // AHB hsize - input wire HWRITE, // AHB hwrite - input wire [RAM_ADDR_W-1:0] HADDR, // AHB address bus - input wire [SYS_DATA_W-1:0] HWDATA, // AHB write data bus - output wire HREADYOUT, // AHB ready output to S->M mux - output wire HRESP, // AHB response - output wire [SYS_DATA_W-1:0] HRDATA // AHB read data bus -); - - // Internal Wiring - wire [RAM_ADDR_W-3:0] addr; - wire [RAM_DATA_W-1:0] wdata; - wire [RAM_DATA_W-1:0] rdata; - wire [3:0] wen; - wire cs; - - // AHB to SRAM Conversion - cmsdk_ahb_to_sram #( - .AW (RAM_ADDR_W) - ) u_ahb_to_sram ( - // AHB Inputs - .HCLK (HCLK), - .HRESETn (HRESETn), - .HSEL (HSEL), - .HADDR (HADDR[RAM_ADDR_W-1:0]), - .HTRANS (HTRANS), - .HSIZE (HSIZE), - .HWRITE (HWRITE), - .HWDATA (HWDATA), - .HREADY (HREADY), - - // AHB Outputs - .HREADYOUT (HREADYOUT), - .HRDATA (HRDATA), - .HRESP (HRESP), - - // SRAM input - .SRAMRDATA (rdata), - - // SRAM Outputs - .SRAMADDR (addr), - .SRAMWDATA (wdata), - .SRAMWEN (wen), - .SRAMCS (cs) - ); - - // FPGA SRAM model - sl_rom #( - .AW (RAM_ADDR_W), - .filename (FILENAME) - ) u_sram ( - // SRAM Inputs - .CLK (HCLK), - .ADDR (addr), - .WDATA (wdata), - .WREN (wen), - .CS (cs), - - // SRAM Output - .RDATA (rdata) - ); -endmodule \ No newline at end of file diff --git a/rom/verilog/sl_rom.v b/rom/verilog/sl_rom.v deleted file mode 100644 index e69de29..0000000 diff --git a/sram/verilog/sl_ahb_sram.v b/sram/verilog/sl_ahb_sram.v index c511881..02f1e52 100644 --- a/sram/verilog/sl_ahb_sram.v +++ b/sram/verilog/sl_ahb_sram.v @@ -17,9 +17,6 @@ module sl_ahb_sram #( parameter RAM_DATA_W = 32 // Data Width of RAM )( `ifdef POWER_PINS - inout wire VDDCE, - inout wire VDDPE, - inout wire VSSE, inout wire VDD, inout wire VSS, `endif @@ -82,9 +79,9 @@ module sl_ahb_sram #( .AW (RAM_ADDR_W) ) u_sram ( `ifdef POWER_PINS - .VDDCE (VDDCE), - .VDDPE (VDDPE), - .VSSE (VSSE), + .VDDCE (VDD), + .VDDPE (VDD), + .VSSE (VSS), `endif // SRAM Inputs .CLK (HCLK), diff --git a/sram/verilog/sl_sram.v b/sram/verilog/sl_sram.v index 161a58b..4bf5d9a 100644 --- a/sram/verilog/sl_sram.v +++ b/sram/verilog/sl_sram.v @@ -1,3 +1,15 @@ +//----------------------------------------------------------------------------- +// SoCLabs ASIC RAM Wrapper +// - substituted using the same name from the FPGA tech library +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// David Flynn (d.flynn@soton.ac.uk) +// +// Copyright 2021-3, SoC Labs (www.soclabs.org) +//----------------------------------------------------------------------------- + module sl_sram #( // -------------------------------------------------------------------------- // Parameter Declarations -- GitLab