diff --git a/engine/set_env.sh b/engine/set_env.sh deleted file mode 100755 index 1d911c6a74d52d2b1a76237a76fba6cc702d1565..0000000000000000000000000000000000000000 --- a/engine/set_env.sh +++ /dev/null @@ -1,50 +0,0 @@ -#----------------------------------------------------------------------------- -# SoC Labs Environment Setup Script -# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. -# -# Contributors -# -# David Mapstone (d.a.mapstone@soton.ac.uk) -# -# Copyright 2023, SoC Labs (www.soclabs.org) -#----------------------------------------------------------------------------- -#!/bin/bash - -# Get Root Location of Design Structure -if [ -z $DESIGN_ROOT ]; then - # If $DESIGN_ROOT hasn't been set yet - DESIGN_ROOT=`git rev-parse --show-superproject-working-tree` - - if [ -z $DESIGN_ROOT ]; then - # If not in a submodule - at root - DESIGN_ROOT=`git rev-parse --show-toplevel` - fi - - # Source Top-Level Sourceme - source $DESIGN_ROOT/set_env.sh -else - # Set Environment Variable for this Repository - export ACC_ENGINE_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - - # If this Repo is root of workspace - if [ $ACC_ENGINE_DIR = $DESIGN_ROOT ]; then - echo "Design Workspace: $DESIGN_ROOT" - export DESIGN_ROOT - # Set Default Simulator - export SIMULATOR="ivlog" - fi - - # Source environment variables for all submodules - for d in $ACC_ENGINE_DIR/* ; do - if [ -e "$d/.git" ]; then - if [ -f "$d/set_env.sh" ]; then - # If .git file exists - submodule - source $d/set_env.sh - fi - fi - done - - # Add Scripts to Path - export PATH="$PATH:/$ACC_ENGINE_DIR/flow" -fi - diff --git a/flist/ahb_ip.flist b/flist/ahb/ahb_ip.flist similarity index 100% rename from flist/ahb_ip.flist rename to flist/ahb/ahb_ip.flist diff --git a/flist/ahb_vip.flist b/flist/ahb/ahb_vip.flist similarity index 100% rename from flist/ahb_vip.flist rename to flist/ahb/ahb_vip.flist diff --git a/flist/apb_ip.flist b/flist/apb/apb_ip.flist similarity index 100% rename from flist/apb_ip.flist rename to flist/apb/apb_ip.flist diff --git a/flist/corestone-101/corstone-101_ip.flist b/flist/corestone-101/corstone-101_ip.flist new file mode 100644 index 0000000000000000000000000000000000000000..4420f2649ab6a49aeec2d7e054c212667c448a04 --- /dev/null +++ b/flist/corestone-101/corstone-101_ip.flist @@ -0,0 +1,38 @@ +//----------------------------------------------------------------------------- +// NanoSoC Corstone-101 Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for Arm Corstone-101 +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= DMA-230 search path ============= ++incdir+$(PROJECT_DIR)/system/defines/corstone101 + ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/memories/ + +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_timer/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_uart/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_slave_mux/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_subsystem/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_slave_mux/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_default_slave/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_gpio/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_to_apb/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_iop_gpio/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/clkgate +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/memories/ +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_to_sram/verilog \ No newline at end of file diff --git a/flist/corestone-101/corstone-101_vip.flist b/flist/corestone-101/corstone-101_vip.flist new file mode 100644 index 0000000000000000000000000000000000000000..1c64fa5d3d1e204c79637f2b0439f6be42c0a41a --- /dev/null +++ b/flist/corestone-101/corstone-101_vip.flist @@ -0,0 +1,25 @@ +//----------------------------------------------------------------------------- +// NanoSoC Corstone-101 VIP Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for Arm Corstone-101 VIP +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= DMA-230 search path ============= ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_debug_tester/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/protocol_checkers/AhbLitePC/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/protocol_checkers/ApbPC/verilog + +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_debug_tester/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/protocol_checkers/AhbLitePC/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/protocol_checkers/ApbPC/verilog \ No newline at end of file diff --git a/flist/cortex-m0/cortex-m0_ip.flist b/flist/cortex-m0/cortex-m0_ip.flist new file mode 100644 index 0000000000000000000000000000000000000000..49a5afa4d06f259a081718493e20385becc91e42 --- /dev/null +++ b/flist/cortex-m0/cortex-m0_ip.flist @@ -0,0 +1,31 @@ +//----------------------------------------------------------------------------- +// NanoSoC Cortex-M0 Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for Arm Cortex-M0 +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= Accelerator Module search path ============= +-y $(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/cortexm0/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/cortexm0_dap/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/cortexm0_integration/verilog +-y $(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/models/cells +-y $(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/models/wrappers +-y $(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/ualdis/verilog + ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/cortexm0/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/cortexm0_dap/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/cortexm0_integration/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/models/cells ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/models/wrappers ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Cortex-M0/logical/ualdis/verilog diff --git a/flist/debug/adp-control_ip.flist b/flist/debug/adp-control_ip.flist new file mode 100644 index 0000000000000000000000000000000000000000..89ef0afee88e7561768f91b14b3da1356b8742dc --- /dev/null +++ b/flist/debug/adp-control_ip.flist @@ -0,0 +1,20 @@ +//----------------------------------------------------------------------------- +// NanoSoC ADP Control Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for ADP Control IP +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= ADP Control search path ============= +$(NANOSOC_TECH_DIR)/IPLIB/ADPcontrol_v1_0/ADPcontrol_v1_0.v +$(NANOSOC_TECH_DIR)/IPLIB/ADPcontrol_v1_0/ADPmanager.v \ No newline at end of file diff --git a/flist/debug/ft1248_vip.flist b/flist/debug/ft1248_vip.flist new file mode 100644 index 0000000000000000000000000000000000000000..870fbbf03611b7071261422520d5597a0b1fa7c9 --- /dev/null +++ b/flist/debug/ft1248_vip.flist @@ -0,0 +1,19 @@ +//----------------------------------------------------------------------------- +// NanoSoC FT1248 VIP Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for FT1248 IO VIP +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= FT1248 VIP search path ============= +$(NANOSOC_TECH_DIR)/IPLIB/FT1248_streamio_v1_0/ft1248_streamio_v1_0.v \ No newline at end of file diff --git a/flist/debug/usrt_ip.flist b/flist/debug/usrt_ip.flist new file mode 100644 index 0000000000000000000000000000000000000000..d2e8c5d5fc8606b9d8b456d97b615594bd81cf4e --- /dev/null +++ b/flist/debug/usrt_ip.flist @@ -0,0 +1,19 @@ +//----------------------------------------------------------------------------- +// NanoSoC APB USRT Control Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for APB USRT IP +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= APB USRT search path ============= +$(NANOSOC_TECH_DIR)/Cortex-M0/nanosoc/systems/mcu/verilog/cmsdk_apb_usrt.v \ No newline at end of file diff --git a/flist/dma-230/pl230_ip.flist b/flist/dma-230/pl230_ip.flist new file mode 100644 index 0000000000000000000000000000000000000000..978f427d81bf61ef70491a3bbf9e44f161b455f4 --- /dev/null +++ b/flist/dma-230/pl230_ip.flist @@ -0,0 +1,26 @@ +//----------------------------------------------------------------------------- +// NanoSoC DMA-230 Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for Arm DMA-230 +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= DMA-230 search path ============= ++incdir+$(PROJECT_DIR)/system/defines/pl230 + +$(ARM_IP_LIBRARY_PATH)/latest/DMA-230/logical/pl230_ahb_ctrl.v +$(ARM_IP_LIBRARY_PATH)/latest/DMA-230/logical/pl230_apb_regs.v +$(ARM_IP_LIBRARY_PATH)/latest/DMA-230/logical/pl230_dma_data.v +$(ARM_IP_LIBRARY_PATH)/latest/DMA-230/logical/pl230_udma.v +$(ARM_IP_LIBRARY_PATH)/latest/DMA-230/logical/pl230_undefs.v + diff --git a/flist/generic_lib/generic_lib.flist b/flist/generic_lib/generic_lib.flist new file mode 100644 index 0000000000000000000000000000000000000000..dd57578327c934224b000baa3688e1ce2dfba346 --- /dev/null +++ b/flist/generic_lib/generic_lib.flist @@ -0,0 +1,25 @@ +//----------------------------------------------------------------------------- +// Generic Library Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for Generic Library +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= Accelerator Module search path ============= +$(NANOSOC_TECH_DIR)/GLIB/pads/verilog/PAD_INOUT8MA_NOE.v +$(NANOSOC_TECH_DIR)/GLIB/pads/verilog/PAD_VDDIO.v +$(NANOSOC_TECH_DIR)/GLIB/pads/verilog/PAD_VSSIO.v +$(NANOSOC_TECH_DIR)/GLIB/pads/verilog/PAD_VDDSOC.v +$(NANOSOC_TECH_DIR)/GLIB/pads/verilog/PAD_VSS.v +$(NANOSOC_TECH_DIR)/GLIB/mem/verilog/SROM_Ax32.v +$(NANOSOC_TECH_DIR)/GLIB/sync/verilog/SYNCHRONIZER_EDGES.v \ No newline at end of file diff --git a/flist/nanosoc/nanosoc_matrix_ip.flist b/flist/nanosoc/nanosoc_matrix_ip.flist new file mode 100644 index 0000000000000000000000000000000000000000..b03107acdce4f2d7a3cdb7cf973569cc200249ba --- /dev/null +++ b/flist/nanosoc/nanosoc_matrix_ip.flist @@ -0,0 +1,21 @@ +//----------------------------------------------------------------------------- +// NanoSoC Bus Matrix IP Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for NanoSoC Bus Matrix IP +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= NanoSoC Bus Matrix IP search path ============= ++incdir+$(NANOSOC_TECH_DIR)/Cortex-M0/nanosoc/systems/mcu/verilog/gen_ahb_busmatrix/verilog/built + +-y $(NANOSOC_TECH_DIR)/Cortex-M0/nanosoc/systems/mcu/verilog/gen_ahb_busmatrix/verilog/built \ No newline at end of file diff --git a/flist/nanosoc/nanosoc_vip.flist b/flist/nanosoc/nanosoc_vip.flist new file mode 100644 index 0000000000000000000000000000000000000000..54a123636f5cb9f43fd70022c55717752d1bbb15 --- /dev/null +++ b/flist/nanosoc/nanosoc_vip.flist @@ -0,0 +1,21 @@ +//----------------------------------------------------------------------------- +// NanoSoC Testbench Filelist +// 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) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +// Abstract : Verilog Command File for NanoSoC Testbench +//----------------------------------------------------------------------------- + +// ============= Verilog library extensions =========== ++libext+.v+.vlib + +// ============= DMA-230 search path ============= ++incdir+$(NANOSOC_TECH_DIR)/Cortex-M0/nanosoc/systems/mcu/verilog/ + +$(NANOSOC_TECH_DIR)/Cortex-M0/nanosoc/systems/mcu/verilog/tb_nanosoc.v diff --git a/flist/primatives.flist b/flist/primatives/primatives.flist similarity index 100% rename from flist/primatives.flist rename to flist/primatives/primatives.flist diff --git a/flist/secworks_sha25_stream.flist b/flist/project/secworks_sha256_stream.flist similarity index 100% rename from flist/secworks_sha25_stream.flist rename to flist/project/secworks_sha256_stream.flist diff --git a/flist/system.flist b/flist/project/system.flist similarity index 100% rename from flist/system.flist rename to flist/project/system.flist diff --git a/flist/wrapper.flist b/flist/project/wrapper.flist similarity index 100% rename from flist/wrapper.flist rename to flist/project/wrapper.flist diff --git a/flist/wrapper_ip.flist b/flist/wrapper/wrapper_ip.flist similarity index 95% rename from flist/wrapper_ip.flist rename to flist/wrapper/wrapper_ip.flist index 373f79d7d2a39e3964c890684e0b8fc58863fb1a..3304718aea1055676dca64d6c87bf72a7e64bdd4 100644 --- a/flist/wrapper_ip.flist +++ b/flist/wrapper/wrapper_ip.flist @@ -25,7 +25,6 @@ $(WRAPPER_TECH_DIR)/hdl/src/wrapper_ahb_packet_deconstructor.sv $(WRAPPER_TECH_DIR)/hdl/src/wrapper_addr_calc.sv $(WRAPPER_TECH_DIR)/hdl/src/wrapper_data_req.sv $(WRAPPER_TECH_DIR)/hdl/src/wrapper_ahb_reg_interface.sv -// $(WRAPPER_TECH_DIR)/hdl/src/wrapper_ahb_vr_interface.sv $(WRAPPER_TECH_DIR)/hdl/src/wrapper_packet_construct.sv $(WRAPPER_TECH_DIR)/hdl/src/wrapper_packet_deconstruct.sv $(WRAPPER_TECH_DIR)/hdl/src/wrapper_req_ctrl_reg.sv diff --git a/nanosoc b/nanosoc index 3b65f6f388136905c590e9e067222e5f3679e90e..e63f4b85974feff6ea93e768c78a4a479f60b513 160000 --- a/nanosoc +++ b/nanosoc @@ -1 +1 @@ -Subproject commit 3b65f6f388136905c590e9e067222e5f3679e90e +Subproject commit e63f4b85974feff6ea93e768c78a4a479f60b513 diff --git a/system/defines/pl230/pl230_defs.v b/system/defines/pl230/pl230_defs.v new file mode 100644 index 0000000000000000000000000000000000000000..dcf4f1040e44f0b5ead58276a3367e5617e91c4a --- /dev/null +++ b/system/defines/pl230/pl230_defs.v @@ -0,0 +1,189 @@ +//----------------------------------------------------------------------------- +// customised example Cortex-M0 controller DMA230 configuration +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// David Flynn (d.w.flynn@soton.ac.uk) +// +// Copyright © 2021, SoC Labs (www.soclabs.org) +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// The confidential and proprietary information contained in this file may +// only be used by a person authorised under and to the extent permitted +// by a subsisting licensing agreement from ARM Limited. +// +// (C) COPYRIGHT 2006-2007 ARM Limited. +// ALL RIGHTS RESERVED +// +// This entire notice must be reproduced on all copies of this file +// and copies of this file may only be made by a person if such person is +// permitted to do so under the terms of a subsisting license agreement +// from ARM Limited. +// +// File Name : pl230_defs.v +// Checked In : $Date: 2007-06-06 21:55:22 +0530 (Wed, 06 Jun 2007) $ +// Revision : $Revision: 13823 $ +// State : $state: PL230-DE-98007-r0p0-02rel0 $ +// +//----------------------------------------------------------------------------- +// Purpose : Peripheral specific macro definitions +// +//----------------------------------------------------------------------------- + + +`ifdef ARM_TIMESCALE_DEFINED + `timescale 1ns/1ps +`endif + +// Set the number of channels implemented +`define PL230_CHNLS 2 +`define PL230_CHNL_BITS 1 +//`define PL230_ONE_CHNL + +// Include Integration Test Logic +`define PL230_INCLUDE_TEST + + +// AHB Interface +`define PL230_AHB_TRANS_IDLE 2'b00 +`define PL230_AHB_TRANS_NONSEQ 2'b10 +`define PL230_AHB_READ 1'b0 +`define PL230_AHB_WRITE 1'b1 +`define PL230_AHB_SIZE_BYTE 3'b000 +`define PL230_AHB_SIZE_HWORD 3'b001 +`define PL230_AHB_SIZE_WORD 3'b010 + +// PrimeCell Configuration +`define PL230_PERIPH_ID_0 8'h30 +`define PL230_PERIPH_ID_1 8'hB2 +`define PL230_PERIPH_ID_2 8'h0B +`define PL230_PERIPH_ID_3 8'h00 +`define PL230_PERIPH_ID_4 8'h04 +`define PL230_PCELL_ID_0 8'h0D +`define PL230_PCELL_ID_1 8'hF0 +`define PL230_PCELL_ID_2 8'h05 +`define PL230_PCELL_ID_3 8'hB1 + +// Memory Mapped Registers +// Controller Configuration Registers +`define PL230_ADDR_DMA_STATUS 12'h000 +`define PL230_ADDR_DMA_CFG 12'h004 +`define PL230_ADDR_CTRL_BASE_PTR 12'h008 +`define PL230_ADDR_ALT_CTRL_BASE_PTR 12'h00C +`define PL230_ADDR_DMA_WAITONREQ_STATUS 12'h010 +`define PL230_ADDR_CHNL_SW_REQUEST 12'h014 +`define PL230_ADDR_CHNL_USEBURST_SET 12'h018 +`define PL230_ADDR_CHNL_USEBURST_CLR 12'h01C +`define PL230_ADDR_CHNL_REQ_MASK_SET 12'h020 +`define PL230_ADDR_CHNL_REQ_MASK_CLR 12'h024 +`define PL230_ADDR_CHNL_ENABLE_SET 12'h028 +`define PL230_ADDR_CHNL_ENABLE_CLR 12'h02C +`define PL230_ADDR_CHNL_PRI_ALT_SET 12'h030 +`define PL230_ADDR_CHNL_PRI_ALT_CLR 12'h034 +`define PL230_ADDR_CHNL_PRIORITY_SET 12'h038 +`define PL230_ADDR_CHNL_PRIORITY_CLR 12'h03C +// Reserved 12'h040 +// Reserved 12'h044 +// Reserved 12'h048 +`define PL230_ADDR_ERR_CLR 12'h04C +// Integration Test Registers +`define PL230_ADDR_INTEGRATION_CFG 12'hE00 +// Reserved 12'hE04 +`define PL230_ADDR_STALL_STATUS 12'hE08 +// Reserved 12'hE0C +`define PL230_ADDR_DMA_REQ_STATUS 12'hE10 +// Reserved 12'hE14 +`define PL230_ADDR_DMA_SREQ_STATUS 12'hE18 +// Reserved 12'hE1C +`define PL230_ADDR_DMA_DONE_SET 12'hE20 +`define PL230_ADDR_DMA_DONE_CLR 12'hE24 +`define PL230_ADDR_DMA_ACTIVE_SET 12'hE28 +`define PL230_ADDR_DMA_ACTIVE_CLR 12'hE2C +// Reserved 12'hE30 +// Reserved 12'hE34 +// Reserved 12'hE38 +// Reserved 12'hE3C +// Reserved 12'hE40 +// Reserved 12'hE44 +`define PL230_ADDR_ERR_SET 12'hE48 +// Reserved 12'hE4C +// PrimeCell Configuration Registers +`define PL230_ADDR_PERIPH_ID_4 12'hFD0 +// Reserved 12'hFD4 +// Reserved 12'hFD8 +// Reserved 12'hFDC +`define PL230_ADDR_PERIPH_ID_0 12'hFE0 +`define PL230_ADDR_PERIPH_ID_1 12'hFE4 +`define PL230_ADDR_PERIPH_ID_2 12'hFE8 +`define PL230_ADDR_PERIPH_ID_3 12'hFEC +`define PL230_ADDR_PCELL_ID_0 12'hFF0 +`define PL230_ADDR_PCELL_ID_1 12'hFF4 +`define PL230_ADDR_PCELL_ID_2 12'hFF8 +`define PL230_ADDR_PCELL_ID_3 12'hFFC + + +// Bit vector definitions for channel_cfg +`define PL230_CHANNEL_CFG_BITS 20 +// Destination address increment +`define PL230_CHANNEL_CFG_DST_INC channel_cfg[19:18] +`define PL230_HRDATA_DST_INC hrdata[31:30] +// Destination transfer size +// Source and destination sizes must match +// so the same bits as the src_size are used +`define PL230_CHANNEL_CFG_DST_SIZE channel_cfg[15:14] +`define PL230_HRDATA_DST_SIZE hrdata[29:28] +// Source address increment +`define PL230_CHANNEL_CFG_SRC_INC channel_cfg[17:16] +`define PL230_HRDATA_SRC_INC hrdata[27:26] +// Source transfer size +`define PL230_CHANNEL_CFG_SRC_SIZE channel_cfg[15:14] +`define PL230_HRDATA_SRC_SIZE hrdata[25:24] +// Destination AHB protection control +`define PL230_CHANNEL_CFG_DST_PROT_CTRL channel_cfg[13:11] +`define PL230_HRDATA_DST_PROT_CTRL hrdata[23:21] +// Source AHB protection control +`define PL230_CHANNEL_CFG_SRC_PROT_CTRL channel_cfg[10:8] +`define PL230_HRDATA_SRC_PROT_CTRL hrdata[20:18] +// Power of two transactions per request +`define PL230_CHANNEL_CFG_R channel_cfg[7:4] +`define PL230_HRDATA_R hrdata[17:14] +// Number of bits in the N counter - hrdata[13:4] +`define PL230_N_COUNT_BITS 10 +// Lsb bit offset for n_minus_1 +`define PL230_N_COUNT_OFFSET 4 +// Set chnl_useburst_status +`define PL230_CHANNEL_CFG_NEXT_USEBURST channel_cfg[3] +`define PL230_HRDATA_NEXT_USEBURST hrdata[3] +// DMA cycle control +`define PL230_CHANNEL_CFG_CYCLE_CTRL channel_cfg[2:0] +`define PL230_HRDATA_CYCLE_CTRL hrdata[2:0] + + +// Number of bits for the statemachine +`define PL230_STATE_BITS 4 +// Statemachine state encoding +`define PL230_ST_IDLE 4'h0 +`define PL230_ST_RD_CTRL 4'h1 +`define PL230_ST_RD_SPTR 4'h2 +`define PL230_ST_RD_DPTR 4'h3 +`define PL230_ST_RD_SDAT 4'h4 +`define PL230_ST_WR_DDAT 4'h5 +`define PL230_ST_WAIT 4'h6 +`define PL230_ST_WR_CTRL 4'h7 +`define PL230_ST_STALL 4'h8 +`define PL230_ST_DONE 4'h9 +`define PL230_ST_PSGP 4'hA +`define PL230_ST_RESVD_0 4'hB +`define PL230_ST_RESVD_1 4'hC +`define PL230_ST_RESVD_2 4'hD +`define PL230_ST_RESVD_3 4'hE +`define PL230_ST_RESVD_4 4'hF + +`define PL230_SIZE_BYTE 2'b00 +`define PL230_SIZE_HWORD 2'b01 +`define PL230_SIZE_WORD 2'b10 +`define PL230_SIZE_RESVD 2'b11 + +// pl230_defs.v end diff --git a/system/defines/pl230/pl230_undefs.v b/system/defines/pl230/pl230_undefs.v new file mode 100644 index 0000000000000000000000000000000000000000..07223868feff9eff4930d29734b2b2e6292f6e38 --- /dev/null +++ b/system/defines/pl230/pl230_undefs.v @@ -0,0 +1,178 @@ +//----------------------------------------------------------------------------- +// The confidential and proprietary information contained in this file may +// only be used by a person authorised under and to the extent permitted +// by a subsisting licensing agreement from ARM Limited. +// +// (C) COPYRIGHT 2006-2007 ARM Limited. +// ALL RIGHTS RESERVED +// +// This entire notice must be reproduced on all copies of this file +// and copies of this file may only be made by a person if such person is +// permitted to do so under the terms of a subsisting license agreement +// from ARM Limited. +// +// File Name : pl230_undefs.v +// Checked In : $Date: 2007-03-15 15:17:04 +0530 (Thu, 15 Mar 2007) $ +// Revision : $Revision: 10866 $ +// State : $state: PL230-DE-98007-r0p0-02rel0 $ +// +//----------------------------------------------------------------------------- +// Purpose : Undefine peripheral specific macro definitions +// +//----------------------------------------------------------------------------- + + + + + + +// Set the number of channels implemented +`undef PL230_CHNLS +`undef PL230_CHNL_BITS +`undef PL230_ONE_CHNL + +// Include Integration Test Logic +`undef PL230_INCLUDE_TEST + + +// AHB Interface +`undef PL230_AHB_TRANS_IDLE +`undef PL230_AHB_TRANS_NONSEQ +`undef PL230_AHB_READ +`undef PL230_AHB_WRITE +`undef PL230_AHB_SIZE_BYTE +`undef PL230_AHB_SIZE_HWORD +`undef PL230_AHB_SIZE_WORD + +// PrimeCell Configuration +`undef PL230_PERIPH_ID_0 +`undef PL230_PERIPH_ID_1 +`undef PL230_PERIPH_ID_2 +`undef PL230_PERIPH_ID_3 +`undef PL230_PERIPH_ID_4 +`undef PL230_PCELL_ID_0 +`undef PL230_PCELL_ID_1 +`undef PL230_PCELL_ID_2 +`undef PL230_PCELL_ID_3 + +// Memory Mapped Registers +// Controller Configuration Registers +`undef PL230_ADDR_DMA_STATUS +`undef PL230_ADDR_DMA_CFG +`undef PL230_ADDR_CTRL_BASE_PTR +`undef PL230_ADDR_ALT_CTRL_BASE_PTR +`undef PL230_ADDR_DMA_WAITONREQ_STATUS +`undef PL230_ADDR_CHNL_SW_REQUEST +`undef PL230_ADDR_CHNL_USEBURST_SET +`undef PL230_ADDR_CHNL_USEBURST_CLR +`undef PL230_ADDR_CHNL_REQ_MASK_SET +`undef PL230_ADDR_CHNL_REQ_MASK_CLR +`undef PL230_ADDR_CHNL_ENABLE_SET +`undef PL230_ADDR_CHNL_ENABLE_CLR +`undef PL230_ADDR_CHNL_PRI_ALT_SET +`undef PL230_ADDR_CHNL_PRI_ALT_CLR +`undef PL230_ADDR_CHNL_PRIORITY_SET +`undef PL230_ADDR_CHNL_PRIORITY_CLR +// Reserved +// Reserved +// Reserved +`undef PL230_ADDR_ERR_CLR +// Integration Test Registers +`undef PL230_ADDR_INTEGRATION_CFG +// Reserved +`undef PL230_ADDR_STALL_STATUS +// Reserved +`undef PL230_ADDR_DMA_REQ_STATUS +// Reserved +`undef PL230_ADDR_DMA_SREQ_STATUS +// Reserved +`undef PL230_ADDR_DMA_DONE_SET +`undef PL230_ADDR_DMA_DONE_CLR +`undef PL230_ADDR_DMA_ACTIVE_SET +`undef PL230_ADDR_DMA_ACTIVE_CLR +// Reserved +// Reserved +// Reserved +// Reserved +// Reserved +// Reserved +`undef PL230_ADDR_ERR_SET +// Reserved +// PrimeCell Configuration Registers +`undef PL230_ADDR_PERIPH_ID_4 +// Reserved +// Reserved +// Reserved +`undef PL230_ADDR_PERIPH_ID_0 +`undef PL230_ADDR_PERIPH_ID_1 +`undef PL230_ADDR_PERIPH_ID_2 +`undef PL230_ADDR_PERIPH_ID_3 +`undef PL230_ADDR_PCELL_ID_0 +`undef PL230_ADDR_PCELL_ID_1 +`undef PL230_ADDR_PCELL_ID_2 +`undef PL230_ADDR_PCELL_ID_3 + + +// Bit vector definitions for channel_cfg +`undef PL230_CHANNEL_CFG_BITS +// Destination address increment +`undef PL230_CHANNEL_CFG_DST_INC +`undef PL230_HRDATA_DST_INC +// Destination transfer size +// Source and destination sizes must match +// so the same bits as the src_size are used +`undef PL230_CHANNEL_CFG_DST_SIZE +`undef PL230_HRDATA_DST_SIZE +// Source address increment +`undef PL230_CHANNEL_CFG_SRC_INC +`undef PL230_HRDATA_SRC_INC +// Source transfer size +`undef PL230_CHANNEL_CFG_SRC_SIZE +`undef PL230_HRDATA_SRC_SIZE +// Destination AHB protection control +`undef PL230_CHANNEL_CFG_DST_PROT_CTRL +`undef PL230_HRDATA_DST_PROT_CTRL +// Source AHB protection control +`undef PL230_CHANNEL_CFG_SRC_PROT_CTRL +`undef PL230_HRDATA_SRC_PROT_CTRL +// Power of two transactions per request +`undef PL230_CHANNEL_CFG_R +`undef PL230_HRDATA_R +// Number of bits in the N counter - hrdata[13:4] +`undef PL230_N_COUNT_BITS +// Lsb bit offset for n_minus_1 +`undef PL230_N_COUNT_OFFSET +// Set chnl_useburst_status +`undef PL230_CHANNEL_CFG_NEXT_USEBURST +`undef PL230_HRDATA_NEXT_USEBURST +// DMA cycle control +`undef PL230_CHANNEL_CFG_CYCLE_CTRL +`undef PL230_HRDATA_CYCLE_CTRL + + +// Number of bits for the statemachine +`undef PL230_STATE_BITS +// Statemachine state encoding +`undef PL230_ST_IDLE +`undef PL230_ST_RD_CTRL +`undef PL230_ST_RD_SPTR +`undef PL230_ST_RD_DPTR +`undef PL230_ST_RD_SDAT +`undef PL230_ST_WR_DDAT +`undef PL230_ST_WAIT +`undef PL230_ST_WR_CTRL +`undef PL230_ST_STALL +`undef PL230_ST_DONE +`undef PL230_ST_PSGP +`undef PL230_ST_RESVD_0 +`undef PL230_ST_RESVD_1 +`undef PL230_ST_RESVD_2 +`undef PL230_ST_RESVD_3 +`undef PL230_ST_RESVD_4 + +`undef PL230_SIZE_BYTE +`undef PL230_SIZE_HWORD +`undef PL230_SIZE_WORD +`undef PL230_SIZE_RESVD + +// pl230_undefs.v end diff --git a/system/src/nanosoc_exp.v b/system/src/nanosoc_exp.v index 229f7565fe9dd5468a5fc8e3ffd584fe0a033095..9558e5e5c8b1d6307630ec588e5bb36ed437f71c 100644 --- a/system/src/nanosoc_exp.v +++ b/system/src/nanosoc_exp.v @@ -12,7 +12,7 @@ `include "cmsdk_ahb_slave_mux.v" module nanosoc_exp #( - parameter ADDRWIDTH=29, // Region Address Width + parameter ADDRWIDTH=29, // Region Address Width parameter ACCEL_ADDRWIDTH=12 // Region Address Width )( input wire HCLK, // Clock @@ -23,13 +23,17 @@ module nanosoc_exp #( input wire [ADDRWIDTH-1:0] HADDRS, input wire [1:0] HTRANSS, input wire [2:0] HSIZES, + input wire [3:0] HPROTS, input wire HWRITES, input wire HREADYS, input wire [31:0] HWDATAS, output wire HREADYOUTS, output wire HRESPS, - output wire [31:0] HRDATAS + output wire [31:0] HRDATAS, + + output wire ip_data_req, + output wire op_data_req ); //******************************************************************************** @@ -127,23 +131,26 @@ cmsdk_ahb_slave_mux #( //******************************************************************************** // Slave module 1: Accelerator AHB target module //******************************************************************************** - wrapper_sha256_hashing_stream #(ACCEL_ADDRWIDTH - ) accelerator ( - .HCLK (HCLK), - .HRESETn (HRESETn), + wrapper_sha256_secworks_sha256 #(ACCEL_ADDRWIDTH + ) u_accelerator ( + .HCLK (HCLK), + .HRESETn (HRESETn), // Input target port: 32 bit data bus interface - .HSELS (HSEL0), - .HADDRS (HADDRS[ACCEL_ADDRWIDTH-1:0]), - .HTRANSS (HTRANSS), - .HSIZES (HSIZES), - .HWRITES (HWRITES), - .HREADYS (HREADYS), - .HWDATAS (HWDATAS), - - .HREADYOUTS (HREADYOUT0), - .HRESPS (HRESP0), - .HRDATAS (HRDATA0) + .HSELS (HSEL0), + .HADDRS (HADDRS[ACCEL_ADDRWIDTH-1:0]), + .HTRANSS (HTRANSS), + .HSIZES (HSIZES), + .HPROTS (HPROTS), + .HWRITES (HWRITES), + .HREADYS (HREADYS), + .HWDATAS (HWDATAS), + + .HREADYOUTS (HREADYOUT0), + .HRESPS (HRESP0), + .HRDATAS (HRDATA0), + .in_data_req (ip_data_req), + .out_data_req (op_data_req) ); diff --git a/wrapper/src/wrapper_secworks_sha256.sv b/wrapper/src/wrapper_secworks_sha256.sv index 70d5c7f9b7ded8530f80f52a7930c1c190312e14..269fad9ac870228dd59279aed69e077acafc4fb0 100644 --- a/wrapper/src/wrapper_secworks_sha256.sv +++ b/wrapper/src/wrapper_secworks_sha256.sv @@ -24,6 +24,7 @@ module wrapper_secworks_sha256 #( input logic [AHBADDRWIDTH-1:0] HADDRS, input logic [1:0] HTRANSS, input logic [2:0] HSIZES, + input logic [3:0] HPROTS, input logic HWRITES, input logic HREADYS, input logic [31:0] HWDATAS, @@ -33,10 +34,10 @@ module wrapper_secworks_sha256 #( output logic [31:0] HRDATAS, // Input Data Request Signal to DMAC - output logic in_data_req, + output logic in_data_req, // Output Data Request Signal to DMAC - output logic out_data_req + output logic out_data_req );