From 9cbbf87fb040a4036db98a5015195093a50924b3 Mon Sep 17 00:00:00 2001 From: dam1n19 <dam1n19@soton.ac.uk> Date: Fri, 30 Jun 2023 16:37:54 +0100 Subject: [PATCH] Updated Waivers and filelists --- flist/nanosoc_tb.flist | 1 - flist/nanosoc_tb_qs.flist | 1 - flist/nanosoc_vip.flist | 3 - hal/corstone101_ip.bb | 4 - hal/nanosoc_ip.bb | 4 + hal/nanosoc_ip.waive | 80 +++++++++++++++++++ makefile | 4 +- .../nanosoc_chip/chip/verilog/nanosoc_chip.v | 15 ++-- .../bootrom_0/verilog/nanosoc_bootrom_cpu_0.v | 27 ++++--- .../verilog/nanosoc_region_bootrom_0.v | 5 +- .../ram/verilog/nanosoc_region_imem_0.v | 4 +- .../rom/verilog/nanosoc_region_imem_0.v | 4 +- .../cpu/verilog/nanosoc_ss_cpu.v | 4 +- .../verilog/nanosoc_ss_interconnect.v | 8 +- .../nanosoc_system/verilog/nanosoc_system.v | 44 +++++----- system/slcorem0_tech | 2 +- system/sldma230_tech | 2 +- system/socdebug_tech | 2 +- verif/tb/verilog/nanosoc_tb.v | 2 - verif/tb/verilog/nanosoc_tb_qs.v | 2 - 20 files changed, 149 insertions(+), 69 deletions(-) diff --git a/flist/nanosoc_tb.flist b/flist/nanosoc_tb.flist index 0933b8e..8873895 100644 --- a/flist/nanosoc_tb.flist +++ b/flist/nanosoc_tb.flist @@ -16,7 +16,6 @@ +libext+.v+.vlib // ============= NanoSoC Testbench search path ============= -+incdir+$(SOCLABS_NANOSOC_TECH_DIR)/verif/tb/verilog/ // - Top-level testbench $(SOCLABS_NANOSOC_TECH_DIR)/verif/tb/verilog/nanosoc_tb.v diff --git a/flist/nanosoc_tb_qs.flist b/flist/nanosoc_tb_qs.flist index c08e6b1..57addbc 100644 --- a/flist/nanosoc_tb_qs.flist +++ b/flist/nanosoc_tb_qs.flist @@ -17,7 +17,6 @@ // ============= NanoSoC Testbench search path ============= -+incdir+$(SOCLABS_NANOSOC_TECH_DIR)/verif/tb/verilog/ // - Top-level testbench - QUICKSTART $(SOCLABS_NANOSOC_TECH_DIR)/verif/tb/verilog/nanosoc_tb_qs.v diff --git a/flist/nanosoc_vip.flist b/flist/nanosoc_vip.flist index 549a31d..7b8db83 100644 --- a/flist/nanosoc_vip.flist +++ b/flist/nanosoc_vip.flist @@ -16,9 +16,6 @@ +libext+.v+.vlib // ============= NanoSoC Testbench search path ============= -+incdir+$(SOCLABS_NANOSOC_TECH_DIR)/verif/trace/verilog/ -+incdir+$(SOCLABS_NANOSOC_TECH_DIR)/verif/control/verilog/ - // - Testbench components $(SOCLABS_NANOSOC_TECH_DIR)/verif/control/verilog/nanosoc_clkreset.v diff --git a/hal/corstone101_ip.bb b/hal/corstone101_ip.bb index 8f944ce..62b87b4 100644 --- a/hal/corstone101_ip.bb +++ b/hal/corstone101_ip.bb @@ -69,8 +69,4 @@ bb_list // Exclude APB Test slave as Arm IP designunit = cmsdk_apb_test_slave; file = $ARM_CORSTONE_101_DIR/cmsdk_apb_subsystem/verilog/cmsdk_apb_test_slave.v; - - // Exclude Pads - designunit = PAD_INOUT8MA_NOE; - file = $SOCLABS_GENERIC_LIB_TECH_DIR/pads/verilog/PAD_INOUT8MA_NOE.v; } \ No newline at end of file diff --git a/hal/nanosoc_ip.bb b/hal/nanosoc_ip.bb index 0c16ed0..0ad69c3 100644 --- a/hal/nanosoc_ip.bb +++ b/hal/nanosoc_ip.bb @@ -25,4 +25,8 @@ bb_list // Temporarily Exclude Accelerator Subsystem (just linting NanoSoC) designunit = accelerator_subsystem; file = $SOCLABS_PROJECT_DIR/system/src/accelerator_subsystem.v; + + // Exclude Pads + designunit = PAD_INOUT8MA_NOE; + file = $SOCLABS_GENERIC_LIB_TECH_DIR/pads/verilog/PAD_INOUT8MA_NOE.v; } \ No newline at end of file diff --git a/hal/nanosoc_ip.waive b/hal/nanosoc_ip.waive index ce19aa1..d962f61 100644 --- a/hal/nanosoc_ip.waive +++ b/hal/nanosoc_ip.waive @@ -23,8 +23,60 @@ lint_checking designunit = nanosoc_chip_pads lint_checking designunit = nanosoc_chip { + // Not top-level of design + ATLGLC off; + // Combinatorial Wiring of outputs in top level of hierarchy CBPAHI off; + + // CLock Generation Logic around extraneous logic + CLKGNP off; + + // Doesn't recognise XTAL as Clock or PORESETn as reset + CLKUCL {"XTAL|PORESTn"} off; + + // Renaming of nrst_i to PRESETn + RSTUCL {"PRESETn"} off; + + // Constant conditional expression for SYS_TESTMODE + CONSTC {"TESTMODE"} off; + + // Pin Mux and FT signals driven by same pin + DALIAS {"P1_IN_MUX"} off; + + // Renamed System Reset + DIFRST {"SYS_SYSRESETn"} off; + + // Combinatorial path for Crystal Clock Input->Output + IOCOMB {"xtal_clk"} off; + + // FT Signals One-pin Bus + ONPNSG {"FT_MIOSIO"} off; + + // Some Pins are Tied Off + TIELOG {"p1_o|p1_e|p1_z"} off; + + // Not Top-level in design_info + TPOUNR off; + + // Intentionally Unconnected Signals + // - Chip Port Signals : P0 | P1 + // - Scanchain output disconnected + UNCONO {"P0|P1|SYS_SCANOUTHCLK"} off; + URDWIR {"P0|P1|SYS_SCANOUTHCLK"} off; +} + +lint_checking designunit = nanosoc_system +{ + // FT Signals One-pin Bus + ONPNSG {"FT_MIOSIO"} off; + + // Intentionally Unconnected Signals + // - AHB Signals: HMASTLOCK | HBURST + // - System Control: CPU_0_TXEV - unused + // - APB SS IRQs: [3:0] are unused + UNCONO {"HMASTLOCK|HBURST|TXEV|SYS_APB_IRQ"} off; + URDWIR {"HMASTLOCK|HBURST|TXEV|SYS_APB_IRQ"} off; } lint_checking designunit = nanosoc_ss_cpu @@ -125,18 +177,39 @@ lint_checking designunit = nanosoc_region_bootrom_0 { // Some Bits of AHB Signals not Used URDPRT {"HADDR|HTRANS|HSIZE|HWDATA|HPROT"} off; + + // AHB Signals bits unused: + // - HADDR - BITS 0 & 1 + // - TRANS - BIT 0 + // - HSIZE + // - HWDATA + // - HPROT + USEPRT {"HADDR|HTRANS|HSIZE|HWDATA|HPROT"} off; } lint_checking designunit = nanosoc_region_imem_0 { // Some Bits of AHB Signals not Used URDPRT {"HADDR|HTRANS|HSIZE|HWDATA|HPROT"} off; + + // Filename not used in SRAM + USEPAR {"IMEM_MEM_FPGA_IMG"} off; + + // AHB Signals bits unused: + // - HADDR - BITS 31:15 + // - HPROT + USEPRT {"HADDR|HPROT"} off; } lint_checking designunit = nanosoc_region_dmem_0 { // Some Bits of AHB Signals not Used URDPRT {"HADDR|HTRANS|HSIZE|HWDATA|HPROT"} off; + + // AHB Signals bits unused: + // - HADDR - BITS 31:15 + // - HPROT + USEPRT {"HADDR|HPROT"} off; } lint_checking designunit = nanosoc_region_expram_l @@ -174,6 +247,7 @@ lint_checking designunit = nanosoc_bootrom_cpu_0 // Some Bits of AHB Signals not Used URDPRT {"HADDR|HTRANS|HSIZE|HWDATA"} off; + USEPRT {"HADDR|HTRANS|HSIZE|HWDATA"} off; } lint_checking designunit = bootrom @@ -292,6 +366,9 @@ lint_checking designunit = nanosoc_sysctrl // Some AHB Signals unused USEPRT {"HTRANS|HSIZE"} off; + + // Asynchronous Reset + ACNCPI {"RESETn"} off; } lint_checking designunit = nanosoc_sysio_apb_ss @@ -326,6 +403,9 @@ lint_checking designunit = nanosoc_sysio_apb_ss // TODO: Uart Crossover needs looking at USEPRT {"uart0_rxd|uart1_rxd"} off; + + // Asynchronous Reset + ACNCPI {"HRESETn"} off; } lint_checking designunit = nanosoc_coresight_systable diff --git a/makefile b/makefile index 29ee06b..382daf5 100644 --- a/makefile +++ b/makefile @@ -220,14 +220,14 @@ all_vcs : compile_vcs bootrom debugtester compile_xm : bootrom @echo ADP_FILE @echo $(ADP_OPTIONS) - cd $(SIM_DIR); xmprep +overwrite $(XM_VC_OPTIONS) $(DEFINES_VC) +debug -timescale 1ps/1ps -top $(TB_TOP) | tee compile_xm.log + cd $(SIM_DIR); xmprep +overwrite $(XM_VC_OPTIONS) $(DEFINES_VC) +debug -timescale 1ns/1ps -top $(TB_TOP) | tee compile_xm.log cd $(SIM_DIR); xmvlog -work worklib -f xmvlog_ver.args | tee -a compile_xm.log cd $(SIM_DIR); xmelab -mess -f xmelab.args -access +r | tee -a compile_xm.log lint_xm: bootrom @rm -rf $(LINT_DIR) @mkdir -p $(LINT_DIR) - cd $(LINT_DIR); xrun -hal -f $(DESIGN_VC) $(DEFINES_VC) +debug "-timescale 1ps/1ps" -top $(LINT_TOP) $(HAL_BLACK_BOX) $(HAL_WAIVE) $(LINT_NOCHECK) + cd $(LINT_DIR); xrun -hal -f $(DESIGN_VC) $(DEFINES_VC) +debug "-timescale 1ns/1ps" -top $(LINT_TOP) $(HAL_BLACK_BOX) $(HAL_WAIVE) $(LINT_NOCHECK) # Note : If coverage is required, you can add -coverage all to xmelab diff --git a/system/nanosoc_chip/chip/verilog/nanosoc_chip.v b/system/nanosoc_chip/chip/verilog/nanosoc_chip.v index cfcbe68..473972b 100644 --- a/system/nanosoc_chip/chip/verilog/nanosoc_chip.v +++ b/system/nanosoc_chip/chip/verilog/nanosoc_chip.v @@ -36,8 +36,8 @@ module nanosoc_chip #( // Scan Wiring wire SYS_SCANENABLE; // Scan Mode Enable wire SYS_TESTMODE; // Test Mode Enable (Override Synchronisers) - wire INC_SCANINHCLK; // HCLK scan wire - wire INC_SCANOUTHCLK; // Scan Chain Output + wire SYS_SCANINHCLK; // HCLK scan wire + wire SYS_SCANOUTHCLK; // Scan Chain Output - UNUSED // Serial-Wire Debug wire CPU_0_SWDI; // SWD data input @@ -64,7 +64,6 @@ module nanosoc_chip #( wire [15:0] P0_OUTEN; // GPIO 0 output enables wire [15:0] P0_ALTFUNC; // GPIO 0 alternate function (pin mux) - wire [15:0] P1_IN; // GPIO 1 inputs wire [15:0] P1_IN_MUX; // level-shifted input from pad wire [15:0] P1_OUT; // GPIO 1 outputs wire [15:0] P1_OUTEN; // GPIO 1 output enables @@ -83,9 +82,9 @@ module nanosoc_chip #( assign PLL_CLK = xtal_clk_i; // Default to no PLL - assign SYS_SCANENABLE = 1'b0; - assign SYS_TESTMODE = 1'b0; - assign INC_SCANINHCLK = 1'b0; + assign SYS_SCANENABLE = 1'b0; + assign SYS_TESTMODE = 1'b0; + assign SYS_SCANINHCLK = 1'b0; //-------------------------- // Clock Wiring @@ -159,8 +158,8 @@ module nanosoc_chip #( // Scan Wiring .SYS_SCANENABLE(SYS_SCANENABLE), .SYS_TESTMODE(SYS_TESTMODE), - .INC_SCANINHCLK(INC_SCANINHCLK), - .INC_SCANOUTHCLK(INC_SCANOUTHCLK), + .SYS_SCANINHCLK(SYS_SCANINHCLK), + .SYS_SCANOUTHCLK(SYS_SCANOUTHCLK), // Serial-Wire Debug .CPU_0_SWDI(CPU_0_SWDI), diff --git a/system/nanosoc_regions/bootrom_0/verilog/nanosoc_bootrom_cpu_0.v b/system/nanosoc_regions/bootrom_0/verilog/nanosoc_bootrom_cpu_0.v index 3fb1394..4fc4d0d 100644 --- a/system/nanosoc_regions/bootrom_0/verilog/nanosoc_bootrom_cpu_0.v +++ b/system/nanosoc_regions/bootrom_0/verilog/nanosoc_bootrom_cpu_0.v @@ -10,19 +10,20 @@ //----------------------------------------------------------------------------- module nanosoc_bootrom_cpu_0 #( - parameter AW = 10 // Address width + parameter SYS_DATA_W = 32, // System Data Width + parameter BOOTROM_ADDR_W = 10 // Size of Bootrom (Based on Address Width) - Default 1KB )( - input wire HCLK, // Clock - input wire HSEL, // Device select - input wire [AW-1:0] HADDR, // Address - input wire [1:0] HTRANS, // Transfer control - input wire [2:0] HSIZE, // Transfer size - input wire HWRITE, // Write control - input wire [31:0] HWDATA, // Write data - not used - input wire HREADY, // Transfer phase done - output wire HREADYOUT, // Device ready - output wire [31:0] HRDATA, // Read data output - output wire HRESP // Device response (always OKAY) + input wire HCLK, // Clock + input wire HSEL, // Device select + input wire [BOOTROM_ADDR_W-1:0] HADDR, // Address + input wire [1:0] HTRANS, // Transfer control + input wire [2:0] HSIZE, // Transfer size + input wire HWRITE, // Write control + input wire [SYS_DATA_W-1:0] HWDATA, // Write data - not used + input wire HREADY, // Transfer phase done + output wire HREADYOUT, // Device ready + output wire [SYS_DATA_W-1:0] HRDATA, // Read data output + output wire HRESP // Device response (always OKAY) ); //------------------------ // Internal Wiring @@ -36,7 +37,7 @@ module nanosoc_bootrom_cpu_0 #( bootrom u_bootrom ( .CLK (HCLK), .EN (EN), - .W_ADDR (HADDR[AW-1:2]), + .W_ADDR (HADDR[BOOTROM_ADDR_W-1:2]), .RDATA (HRDATA) ); diff --git a/system/nanosoc_regions/bootrom_0/verilog/nanosoc_region_bootrom_0.v b/system/nanosoc_regions/bootrom_0/verilog/nanosoc_region_bootrom_0.v index 6a537e9..1fadc7d 100644 --- a/system/nanosoc_regions/bootrom_0/verilog/nanosoc_region_bootrom_0.v +++ b/system/nanosoc_regions/bootrom_0/verilog/nanosoc_region_bootrom_0.v @@ -34,11 +34,12 @@ module nanosoc_region_bootrom_0 #( ); nanosoc_bootrom_cpu_0 #( - .AW (BOOTROM_ADDR_W) + .SYS_DATA_W (SYS_DATA_W), + .BOOTROM_ADDR_W (BOOTROM_ADDR_W) ) u_bootrom_cpu_0 ( .HCLK (HCLK), .HSEL (HSEL), - .HADDR (HADDR[9:0]), + .HADDR (HADDR[BOOTROM_ADDR_W-1:0]), .HTRANS (HTRANS), .HSIZE (HSIZE), .HWRITE (HWRITE), diff --git a/system/nanosoc_regions/imem_0/ram/verilog/nanosoc_region_imem_0.v b/system/nanosoc_regions/imem_0/ram/verilog/nanosoc_region_imem_0.v index fc45b84..7c7c0e2 100644 --- a/system/nanosoc_regions/imem_0/ram/verilog/nanosoc_region_imem_0.v +++ b/system/nanosoc_regions/imem_0/ram/verilog/nanosoc_region_imem_0.v @@ -16,7 +16,7 @@ module nanosoc_region_imem_0 #( parameter SYS_DATA_W = 32, // System Data Width parameter IMEM_RAM_ADDR_W = 14, // Width of IMEM RAM Address - Default 16KB parameter IMEM_RAM_DATA_W = 32, // Width of IMEM RAM Data Bus - Default 32 bits - parameter IMEM_RAM_FPGA_IMG = "image.hex" // Image to Preload into SRAM + parameter IMEM_MEM_FPGA_IMG = "image.hex" // Image to Preload into SRAM - NOT USED )( input wire HCLK, input wire HRESETn, @@ -40,7 +40,7 @@ module nanosoc_region_imem_0 #( sl_ahb_sram #( .SYS_DATA_W (SYS_DATA_W), .RAM_ADDR_W (IMEM_RAM_ADDR_W), - .RAM_DATA_W (IMEM_RAM_DATA_W), + .RAM_DATA_W (IMEM_RAM_DATA_W) ) u_imem_0 ( // AHB Inputs .HCLK (HCLK), diff --git a/system/nanosoc_regions/imem_0/rom/verilog/nanosoc_region_imem_0.v b/system/nanosoc_regions/imem_0/rom/verilog/nanosoc_region_imem_0.v index 70e74e8..f5575d6 100644 --- a/system/nanosoc_regions/imem_0/rom/verilog/nanosoc_region_imem_0.v +++ b/system/nanosoc_regions/imem_0/rom/verilog/nanosoc_region_imem_0.v @@ -16,7 +16,7 @@ module nanosoc_region_imem_0 #( parameter SYS_DATA_W = 32, // System Data Width parameter IMEM_RAM_ADDR_W = 14, // Width of IMEM RAM Address - Default 16KB parameter IMEM_RAM_DATA_W = 32, // Width of IMEM RAM Data Bus - Default 32 bits - parameter IMEM_RAM_FPGA_IMG = "image.hex" // Image to Preload into SRAM + parameter IMEM_MEM_FPGA_IMG = "image.hex" // Image to Preload into ROM )( input wire HCLK, input wire HRESETn, @@ -41,7 +41,7 @@ module nanosoc_region_imem_0 #( .SYS_DATA_W (SYS_DATA_W), .RAM_ADDR_W (IMEM_RAM_ADDR_W), .RAM_DATA_W (IMEM_RAM_DATA_W), - .FILENAME (IMEM_RAM_FPGA_IMG) + .FILENAME (IMEM_MEM_FPGA_IMG) ) u_imem_0 ( // AHB Inputs .HCLK (HCLK), diff --git a/system/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v b/system/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v index 8580b39..fbb18ed 100644 --- a/system/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v +++ b/system/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v @@ -37,7 +37,7 @@ module nanosoc_ss_cpu #( // IMEM 0 Parameters parameter IMEM_RAM_ADDR_W = 14, // Width of IMEM RAM Address - Default 16KB parameter IMEM_RAM_DATA_W = 32, // Width of IMEM RAM Data Bus - Default 32 bits - parameter IMEM_RAM_FPGA_IMG = "image.hex", // Image to Preload into SRAM + parameter IMEM_MEM_FPGA_IMG = "image.hex", // Image to Preload into SRAM // DMEM 0 Parameters parameter DMEM_RAM_ADDR_W = 14, // Width of IMEM RAM Address - Default 16KB @@ -240,7 +240,7 @@ module nanosoc_ss_cpu #( .SYS_DATA_W (SYS_DATA_W), .IMEM_RAM_ADDR_W (IMEM_RAM_ADDR_W), .IMEM_RAM_DATA_W (IMEM_RAM_DATA_W), - .IMEM_RAM_FPGA_IMG (IMEM_RAM_FPGA_IMG) + .IMEM_MEM_FPGA_IMG (IMEM_MEM_FPGA_IMG) ) u_region_imem_0 ( // Clock and Reset .HCLK(SYS_HCLK), diff --git a/system/nanosoc_subsystems/interconnect/verilog/nanosoc_ss_interconnect.v b/system/nanosoc_subsystems/interconnect/verilog/nanosoc_ss_interconnect.v index 1f5697c..155dbee 100644 --- a/system/nanosoc_subsystems/interconnect/verilog/nanosoc_ss_interconnect.v +++ b/system/nanosoc_subsystems/interconnect/verilog/nanosoc_ss_interconnect.v @@ -18,8 +18,8 @@ module nanosoc_ss_interconnect #( input wire SYS_HCLK, // AHB System Clock input wire SYS_HRESETn, // AHB System Reset input wire SYS_SCANENABLE, // Scan enable signal - input wire INC_SCANINHCLK, // HCLK scan input wire - output wire INC_SCANOUTHCLK, // Scan Chain Output + input wire SYS_SCANINHCLK, // HCLK scan input wire + output wire SYS_SCANOUTHCLK, // Scan Chain Output // System Address Remap control input wire [3:0] SYS_REMAP_CTRL, // System Address REMAP control @@ -205,8 +205,8 @@ module nanosoc_ss_interconnect #( .HCLK (SYS_HCLK), // AHB System Clock .HRESETn (SYS_HRESETn), // AHB System Reset .SCANENABLE (SYS_SCANENABLE), // Scan enable signal - .SCANINHCLK (INC_SCANINHCLK), // HCLK scan input wire - .SCANOUTHCLK (INC_SCANOUTHCLK), // Scan Chain Output + .SCANINHCLK (SYS_SCANINHCLK), // HCLK scan input wire + .SCANOUTHCLK (SYS_SCANOUTHCLK), // Scan Chain Output // System Address Remap control .REMAP (SYS_REMAP_CTRL), // System Address REMAP control diff --git a/system/nanosoc_system/verilog/nanosoc_system.v b/system/nanosoc_system/verilog/nanosoc_system.v index c5fe7fb..fd2baef 100644 --- a/system/nanosoc_system/verilog/nanosoc_system.v +++ b/system/nanosoc_system/verilog/nanosoc_system.v @@ -24,7 +24,7 @@ module nanosoc_system #( // IMEM 0 Parameters parameter IMEM_RAM_ADDR_W = 14, // Width of IMEM RAM Address - Default 16KB parameter IMEM_RAM_DATA_W = 32, // Width of IMEM RAM Data Bus - Default 32 bits - parameter IMEM_RAM_FPGA_IMG = "image.hex", // Image to Preload into SRAM + parameter IMEM_MEM_FPGA_IMG = "image.hex", // Image to Preload into SRAM // DMEM 0 Parameters parameter DMEM_RAM_ADDR_W = 14, // Width of IMEM RAM Address - Default 16KB @@ -80,8 +80,8 @@ module nanosoc_system #( // Scan Wiring input wire SYS_SCANENABLE, // Scan Mode Enable input wire SYS_TESTMODE, // Test Mode Enable (Override Synchronisers) - input wire INC_SCANINHCLK, // HCLK scan input wire - output wire INC_SCANOUTHCLK, // Scan Chain Output + input wire SYS_SCANINHCLK, // HCLK scan input wire + output wire SYS_SCANOUTHCLK, // Scan Chain Output // Serial-Wire Debug input wire CPU_0_SWDI, // SWD data input @@ -234,6 +234,10 @@ module nanosoc_system #( wire CPU_0_SLEEPING; // Processor status - sleeping wire CPU_0_SLEEPDEEP; // Processor status - deep sleep + // Interrupt Wiring + //-------------------------- + assign CPU_0_NMI = SYS_NMI; + // Instantiate Subsystem //-------------------------- @@ -254,7 +258,7 @@ module nanosoc_system #( .BOOTROM_ADDR_W (BOOTROM_ADDR_W), .IMEM_RAM_ADDR_W (IMEM_RAM_ADDR_W), .IMEM_RAM_DATA_W (IMEM_RAM_DATA_W), - .IMEM_RAM_FPGA_IMG (IMEM_RAM_FPGA_IMG), + .IMEM_MEM_FPGA_IMG (IMEM_MEM_FPGA_IMG), .DMEM_RAM_ADDR_W (DMEM_RAM_ADDR_W), .DMEM_RAM_DATA_W (DMEM_RAM_DATA_W) ) u_ss_cpu ( @@ -336,7 +340,7 @@ module nanosoc_system #( .DMEM_0_HREADYOUT(DMEM_0_HREADYOUT), // CPU Sideband signalling - .CPU_0_NMI(SYS_NMI), + .CPU_0_NMI(CPU_0_NMI), .CPU_0_IRQ(CPU_0_IRQ), .CPU_0_TXEV(CPU_0_TXEV), .CPU_0_RXEV(CPU_0_RXEV), @@ -375,10 +379,6 @@ module nanosoc_system #( // DMAC 0 APB Configurtation Port - To System Control Subsystem wire DMAC_0_PSEL; // APB peripheral select - wire DMAC_0_PEN; // APB transfer enable - wire DMAC_0_PWRITE; // APB transfer direction - wire [DMAC_0_CFG_ADDR_W-1:0] DMAC_0_PADDR; // APB address - wire [SYS_DATA_W-1:0] DMAC_0_PWDATA; // APB write data wire [SYS_DATA_W-1:0] DMAC_0_PRDATA; // APB read data wire DMAC_0_PREADY; // APB Ready Signal wire DMAC_0_PSLVERR; // APB Error Signal @@ -412,6 +412,7 @@ module nanosoc_system #( wire [DMAC_1_CHANNEL_NUM-1:0] DMAC_1_DMA_DONE; // DMA transfer done wire DMAC_1_DMA_ERR; // DMA slave response not OK + // DMA Request Wiring //-------------------------- @@ -427,6 +428,8 @@ module nanosoc_system #( assign DMAC_ANY_DONE = DMAC_0_ANY_DONE | DMAC_1_ANY_DONE; assign DMAC_ANY_ERROR = DMAC_0_DMA_ERR | DMAC_1_DMA_ERR; + assign DMAC_1_DMA_REQ = {DMAC_1_CHANNEL_NUM{1'b0}}; + // APB Assignments //-------------------------- assign DMAC_0_PREADY = 1'b1; @@ -628,6 +631,8 @@ module nanosoc_system #( wire EXP_HRESP; wire [31:0] EXP_HRDATA; + wire EXP_HMASTLOCK; // AHB lock - Unused + // SRAM Low Region AHB Port - To Interconnect Subsystem wire EXPRAM_L_HSEL; wire [SYS_ADDR_W-1:0] EXPRAM_L_HADDR; @@ -643,6 +648,8 @@ module nanosoc_system #( wire EXPRAM_L_HRESP; wire [31:0] EXPRAM_L_HRDATA; + wire EXPRAM_L_HMASTLOCK; // AHB lock - Unused + // SRAM High Region AHB Port - To Interconnect Subsystem wire EXPRAM_H_HSEL; @@ -659,6 +666,7 @@ module nanosoc_system #( wire EXPRAM_H_HRESP; wire [31:0] EXPRAM_H_HRDATA; + wire EXPRAM_H_HMASTLOCK; // AHB lock - Unused // Interrupt Connections - TO CPU Subsystem wire [3:0] EXP_IRQ; @@ -931,11 +939,11 @@ module nanosoc_system #( assign CPU_0_IRQ [3:0] = EXP_IRQ [3:0]; assign CPU_0_IRQ [ 5: 4] = SYS_APB_IRQ[ 5: 4]; - assign CPU_0_IRQ [ 6] = SYS_APB_IRQ[ 6] | (|SYS_GPIO0_ANY_IRQ); - assign CPU_0_IRQ [ 7] = SYS_APB_IRQ[ 7] | (|SYS_GPIO1_ANY_IRQ); + assign CPU_0_IRQ [ 6] = SYS_APB_IRQ[ 6] | SYS_GPIO0_ANY_IRQ; + assign CPU_0_IRQ [ 7] = SYS_APB_IRQ[ 7] | SYS_GPIO1_ANY_IRQ; assign CPU_0_IRQ [14: 8] = SYS_APB_IRQ[14: 8]; - assign CPU_0_IRQ [15] = SYS_APB_IRQ[15] | DMAC_ANY_DONE | DMAC_ANY_ERROR; - assign CPU_0_IRQ [31:16] = SYS_APB_IRQ[31:16]| SYS_GPIO0_IRQ[15:0]; + assign CPU_0_IRQ [15] = SYS_APB_IRQ[15] | DMAC_ANY_DONE | DMAC_ANY_ERROR; + assign CPU_0_IRQ [31:16] = SYS_APB_IRQ[31:16] | SYS_GPIO0_IRQ[15:0]; //-------------------------- // Interconnect Subsystem @@ -952,8 +960,8 @@ module nanosoc_system #( .SYS_HCLK(SYS_HCLK), .SYS_HRESETn(SYS_HRESETn), .SYS_SCANENABLE(SYS_SCANENABLE), - .INC_SCANINHCLK(INC_SCANINHCLK), - .INC_SCANOUTHCLK(INC_SCANOUTHCLK), + .SYS_SCANINHCLK(SYS_SCANINHCLK), + .SYS_SCANOUTHCLK(SYS_SCANOUTHCLK), // System Address Remap control .SYS_REMAP_CTRL(SYS_REMAP_CTRL), @@ -1082,7 +1090,7 @@ module nanosoc_system #( .EXPRAM_L_HBURST(EXPRAM_L_HBURST), .EXPRAM_L_HPROT(EXPRAM_L_HPROT), .EXPRAM_L_HWDATA(EXPRAM_L_HWDATA), - .EXPRAM_L_HMASTLOCK(), + .EXPRAM_L_HMASTLOCK(EXPRAM_L_HMASTLOCK), .EXPRAM_L_HREADYMUX(EXPRAM_L_HREADY), // Expansion Memory High Region Slave Port @@ -1097,7 +1105,7 @@ module nanosoc_system #( .EXPRAM_H_HBURST(EXPRAM_H_HBURST), .EXPRAM_H_HPROT(EXPRAM_H_HPROT), .EXPRAM_H_HWDATA(EXPRAM_H_HWDATA), - .EXPRAM_H_HMASTLOCK(), + .EXPRAM_H_HMASTLOCK(EXPRAM_H_HMASTLOCK), .EXPRAM_H_HREADYMUX(EXPRAM_H_HREADY), // Expansion Region Slave Port @@ -1112,7 +1120,7 @@ module nanosoc_system #( .EXP_HBURST(EXP_HBURST), .EXP_HPROT(EXP_HPROT), .EXP_HWDATA(EXP_HWDATA), - .EXP_HMASTLOCK(), + .EXP_HMASTLOCK(EXP_HMASTLOCK), .EXP_HREADYMUX(EXP_HREADY), // System ROM Table Region Slave Port diff --git a/system/slcorem0_tech b/system/slcorem0_tech index c548cd6..b2ba5b3 160000 --- a/system/slcorem0_tech +++ b/system/slcorem0_tech @@ -1 +1 @@ -Subproject commit c548cd60119c081441ab4b644a0083dc4f684c92 +Subproject commit b2ba5b3f83e33c05c1107b3e1fa40f7f6af1e589 diff --git a/system/sldma230_tech b/system/sldma230_tech index 9ccb88a..c11843b 160000 --- a/system/sldma230_tech +++ b/system/sldma230_tech @@ -1 +1 @@ -Subproject commit 9ccb88a6057f003c58f80168d8dca64daf76d08f +Subproject commit c11843b9e75ce83b7118ef07cb3e1ecc2fe6c9c0 diff --git a/system/socdebug_tech b/system/socdebug_tech index 3ad5480..b274190 160000 --- a/system/socdebug_tech +++ b/system/socdebug_tech @@ -1 +1 @@ -Subproject commit 3ad5480136eb91bf2c17da27c07a0bda8e2fcec3 +Subproject commit b27419058c86e958dc345ff4fa0b2662a70bb88d diff --git a/verif/tb/verilog/nanosoc_tb.v b/verif/tb/verilog/nanosoc_tb.v index 352a378..5b179e0 100644 --- a/verif/tb/verilog/nanosoc_tb.v +++ b/verif/tb/verilog/nanosoc_tb.v @@ -37,8 +37,6 @@ // `timescale 1ns/1ps -`define CORTEX_M0 - module nanosoc_tb; wire XTAL1; // crystal pin 1 diff --git a/verif/tb/verilog/nanosoc_tb_qs.v b/verif/tb/verilog/nanosoc_tb_qs.v index fc3bd4b..8395444 100644 --- a/verif/tb/verilog/nanosoc_tb_qs.v +++ b/verif/tb/verilog/nanosoc_tb_qs.v @@ -37,8 +37,6 @@ // `timescale 1ns/1ps -`define CORTEX_M0 - module nanosoc_tb_qs; wire XTAL1; // crystal pin 1 -- GitLab