diff --git a/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix.xml b/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix.xml index 5cb3abc76865723fb378458365bb5eb19069116c..fb2712d2cabcc05959b092c88c1f91bab9809612 100644 --- a/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix.xml +++ b/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix.xml @@ -192,12 +192,12 @@ </spirit:busInterface> <spirit:busInterface> - <spirit:name>AHBLiteTarget_Slave__DMA_0</spirit:name> - <spirit:description>Slave port _DMA_0</spirit:description> + <spirit:name>AHBLiteTarget_Slave__DMAC_0</spirit:name> + <spirit:description>Slave port _DMAC_0</spirit:description> <spirit:busType spirit:library="AMBA3" spirit:name="AHBLiteTarget" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:abstractionType spirit:library="AMBA3" spirit:name="AHBLiteTarget_rtl" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:slave> - <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteTarget_Slave__DMA_0_MM"/> + <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteTarget_Slave__DMAC_0_MM"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__BOOTROM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__DMEM" spirit:opaque="true"/> @@ -233,7 +233,7 @@ <spirit:name>HSELx</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HSEL_DMA_0</spirit:name> + <spirit:name>HSEL_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -241,7 +241,7 @@ <spirit:name>HADDR</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HADDR_DMA_0</spirit:name> + <spirit:name>HADDR_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -249,7 +249,7 @@ <spirit:name>HTRANS</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HTRANS_DMA_0</spirit:name> + <spirit:name>HTRANS_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -257,7 +257,7 @@ <spirit:name>HWRITE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWRITE_DMA_0</spirit:name> + <spirit:name>HWRITE_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -265,7 +265,7 @@ <spirit:name>HSIZE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HSIZE_DMA_0</spirit:name> + <spirit:name>HSIZE_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -273,7 +273,7 @@ <spirit:name>HBURST</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HBURST_DMA_0</spirit:name> + <spirit:name>HBURST_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -281,18 +281,18 @@ <spirit:name>HPROT</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HPROT_DMA_0</spirit:name> + <spirit:name>HPROT_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> - <!-- HMASTER_DMA_0 unmapped --> + <!-- HMASTER_DMAC_0 unmapped --> <spirit:portMap> <spirit:logicalPort> <spirit:name>HWDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWDATA_DMA_0</spirit:name> + <spirit:name>HWDATA_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -300,7 +300,7 @@ <spirit:name>HMASTLOCK</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HMASTLOCK_DMA_0</spirit:name> + <spirit:name>HMASTLOCK_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -308,7 +308,7 @@ <spirit:name>HREADY</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HREADY_DMA_0</spirit:name> + <spirit:name>HREADY_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> @@ -318,7 +318,7 @@ <spirit:name>HRDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRDATA_DMA_0</spirit:name> + <spirit:name>HRDATA_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -326,7 +326,7 @@ <spirit:name>HREADYOUT</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HREADYOUT_DMA_0</spirit:name> + <spirit:name>HREADYOUT_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -334,7 +334,7 @@ <spirit:name>HRESP</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRESP_DMA_0</spirit:name> + <spirit:name>HRESP_DMAC_0</spirit:name> <spirit:vector> <spirit:left>0</spirit:left> <spirit:right>0</spirit:right> @@ -345,12 +345,12 @@ </spirit:busInterface> <spirit:busInterface> - <spirit:name>AHBLiteTarget_Slave__DMA_1</spirit:name> - <spirit:description>Slave port _DMA_1</spirit:description> + <spirit:name>AHBLiteTarget_Slave__DMAC_1</spirit:name> + <spirit:description>Slave port _DMAC_1</spirit:description> <spirit:busType spirit:library="AMBA3" spirit:name="AHBLiteTarget" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:abstractionType spirit:library="AMBA3" spirit:name="AHBLiteTarget_rtl" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:slave> - <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteTarget_Slave__DMA_1_MM"/> + <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteTarget_Slave__DMAC_1_MM"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__BOOTROM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__DMEM" spirit:opaque="true"/> @@ -386,7 +386,7 @@ <spirit:name>HSELx</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HSEL_DMA_1</spirit:name> + <spirit:name>HSEL_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -394,7 +394,7 @@ <spirit:name>HADDR</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HADDR_DMA_1</spirit:name> + <spirit:name>HADDR_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -402,7 +402,7 @@ <spirit:name>HTRANS</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HTRANS_DMA_1</spirit:name> + <spirit:name>HTRANS_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -410,7 +410,7 @@ <spirit:name>HWRITE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWRITE_DMA_1</spirit:name> + <spirit:name>HWRITE_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -418,7 +418,7 @@ <spirit:name>HSIZE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HSIZE_DMA_1</spirit:name> + <spirit:name>HSIZE_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -426,7 +426,7 @@ <spirit:name>HBURST</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HBURST_DMA_1</spirit:name> + <spirit:name>HBURST_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -434,18 +434,18 @@ <spirit:name>HPROT</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HPROT_DMA_1</spirit:name> + <spirit:name>HPROT_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> - <!-- HMASTER_DMA_1 unmapped --> + <!-- HMASTER_DMAC_1 unmapped --> <spirit:portMap> <spirit:logicalPort> <spirit:name>HWDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWDATA_DMA_1</spirit:name> + <spirit:name>HWDATA_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -453,7 +453,7 @@ <spirit:name>HMASTLOCK</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HMASTLOCK_DMA_1</spirit:name> + <spirit:name>HMASTLOCK_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -461,7 +461,7 @@ <spirit:name>HREADY</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HREADY_DMA_1</spirit:name> + <spirit:name>HREADY_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> @@ -471,7 +471,7 @@ <spirit:name>HRDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRDATA_DMA_1</spirit:name> + <spirit:name>HRDATA_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -479,7 +479,7 @@ <spirit:name>HREADYOUT</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HREADYOUT_DMA_1</spirit:name> + <spirit:name>HREADYOUT_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -487,7 +487,7 @@ <spirit:name>HRESP</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRESP_DMA_1</spirit:name> + <spirit:name>HRESP_DMAC_1</spirit:name> <spirit:vector> <spirit:left>0</spirit:left> <spirit:right>0</spirit:right> @@ -2433,8 +2433,8 @@ </spirit:memoryMap> <spirit:memoryMap> - <spirit:name>AHBLiteTarget_Slave__DMA_0_MM</spirit:name> - <spirit:description>_DMA_0 memory map</spirit:description> + <spirit:name>AHBLiteTarget_Slave__DMAC_0_MM</spirit:name> + <spirit:description>_DMAC_0 memory map</spirit:description> <spirit:subspaceMap spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:segmentRef="_IMEM_0x00000000_0x0fffffff"> @@ -2509,8 +2509,8 @@ </spirit:memoryMap> <spirit:memoryMap> - <spirit:name>AHBLiteTarget_Slave__DMA_1_MM</spirit:name> - <spirit:description>_DMA_1 memory map</spirit:description> + <spirit:name>AHBLiteTarget_Slave__DMAC_1_MM</spirit:name> + <spirit:description>_DMAC_1 memory map</spirit:description> <spirit:subspaceMap spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:segmentRef="_IMEM_0x00000000_0x0fffffff"> @@ -2836,13 +2836,13 @@ </spirit:port> <spirit:port> - <spirit:name>HSEL_DMA_0</spirit:name> + <spirit:name>HSEL_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HADDR_DMA_0</spirit:name> + <spirit:name>HADDR_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2852,7 +2852,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HTRANS_DMA_0</spirit:name> + <spirit:name>HTRANS_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2862,13 +2862,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWRITE_DMA_0</spirit:name> + <spirit:name>HWRITE_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HSIZE_DMA_0</spirit:name> + <spirit:name>HSIZE_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2878,7 +2878,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HBURST_DMA_0</spirit:name> + <spirit:name>HBURST_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2891,7 +2891,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HPROT_DMA_0</spirit:name> + <spirit:name>HPROT_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2901,7 +2901,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HMASTER_DMA_0</spirit:name> + <spirit:name>HMASTER_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2914,7 +2914,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWDATA_DMA_0</spirit:name> + <spirit:name>HWDATA_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2924,26 +2924,26 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HMASTLOCK_DMA_0</spirit:name> + <spirit:name>HMASTLOCK_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HREADY_DMA_0</spirit:name> + <spirit:name>HREADY_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HSEL_DMA_1</spirit:name> + <spirit:name>HSEL_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HADDR_DMA_1</spirit:name> + <spirit:name>HADDR_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2953,7 +2953,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HTRANS_DMA_1</spirit:name> + <spirit:name>HTRANS_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2963,13 +2963,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWRITE_DMA_1</spirit:name> + <spirit:name>HWRITE_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HSIZE_DMA_1</spirit:name> + <spirit:name>HSIZE_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2979,7 +2979,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HBURST_DMA_1</spirit:name> + <spirit:name>HBURST_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2992,7 +2992,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HPROT_DMA_1</spirit:name> + <spirit:name>HPROT_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -3002,7 +3002,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HMASTER_DMA_1</spirit:name> + <spirit:name>HMASTER_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -3015,7 +3015,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWDATA_DMA_1</spirit:name> + <spirit:name>HWDATA_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -3025,13 +3025,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HMASTLOCK_DMA_1</spirit:name> + <spirit:name>HMASTLOCK_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HREADY_DMA_1</spirit:name> + <spirit:name>HREADY_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> @@ -4389,7 +4389,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRDATA_DMA_0</spirit:name> + <spirit:name>HRDATA_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> <spirit:vector> @@ -4399,13 +4399,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HREADYOUT_DMA_0</spirit:name> + <spirit:name>HREADYOUT_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRESP_DMA_0</spirit:name> + <spirit:name>HRESP_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> <spirit:vector> @@ -4415,7 +4415,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRDATA_DMA_1</spirit:name> + <spirit:name>HRDATA_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> <spirit:vector> @@ -4425,13 +4425,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HREADYOUT_DMA_1</spirit:name> + <spirit:name>HREADYOUT_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRESP_DMA_1</spirit:name> + <spirit:name>HRESP_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> <spirit:vector> @@ -4501,11 +4501,11 @@ <spirit:fileType>verilogSource-2001</spirit:fileType> </spirit:file> <spirit:file> - <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_0.v</spirit:name> + <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_0.v</spirit:name> <spirit:fileType>verilogSource-2001</spirit:fileType> </spirit:file> <spirit:file> - <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_1.v</spirit:name> + <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_1.v</spirit:name> <spirit:fileType>verilogSource-2001</spirit:fileType> </spirit:file> <spirit:file> diff --git a/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix_lite.xml b/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix_lite.xml index 3f0251e5af9a5a54ff8c94572ebee15f145b4bc0..e2f7c6b2210615c3ec5eb2d2d4e853cb95735e58 100644 --- a/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix_lite.xml +++ b/system/nanosoc_busmatrix/ipxact/nanosoc_busmatrix/nanosoc_busmatrix_lite.xml @@ -169,12 +169,12 @@ </spirit:busInterface> <spirit:busInterface> - <spirit:name>AHBLiteInitiator_Slave__DMA_0</spirit:name> - <spirit:description>Slave port _DMA_0</spirit:description> + <spirit:name>AHBLiteInitiator_Slave__DMAC_0</spirit:name> + <spirit:description>Slave port _DMAC_0</spirit:description> <spirit:busType spirit:library="AMBA3" spirit:name="AHBLiteInitiator" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:abstractionType spirit:library="AMBA3" spirit:name="AHBLiteInitiator_rtl" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:slave> - <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteInitiator_Slave__DMA_0_MM"/> + <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteInitiator_Slave__DMAC_0_MM"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__BOOTROM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__DMEM" spirit:opaque="true"/> @@ -210,7 +210,7 @@ <spirit:name>HADDR</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HADDR_DMA_0</spirit:name> + <spirit:name>HADDR_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -218,7 +218,7 @@ <spirit:name>HTRANS</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HTRANS_DMA_0</spirit:name> + <spirit:name>HTRANS_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -226,7 +226,7 @@ <spirit:name>HWRITE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWRITE_DMA_0</spirit:name> + <spirit:name>HWRITE_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -234,7 +234,7 @@ <spirit:name>HSIZE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HSIZE_DMA_0</spirit:name> + <spirit:name>HSIZE_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -242,7 +242,7 @@ <spirit:name>HBURST</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HBURST_DMA_0</spirit:name> + <spirit:name>HBURST_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -250,7 +250,7 @@ <spirit:name>HPROT</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HPROT_DMA_0</spirit:name> + <spirit:name>HPROT_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -258,7 +258,7 @@ <spirit:name>HWDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWDATA_DMA_0</spirit:name> + <spirit:name>HWDATA_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -266,7 +266,7 @@ <spirit:name>HMASTLOCK</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HMASTLOCK_DMA_0</spirit:name> + <spirit:name>HMASTLOCK_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> @@ -276,7 +276,7 @@ <spirit:name>HRDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRDATA_DMA_0</spirit:name> + <spirit:name>HRDATA_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -284,7 +284,7 @@ <spirit:name>HREADY</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HREADY_DMA_0</spirit:name> + <spirit:name>HREADY_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -292,19 +292,19 @@ <spirit:name>HRESP</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRESP_DMA_0</spirit:name> + <spirit:name>HRESP_DMAC_0</spirit:name> </spirit:physicalPort> </spirit:portMap> </spirit:portMaps> </spirit:busInterface> <spirit:busInterface> - <spirit:name>AHBLiteInitiator_Slave__DMA_1</spirit:name> - <spirit:description>Slave port _DMA_1</spirit:description> + <spirit:name>AHBLiteInitiator_Slave__DMAC_1</spirit:name> + <spirit:description>Slave port _DMAC_1</spirit:description> <spirit:busType spirit:library="AMBA3" spirit:name="AHBLiteInitiator" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:abstractionType spirit:library="AMBA3" spirit:name="AHBLiteInitiator_rtl" spirit:vendor="amba.com" spirit:version="r2p0_0"/> <spirit:slave> - <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteInitiator_Slave__DMA_1_MM"/> + <spirit:memoryMapRef spirit:memoryMapRef="AHBLiteInitiator_Slave__DMAC_1_MM"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__BOOTROM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:opaque="true"/> <spirit:bridge spirit:masterRef="AHBLiteTarget_Master__DMEM" spirit:opaque="true"/> @@ -340,7 +340,7 @@ <spirit:name>HADDR</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HADDR_DMA_1</spirit:name> + <spirit:name>HADDR_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -348,7 +348,7 @@ <spirit:name>HTRANS</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HTRANS_DMA_1</spirit:name> + <spirit:name>HTRANS_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -356,7 +356,7 @@ <spirit:name>HWRITE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWRITE_DMA_1</spirit:name> + <spirit:name>HWRITE_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -364,7 +364,7 @@ <spirit:name>HSIZE</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HSIZE_DMA_1</spirit:name> + <spirit:name>HSIZE_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -372,7 +372,7 @@ <spirit:name>HBURST</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HBURST_DMA_1</spirit:name> + <spirit:name>HBURST_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -380,7 +380,7 @@ <spirit:name>HPROT</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HPROT_DMA_1</spirit:name> + <spirit:name>HPROT_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -388,7 +388,7 @@ <spirit:name>HWDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HWDATA_DMA_1</spirit:name> + <spirit:name>HWDATA_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -396,7 +396,7 @@ <spirit:name>HMASTLOCK</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HMASTLOCK_DMA_1</spirit:name> + <spirit:name>HMASTLOCK_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> @@ -406,7 +406,7 @@ <spirit:name>HRDATA</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRDATA_DMA_1</spirit:name> + <spirit:name>HRDATA_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -414,7 +414,7 @@ <spirit:name>HREADY</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HREADY_DMA_1</spirit:name> + <spirit:name>HREADY_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> <spirit:portMap> @@ -422,7 +422,7 @@ <spirit:name>HRESP</spirit:name> </spirit:logicalPort> <spirit:physicalPort> - <spirit:name>HRESP_DMA_1</spirit:name> + <spirit:name>HRESP_DMAC_1</spirit:name> </spirit:physicalPort> </spirit:portMap> </spirit:portMaps> @@ -2271,8 +2271,8 @@ </spirit:memoryMap> <spirit:memoryMap> - <spirit:name>AHBLiteInitiator_Slave__DMA_0_MM</spirit:name> - <spirit:description>_DMA_0 memory map</spirit:description> + <spirit:name>AHBLiteInitiator_Slave__DMAC_0_MM</spirit:name> + <spirit:description>_DMAC_0 memory map</spirit:description> <spirit:subspaceMap spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:segmentRef="_IMEM_0x00000000_0x0fffffff"> @@ -2347,8 +2347,8 @@ </spirit:memoryMap> <spirit:memoryMap> - <spirit:name>AHBLiteInitiator_Slave__DMA_1_MM</spirit:name> - <spirit:description>_DMA_1 memory map</spirit:description> + <spirit:name>AHBLiteInitiator_Slave__DMAC_1_MM</spirit:name> + <spirit:description>_DMAC_1 memory map</spirit:description> <spirit:subspaceMap spirit:masterRef="AHBLiteTarget_Master__IMEM" spirit:segmentRef="_IMEM_0x00000000_0x0fffffff"> @@ -2648,7 +2648,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HADDR_DMA_0</spirit:name> + <spirit:name>HADDR_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2658,7 +2658,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HTRANS_DMA_0</spirit:name> + <spirit:name>HTRANS_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2668,13 +2668,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWRITE_DMA_0</spirit:name> + <spirit:name>HWRITE_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HSIZE_DMA_0</spirit:name> + <spirit:name>HSIZE_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2684,7 +2684,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HBURST_DMA_0</spirit:name> + <spirit:name>HBURST_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2697,7 +2697,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HPROT_DMA_0</spirit:name> + <spirit:name>HPROT_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2707,7 +2707,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWDATA_DMA_0</spirit:name> + <spirit:name>HWDATA_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2717,13 +2717,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HMASTLOCK_DMA_0</spirit:name> + <spirit:name>HMASTLOCK_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HADDR_DMA_1</spirit:name> + <spirit:name>HADDR_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2733,7 +2733,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HTRANS_DMA_1</spirit:name> + <spirit:name>HTRANS_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2743,13 +2743,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWRITE_DMA_1</spirit:name> + <spirit:name>HWRITE_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HSIZE_DMA_1</spirit:name> + <spirit:name>HSIZE_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2759,7 +2759,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HBURST_DMA_1</spirit:name> + <spirit:name>HBURST_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2772,7 +2772,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HPROT_DMA_1</spirit:name> + <spirit:name>HPROT_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2782,7 +2782,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HWDATA_DMA_1</spirit:name> + <spirit:name>HWDATA_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> <spirit:vector> @@ -2792,7 +2792,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HMASTLOCK_DMA_1</spirit:name> + <spirit:name>HMASTLOCK_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>in</spirit:direction> </spirit:wire> @@ -3979,7 +3979,7 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRDATA_DMA_0</spirit:name> + <spirit:name>HRDATA_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> <spirit:vector> @@ -3989,19 +3989,19 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HREADY_DMA_0</spirit:name> + <spirit:name>HREADY_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRESP_DMA_0</spirit:name> + <spirit:name>HRESP_DMAC_0</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRDATA_DMA_1</spirit:name> + <spirit:name>HRDATA_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> <spirit:vector> @@ -4011,13 +4011,13 @@ </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HREADY_DMA_1</spirit:name> + <spirit:name>HREADY_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> </spirit:wire> </spirit:port> <spirit:port> - <spirit:name>HRESP_DMA_1</spirit:name> + <spirit:name>HRESP_DMAC_1</spirit:name> <spirit:wire> <spirit:direction>out</spirit:direction> </spirit:wire> @@ -4083,11 +4083,11 @@ <spirit:fileType>verilogSource-2001</spirit:fileType> </spirit:file> <spirit:file> - <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_0.v</spirit:name> + <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_0.v</spirit:name> <spirit:fileType>verilogSource-2001</spirit:fileType> </spirit:file> <spirit:file> - <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_1.v</spirit:name> + <spirit:name>../../verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_1.v</spirit:name> <spirit:fileType>verilogSource-2001</spirit:fileType> </spirit:file> <spirit:file> diff --git a/system/nanosoc_busmatrix/logs/nanosoc.log b/system/nanosoc_busmatrix/logs/nanosoc.log index dd5b2f7836d30cb7fd29059cb2ada60bab8d8e86..68f64e8cce3a5c2d8a55fc58e239ee5e542a3a66 100644 --- a/system/nanosoc_busmatrix/logs/nanosoc.log +++ b/system/nanosoc_busmatrix/logs/nanosoc.log @@ -14,7 +14,7 @@ = = BuildBusMatrix.pl = -= Run Date : 04/06/2023 08:53:53 += Run Date : 04/06/2023 13:16:41 ============================================================== Script accepted the following parameters: @@ -27,8 +27,8 @@ Script accepted the following parameters: - Arbitration scheme : 'burst' - Address map : user defined - Connectivity mapping : _SOCDEBUG -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, _SYSTABLE, - _DMA_0 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, - _DMA_1 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, + _DMAC_0 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, + _DMAC_1 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, _CPU_0 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, _SYSTABLE - Connectivity type : sparse - Routing data width : 32 @@ -55,7 +55,7 @@ Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busm Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_default_slave.v' file... Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_lite.v' file... Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_inititator_input.v' file... -Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_CPU.v' file... +Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_CPU_0.v' file... Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_0.v' file... Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_1.v' file... Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_SOCDEBUG.v' file... @@ -75,36 +75,36 @@ Deleting the '/home/dam1n19/accelerator-project/nanosoc_tech/system/nanosoc_busm Creating the bus matrix variant... - - Rendering 'nanosoc_busmatrix_lite.v' - - Rendering 'nanosoc_busmatrix.v' - - Rendering 'nanosoc_busmatrix.xml' - - Rendering 'nanosoc_matrix_decode_DMA_0.v' - - Rendering 'nanosoc_target_output_EXPRAM_H.v' - - Rendering 'nanosoc_arbiter_SYSTABLE.v' + - Rendering 'nanosoc_busmatrix_lite.xml' + - Rendering 'nanosoc_busmatrix_default_slave.v' + - Rendering 'nanosoc_arbiter_IMEM.v' + - Rendering 'nanosoc_matrix_decode_DMAC_0.v' + - Rendering 'nanosoc_target_output_BOOTROM.v' - Rendering 'nanosoc_arbiter_BOOTROM.v' - - Rendering 'nanosoc_arbiter_EXP_1.v' - - Rendering 'nanosoc_target_output_EXP_1.v' - - Rendering 'nanosoc_target_output_IMEM.v' - - Rendering 'nanosoc_inititator_input.v' + - Rendering 'nanosoc_target_output_SYSTABLE.v' - Rendering 'nanosoc_target_output_EXP_2.v' - - Rendering 'nanosoc_arbiter_EXPRAM_L.v' - - Rendering 'nanosoc_target_output_SYSIO.v' + - Rendering 'nanosoc_inititator_input.v' + - Rendering 'nanosoc_matrix_decode_DMAC_1.v' + - Rendering 'nanosoc_target_output_IMEM.v' + - Rendering 'nanosoc_target_output_EXPRAM_L.v' + - Rendering 'nanosoc_arbiter_SYSTABLE.v' + - Rendering 'nanosoc_target_output_EXP_1.v' + - Rendering 'nanosoc_target_output_DMEM.v' + - Rendering 'nanosoc_target_output_EXP_0.v' - Rendering 'nanosoc_matrix_decode_CPU_0.v' - - Rendering 'nanosoc_target_output_BOOTROM.v' - - Rendering 'nanosoc_arbiter_DMEM.v' - - Rendering 'nanosoc_arbiter_IMEM.v' - - Rendering 'nanosoc_busmatrix_default_slave.v' - - Rendering 'nanosoc_target_output_SYSTABLE.v' + - Rendering 'nanosoc_matrix_decode_SOCDEBUG.v' - Rendering 'nanosoc_arbiter_SYSIO.v' - - Rendering 'nanosoc_busmatrix_lite.xml' - - Rendering 'nanosoc_target_output_DMEM.v' - Rendering 'nanosoc_arbiter_EXP_2.v' - - Rendering 'nanosoc_target_output_EXP_0.v' - - Rendering 'nanosoc_arbiter_EXPRAM_H.v' - - Rendering 'nanosoc_target_output_EXPRAM_L.v' - Rendering 'nanosoc_arbiter_EXP_0.v' - - Rendering 'nanosoc_matrix_decode_DMA_1.v' - - Rendering 'nanosoc_matrix_decode_SOCDEBUG.v' + - Rendering 'nanosoc_arbiter_EXPRAM_L.v' + - Rendering 'nanosoc_busmatrix.xml' + - Rendering 'nanosoc_target_output_EXPRAM_H.v' + - Rendering 'nanosoc_arbiter_EXP_1.v' + - Rendering 'nanosoc_busmatrix_lite.v' + - Rendering 'nanosoc_busmatrix.v' + - Rendering 'nanosoc_arbiter_EXPRAM_H.v' + - Rendering 'nanosoc_arbiter_DMEM.v' + - Rendering 'nanosoc_target_output_SYSIO.v' Done! diff --git a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix.v b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix.v index 80980b19e22e9fbaa5c15febf32a3d09eafd54dd..baa99937bbaf742b3cc3a30787d8837be0753e51 100644 --- a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix.v +++ b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix.v @@ -36,8 +36,8 @@ // - Arbiter type 'burst', // - Connectivity mapping: // _SOCDEBUG -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, _SYSTABLE, -// _DMA_0 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, -// _DMA_1 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, +// _DMAC_0 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, +// _DMAC_1 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, // _CPU_0 -> _BOOTROM, _IMEM, _DMEM, _SYSIO, _EXP_0, _EXP_1, _EXP_2, _EXPRAM_L, _EXPRAM_H, _SYSTABLE, // - Connectivity type 'sparse'. // @@ -68,30 +68,30 @@ module nanosoc_busmatrix ( HREADY_SOCDEBUG, // Input port SI1 (inputs from master 1) - HSEL_DMA_0, - HADDR_DMA_0, - HTRANS_DMA_0, - HWRITE_DMA_0, - HSIZE_DMA_0, - HBURST_DMA_0, - HPROT_DMA_0, - HMASTER_DMA_0, - HWDATA_DMA_0, - HMASTLOCK_DMA_0, - HREADY_DMA_0, + HSEL_DMAC_0, + HADDR_DMAC_0, + HTRANS_DMAC_0, + HWRITE_DMAC_0, + HSIZE_DMAC_0, + HBURST_DMAC_0, + HPROT_DMAC_0, + HMASTER_DMAC_0, + HWDATA_DMAC_0, + HMASTLOCK_DMAC_0, + HREADY_DMAC_0, // Input port SI2 (inputs from master 2) - HSEL_DMA_1, - HADDR_DMA_1, - HTRANS_DMA_1, - HWRITE_DMA_1, - HSIZE_DMA_1, - HBURST_DMA_1, - HPROT_DMA_1, - HMASTER_DMA_1, - HWDATA_DMA_1, - HMASTLOCK_DMA_1, - HREADY_DMA_1, + HSEL_DMAC_1, + HADDR_DMAC_1, + HTRANS_DMAC_1, + HWRITE_DMAC_1, + HSIZE_DMAC_1, + HBURST_DMAC_1, + HPROT_DMAC_1, + HMASTER_DMAC_1, + HWDATA_DMAC_1, + HMASTLOCK_DMAC_1, + HREADY_DMAC_1, // Input port SI3 (inputs from master 3) HSEL_CPU_0, @@ -297,14 +297,14 @@ module nanosoc_busmatrix ( HRESP_SOCDEBUG, // Input port SI1 (outputs to master 1) - HRDATA_DMA_0, - HREADYOUT_DMA_0, - HRESP_DMA_0, + HRDATA_DMAC_0, + HREADYOUT_DMAC_0, + HRESP_DMAC_0, // Input port SI2 (outputs to master 2) - HRDATA_DMA_1, - HREADYOUT_DMA_1, - HRESP_DMA_1, + HRDATA_DMAC_1, + HREADYOUT_DMAC_1, + HRESP_DMAC_1, // Input port SI3 (outputs to master 3) HRDATA_CPU_0, @@ -342,30 +342,30 @@ module nanosoc_busmatrix ( input HREADY_SOCDEBUG; // Transfer done // Input port SI1 (inputs from master 1) - input HSEL_DMA_0; // Slave Select - input [31:0] HADDR_DMA_0; // Address bus - input [1:0] HTRANS_DMA_0; // Transfer type - input HWRITE_DMA_0; // Transfer direction - input [2:0] HSIZE_DMA_0; // Transfer size - input [2:0] HBURST_DMA_0; // Burst type - input [3:0] HPROT_DMA_0; // Protection control - input [3:0] HMASTER_DMA_0; // Master select - input [31:0] HWDATA_DMA_0; // Write data - input HMASTLOCK_DMA_0; // Locked Sequence - input HREADY_DMA_0; // Transfer done + input HSEL_DMAC_0; // Slave Select + input [31:0] HADDR_DMAC_0; // Address bus + input [1:0] HTRANS_DMAC_0; // Transfer type + input HWRITE_DMAC_0; // Transfer direction + input [2:0] HSIZE_DMAC_0; // Transfer size + input [2:0] HBURST_DMAC_0; // Burst type + input [3:0] HPROT_DMAC_0; // Protection control + input [3:0] HMASTER_DMAC_0; // Master select + input [31:0] HWDATA_DMAC_0; // Write data + input HMASTLOCK_DMAC_0; // Locked Sequence + input HREADY_DMAC_0; // Transfer done // Input port SI2 (inputs from master 2) - input HSEL_DMA_1; // Slave Select - input [31:0] HADDR_DMA_1; // Address bus - input [1:0] HTRANS_DMA_1; // Transfer type - input HWRITE_DMA_1; // Transfer direction - input [2:0] HSIZE_DMA_1; // Transfer size - input [2:0] HBURST_DMA_1; // Burst type - input [3:0] HPROT_DMA_1; // Protection control - input [3:0] HMASTER_DMA_1; // Master select - input [31:0] HWDATA_DMA_1; // Write data - input HMASTLOCK_DMA_1; // Locked Sequence - input HREADY_DMA_1; // Transfer done + input HSEL_DMAC_1; // Slave Select + input [31:0] HADDR_DMAC_1; // Address bus + input [1:0] HTRANS_DMAC_1; // Transfer type + input HWRITE_DMAC_1; // Transfer direction + input [2:0] HSIZE_DMAC_1; // Transfer size + input [2:0] HBURST_DMAC_1; // Burst type + input [3:0] HPROT_DMAC_1; // Protection control + input [3:0] HMASTER_DMAC_1; // Master select + input [31:0] HWDATA_DMAC_1; // Write data + input HMASTLOCK_DMAC_1; // Locked Sequence + input HREADY_DMAC_1; // Transfer done // Input port SI3 (inputs from master 3) input HSEL_CPU_0; // Slave Select @@ -571,14 +571,14 @@ module nanosoc_busmatrix ( output [1:0] HRESP_SOCDEBUG; // Transfer response // Input port SI1 (outputs to master 1) - output [31:0] HRDATA_DMA_0; // Read data bus - output HREADYOUT_DMA_0; // HREADY feedback - output [1:0] HRESP_DMA_0; // Transfer response + output [31:0] HRDATA_DMAC_0; // Read data bus + output HREADYOUT_DMAC_0; // HREADY feedback + output [1:0] HRESP_DMAC_0; // Transfer response // Input port SI2 (outputs to master 2) - output [31:0] HRDATA_DMA_1; // Read data bus - output HREADYOUT_DMA_1; // HREADY feedback - output [1:0] HRESP_DMA_1; // Transfer response + output [31:0] HRDATA_DMAC_1; // Read data bus + output HREADYOUT_DMAC_1; // HREADY feedback + output [1:0] HRESP_DMAC_1; // Transfer response // Input port SI3 (outputs to master 3) output [31:0] HRDATA_CPU_0; // Read data bus @@ -618,38 +618,38 @@ module nanosoc_busmatrix ( wire [1:0] HRESP_SOCDEBUG; // Transfer response // Input Port SI1 - wire HSEL_DMA_0; // Slave Select - wire [31:0] HADDR_DMA_0; // Address bus - wire [1:0] HTRANS_DMA_0; // Transfer type - wire HWRITE_DMA_0; // Transfer direction - wire [2:0] HSIZE_DMA_0; // Transfer size - wire [2:0] HBURST_DMA_0; // Burst type - wire [3:0] HPROT_DMA_0; // Protection control - wire [3:0] HMASTER_DMA_0; // Master select - wire [31:0] HWDATA_DMA_0; // Write data - wire HMASTLOCK_DMA_0; // Locked Sequence - wire HREADY_DMA_0; // Transfer done - - wire [31:0] HRDATA_DMA_0; // Read data bus - wire HREADYOUT_DMA_0; // HREADY feedback - wire [1:0] HRESP_DMA_0; // Transfer response + wire HSEL_DMAC_0; // Slave Select + wire [31:0] HADDR_DMAC_0; // Address bus + wire [1:0] HTRANS_DMAC_0; // Transfer type + wire HWRITE_DMAC_0; // Transfer direction + wire [2:0] HSIZE_DMAC_0; // Transfer size + wire [2:0] HBURST_DMAC_0; // Burst type + wire [3:0] HPROT_DMAC_0; // Protection control + wire [3:0] HMASTER_DMAC_0; // Master select + wire [31:0] HWDATA_DMAC_0; // Write data + wire HMASTLOCK_DMAC_0; // Locked Sequence + wire HREADY_DMAC_0; // Transfer done + + wire [31:0] HRDATA_DMAC_0; // Read data bus + wire HREADYOUT_DMAC_0; // HREADY feedback + wire [1:0] HRESP_DMAC_0; // Transfer response // Input Port SI2 - wire HSEL_DMA_1; // Slave Select - wire [31:0] HADDR_DMA_1; // Address bus - wire [1:0] HTRANS_DMA_1; // Transfer type - wire HWRITE_DMA_1; // Transfer direction - wire [2:0] HSIZE_DMA_1; // Transfer size - wire [2:0] HBURST_DMA_1; // Burst type - wire [3:0] HPROT_DMA_1; // Protection control - wire [3:0] HMASTER_DMA_1; // Master select - wire [31:0] HWDATA_DMA_1; // Write data - wire HMASTLOCK_DMA_1; // Locked Sequence - wire HREADY_DMA_1; // Transfer done - - wire [31:0] HRDATA_DMA_1; // Read data bus - wire HREADYOUT_DMA_1; // HREADY feedback - wire [1:0] HRESP_DMA_1; // Transfer response + wire HSEL_DMAC_1; // Slave Select + wire [31:0] HADDR_DMAC_1; // Address bus + wire [1:0] HTRANS_DMAC_1; // Transfer type + wire HWRITE_DMAC_1; // Transfer direction + wire [2:0] HSIZE_DMAC_1; // Transfer size + wire [2:0] HBURST_DMAC_1; // Burst type + wire [3:0] HPROT_DMAC_1; // Protection control + wire [3:0] HMASTER_DMAC_1; // Master select + wire [31:0] HWDATA_DMAC_1; // Write data + wire HMASTLOCK_DMAC_1; // Locked Sequence + wire HREADY_DMAC_1; // Transfer done + + wire [31:0] HRDATA_DMAC_1; // Read data bus + wire HREADYOUT_DMAC_1; // HREADY feedback + wire [1:0] HRESP_DMAC_1; // Transfer response // Input Port SI3 wire HSEL_CPU_0; // Slave Select @@ -1122,16 +1122,16 @@ module nanosoc_busmatrix ( .HRESETn (HRESETn), // Input Port Address/Control Signals - .HSELS (HSEL_DMA_0), - .HADDRS (HADDR_DMA_0), - .HTRANSS (HTRANS_DMA_0), - .HWRITES (HWRITE_DMA_0), - .HSIZES (HSIZE_DMA_0), - .HBURSTS (HBURST_DMA_0), - .HPROTS (HPROT_DMA_0), - .HMASTERS (HMASTER_DMA_0), - .HMASTLOCKS (HMASTLOCK_DMA_0), - .HREADYS (HREADY_DMA_0), + .HSELS (HSEL_DMAC_0), + .HADDRS (HADDR_DMAC_0), + .HTRANSS (HTRANS_DMAC_0), + .HWRITES (HWRITE_DMAC_0), + .HSIZES (HSIZE_DMAC_0), + .HBURSTS (HBURST_DMAC_0), + .HPROTS (HPROT_DMAC_0), + .HMASTERS (HMASTER_DMAC_0), + .HMASTLOCKS (HMASTLOCK_DMAC_0), + .HREADYS (HREADY_DMAC_0), // Internal Response .active_ip (i_active1), @@ -1139,8 +1139,8 @@ module nanosoc_busmatrix ( .resp_ip (i_resp1), // Input Port Response - .HREADYOUTS (HREADYOUT_DMA_0), - .HRESPS (HRESP_DMA_0), + .HREADYOUTS (HREADYOUT_DMAC_0), + .HRESPS (HRESP_DMAC_0), // Internal Address/Control Signals .sel_ip (i_sel1), @@ -1165,16 +1165,16 @@ module nanosoc_busmatrix ( .HRESETn (HRESETn), // Input Port Address/Control Signals - .HSELS (HSEL_DMA_1), - .HADDRS (HADDR_DMA_1), - .HTRANSS (HTRANS_DMA_1), - .HWRITES (HWRITE_DMA_1), - .HSIZES (HSIZE_DMA_1), - .HBURSTS (HBURST_DMA_1), - .HPROTS (HPROT_DMA_1), - .HMASTERS (HMASTER_DMA_1), - .HMASTLOCKS (HMASTLOCK_DMA_1), - .HREADYS (HREADY_DMA_1), + .HSELS (HSEL_DMAC_1), + .HADDRS (HADDR_DMAC_1), + .HTRANSS (HTRANS_DMAC_1), + .HWRITES (HWRITE_DMAC_1), + .HSIZES (HSIZE_DMAC_1), + .HBURSTS (HBURST_DMAC_1), + .HPROTS (HPROT_DMAC_1), + .HMASTERS (HMASTER_DMAC_1), + .HMASTLOCKS (HMASTLOCK_DMAC_1), + .HREADYS (HREADY_DMAC_1), // Internal Response .active_ip (i_active2), @@ -1182,8 +1182,8 @@ module nanosoc_busmatrix ( .resp_ip (i_resp2), // Input Port Response - .HREADYOUTS (HREADYOUT_DMA_1), - .HRESPS (HRESP_DMA_1), + .HREADYOUTS (HREADYOUT_DMAC_1), + .HRESPS (HRESP_DMAC_1), // Internal Address/Control Signals .sel_ip (i_sel2), @@ -1339,14 +1339,14 @@ module nanosoc_busmatrix ( // Matrix decoder for SI1 - nanosoc_matrix_decode_DMA_0 u_nanosoc_matrix_decode_dma_0 ( + nanosoc_matrix_decode_DMAC_0 u_nanosoc_matrix_decode_dmac_0 ( // Common AHB signals .HCLK (HCLK), .HRESETn (HRESETn), // Signals from Input stage SI1 - .HREADYS (HREADY_DMA_0), + .HREADYS (HREADY_DMAC_0), .sel_dec (i_sel1), .decode_addr_dec (i_addr1[31:10]), // HADDR[9:0] is not decoded .trans_dec (i_trans1), @@ -1418,20 +1418,20 @@ module nanosoc_busmatrix ( .active_dec (i_active1), .HREADYOUTS (i_readyout1), .HRESPS (i_resp1), - .HRDATAS (HRDATA_DMA_0) + .HRDATAS (HRDATA_DMAC_0) ); // Matrix decoder for SI2 - nanosoc_matrix_decode_DMA_1 u_nanosoc_matrix_decode_dma_1 ( + nanosoc_matrix_decode_DMAC_1 u_nanosoc_matrix_decode_dmac_1 ( // Common AHB signals .HCLK (HCLK), .HRESETn (HRESETn), // Signals from Input stage SI2 - .HREADYS (HREADY_DMA_1), + .HREADYS (HREADY_DMAC_1), .sel_dec (i_sel2), .decode_addr_dec (i_addr2[31:10]), // HADDR[9:0] is not decoded .trans_dec (i_trans2), @@ -1503,7 +1503,7 @@ module nanosoc_busmatrix ( .active_dec (i_active2), .HREADYOUTS (i_readyout2), .HRESPS (i_resp2), - .HRDATAS (HRDATA_DMA_1) + .HRDATAS (HRDATA_DMAC_1) ); @@ -1633,7 +1633,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -1646,7 +1646,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -1719,7 +1719,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -1732,7 +1732,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -1805,7 +1805,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -1818,7 +1818,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -1891,7 +1891,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -1904,7 +1904,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -1977,7 +1977,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -1990,7 +1990,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -2063,7 +2063,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -2076,7 +2076,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -2149,7 +2149,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -2162,7 +2162,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -2235,7 +2235,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -2248,7 +2248,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals @@ -2321,7 +2321,7 @@ module nanosoc_busmatrix ( .prot_op1 (i_prot1), .master_op1 (i_master1), .mastlock_op1 (i_mastlock1), - .wdata_op1 (HWDATA_DMA_0), + .wdata_op1 (HWDATA_DMAC_0), .held_tran_op1 (i_held_tran1), // Port 2 Signals @@ -2334,7 +2334,7 @@ module nanosoc_busmatrix ( .prot_op2 (i_prot2), .master_op2 (i_master2), .mastlock_op2 (i_mastlock2), - .wdata_op2 (HWDATA_DMA_1), + .wdata_op2 (HWDATA_DMAC_1), .held_tran_op2 (i_held_tran2), // Port 3 Signals diff --git a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_lite.v b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_lite.v index 4e5219adc04a4ea37f4e58bda9216691af14315d..1a00f814071f9a6452df7f78d39b10de221fa218 100644 --- a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_lite.v +++ b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_lite.v @@ -50,24 +50,24 @@ module nanosoc_busmatrix_lite ( HMASTLOCK_SOCDEBUG, // Input port SI1 (inputs from master 1) - HADDR_DMA_0, - HTRANS_DMA_0, - HWRITE_DMA_0, - HSIZE_DMA_0, - HBURST_DMA_0, - HPROT_DMA_0, - HWDATA_DMA_0, - HMASTLOCK_DMA_0, + HADDR_DMAC_0, + HTRANS_DMAC_0, + HWRITE_DMAC_0, + HSIZE_DMAC_0, + HBURST_DMAC_0, + HPROT_DMAC_0, + HWDATA_DMAC_0, + HMASTLOCK_DMAC_0, // Input port SI2 (inputs from master 2) - HADDR_DMA_1, - HTRANS_DMA_1, - HWRITE_DMA_1, - HSIZE_DMA_1, - HBURST_DMA_1, - HPROT_DMA_1, - HWDATA_DMA_1, - HMASTLOCK_DMA_1, + HADDR_DMAC_1, + HTRANS_DMAC_1, + HWRITE_DMAC_1, + HSIZE_DMAC_1, + HBURST_DMAC_1, + HPROT_DMAC_1, + HWDATA_DMAC_1, + HMASTLOCK_DMAC_1, // Input port SI3 (inputs from master 3) HADDR_CPU_0, @@ -260,14 +260,14 @@ module nanosoc_busmatrix_lite ( HRESP_SOCDEBUG, // Input port SI1 (outputs to master 1) - HRDATA_DMA_0, - HREADY_DMA_0, - HRESP_DMA_0, + HRDATA_DMAC_0, + HREADY_DMAC_0, + HRESP_DMAC_0, // Input port SI2 (outputs to master 2) - HRDATA_DMA_1, - HREADY_DMA_1, - HRESP_DMA_1, + HRDATA_DMAC_1, + HREADY_DMAC_1, + HRESP_DMAC_1, // Input port SI3 (outputs to master 3) HRDATA_CPU_0, @@ -301,24 +301,24 @@ module nanosoc_busmatrix_lite ( input HMASTLOCK_SOCDEBUG; // Locked Sequence // Input port SI1 (inputs from master 1) - input [31:0] HADDR_DMA_0; // Address bus - input [1:0] HTRANS_DMA_0; // Transfer type - input HWRITE_DMA_0; // Transfer direction - input [2:0] HSIZE_DMA_0; // Transfer size - input [2:0] HBURST_DMA_0; // Burst type - input [3:0] HPROT_DMA_0; // Protection control - input [31:0] HWDATA_DMA_0; // Write data - input HMASTLOCK_DMA_0; // Locked Sequence + input [31:0] HADDR_DMAC_0; // Address bus + input [1:0] HTRANS_DMAC_0; // Transfer type + input HWRITE_DMAC_0; // Transfer direction + input [2:0] HSIZE_DMAC_0; // Transfer size + input [2:0] HBURST_DMAC_0; // Burst type + input [3:0] HPROT_DMAC_0; // Protection control + input [31:0] HWDATA_DMAC_0; // Write data + input HMASTLOCK_DMAC_0; // Locked Sequence // Input port SI2 (inputs from master 2) - input [31:0] HADDR_DMA_1; // Address bus - input [1:0] HTRANS_DMA_1; // Transfer type - input HWRITE_DMA_1; // Transfer direction - input [2:0] HSIZE_DMA_1; // Transfer size - input [2:0] HBURST_DMA_1; // Burst type - input [3:0] HPROT_DMA_1; // Protection control - input [31:0] HWDATA_DMA_1; // Write data - input HMASTLOCK_DMA_1; // Locked Sequence + input [31:0] HADDR_DMAC_1; // Address bus + input [1:0] HTRANS_DMAC_1; // Transfer type + input HWRITE_DMAC_1; // Transfer direction + input [2:0] HSIZE_DMAC_1; // Transfer size + input [2:0] HBURST_DMAC_1; // Burst type + input [3:0] HPROT_DMAC_1; // Protection control + input [31:0] HWDATA_DMAC_1; // Write data + input HMASTLOCK_DMAC_1; // Locked Sequence // Input port SI3 (inputs from master 3) input [31:0] HADDR_CPU_0; // Address bus @@ -511,14 +511,14 @@ module nanosoc_busmatrix_lite ( output HRESP_SOCDEBUG; // Transfer response // Input port SI1 (outputs to master 1) - output [31:0] HRDATA_DMA_0; // Read data bus - output HREADY_DMA_0; // HREADY feedback - output HRESP_DMA_0; // Transfer response + output [31:0] HRDATA_DMAC_0; // Read data bus + output HREADY_DMAC_0; // HREADY feedback + output HRESP_DMAC_0; // Transfer response // Input port SI2 (outputs to master 2) - output [31:0] HRDATA_DMA_1; // Read data bus - output HREADY_DMA_1; // HREADY feedback - output HRESP_DMA_1; // Transfer response + output [31:0] HRDATA_DMAC_1; // Read data bus + output HREADY_DMAC_1; // HREADY feedback + output HRESP_DMAC_1; // Transfer response // Input port SI3 (outputs to master 3) output [31:0] HRDATA_CPU_0; // Read data bus @@ -554,32 +554,32 @@ module nanosoc_busmatrix_lite ( wire HRESP_SOCDEBUG; // Transfer response // Input Port SI1 - wire [31:0] HADDR_DMA_0; // Address bus - wire [1:0] HTRANS_DMA_0; // Transfer type - wire HWRITE_DMA_0; // Transfer direction - wire [2:0] HSIZE_DMA_0; // Transfer size - wire [2:0] HBURST_DMA_0; // Burst type - wire [3:0] HPROT_DMA_0; // Protection control - wire [31:0] HWDATA_DMA_0; // Write data - wire HMASTLOCK_DMA_0; // Locked Sequence - - wire [31:0] HRDATA_DMA_0; // Read data bus - wire HREADY_DMA_0; // HREADY feedback - wire HRESP_DMA_0; // Transfer response + wire [31:0] HADDR_DMAC_0; // Address bus + wire [1:0] HTRANS_DMAC_0; // Transfer type + wire HWRITE_DMAC_0; // Transfer direction + wire [2:0] HSIZE_DMAC_0; // Transfer size + wire [2:0] HBURST_DMAC_0; // Burst type + wire [3:0] HPROT_DMAC_0; // Protection control + wire [31:0] HWDATA_DMAC_0; // Write data + wire HMASTLOCK_DMAC_0; // Locked Sequence + + wire [31:0] HRDATA_DMAC_0; // Read data bus + wire HREADY_DMAC_0; // HREADY feedback + wire HRESP_DMAC_0; // Transfer response // Input Port SI2 - wire [31:0] HADDR_DMA_1; // Address bus - wire [1:0] HTRANS_DMA_1; // Transfer type - wire HWRITE_DMA_1; // Transfer direction - wire [2:0] HSIZE_DMA_1; // Transfer size - wire [2:0] HBURST_DMA_1; // Burst type - wire [3:0] HPROT_DMA_1; // Protection control - wire [31:0] HWDATA_DMA_1; // Write data - wire HMASTLOCK_DMA_1; // Locked Sequence - - wire [31:0] HRDATA_DMA_1; // Read data bus - wire HREADY_DMA_1; // HREADY feedback - wire HRESP_DMA_1; // Transfer response + wire [31:0] HADDR_DMAC_1; // Address bus + wire [1:0] HTRANS_DMAC_1; // Transfer type + wire HWRITE_DMAC_1; // Transfer direction + wire [2:0] HSIZE_DMAC_1; // Transfer size + wire [2:0] HBURST_DMAC_1; // Burst type + wire [3:0] HPROT_DMAC_1; // Protection control + wire [31:0] HWDATA_DMAC_1; // Write data + wire HMASTLOCK_DMAC_1; // Locked Sequence + + wire [31:0] HRDATA_DMAC_1; // Read data bus + wire HREADY_DMAC_1; // HREADY feedback + wire HRESP_DMAC_1; // Transfer response // Input Port SI3 wire [31:0] HADDR_CPU_0; // Address bus @@ -763,8 +763,8 @@ module nanosoc_busmatrix_lite ( wire tie_hi; wire tie_low; wire [1:0] i_hresp_SOCDEBUG; - wire [1:0] i_hresp_DMA_0; - wire [1:0] i_hresp_DMA_1; + wire [1:0] i_hresp_DMAC_0; + wire [1:0] i_hresp_DMAC_1; wire [1:0] i_hresp_CPU_0; wire [3:0] i_hmaster_BOOTROM; @@ -799,9 +799,9 @@ module nanosoc_busmatrix_lite ( assign HRESP_SOCDEBUG = i_hresp_SOCDEBUG[0]; - assign HRESP_DMA_0 = i_hresp_DMA_0[0]; + assign HRESP_DMAC_0 = i_hresp_DMAC_0[0]; - assign HRESP_DMA_1 = i_hresp_DMA_1[0]; + assign HRESP_DMAC_1 = i_hresp_DMAC_1[0]; assign HRESP_CPU_0 = i_hresp_CPU_0[0]; @@ -839,36 +839,36 @@ module nanosoc_busmatrix_lite ( .HRESP_SOCDEBUG (i_hresp_SOCDEBUG), // Input port SI1 signals - .HSEL_DMA_0 (tie_hi), - .HADDR_DMA_0 (HADDR_DMA_0), - .HTRANS_DMA_0 (HTRANS_DMA_0), - .HWRITE_DMA_0 (HWRITE_DMA_0), - .HSIZE_DMA_0 (HSIZE_DMA_0), - .HBURST_DMA_0 (HBURST_DMA_0), - .HPROT_DMA_0 (HPROT_DMA_0), - .HWDATA_DMA_0 (HWDATA_DMA_0), - .HMASTLOCK_DMA_0 (HMASTLOCK_DMA_0), - .HMASTER_DMA_0 (tie_hi_4), - .HREADY_DMA_0 (HREADY_DMA_0), - .HRDATA_DMA_0 (HRDATA_DMA_0), - .HREADYOUT_DMA_0 (HREADY_DMA_0), - .HRESP_DMA_0 (i_hresp_DMA_0), + .HSEL_DMAC_0 (tie_hi), + .HADDR_DMAC_0 (HADDR_DMAC_0), + .HTRANS_DMAC_0 (HTRANS_DMAC_0), + .HWRITE_DMAC_0 (HWRITE_DMAC_0), + .HSIZE_DMAC_0 (HSIZE_DMAC_0), + .HBURST_DMAC_0 (HBURST_DMAC_0), + .HPROT_DMAC_0 (HPROT_DMAC_0), + .HWDATA_DMAC_0 (HWDATA_DMAC_0), + .HMASTLOCK_DMAC_0 (HMASTLOCK_DMAC_0), + .HMASTER_DMAC_0 (tie_hi_4), + .HREADY_DMAC_0 (HREADY_DMAC_0), + .HRDATA_DMAC_0 (HRDATA_DMAC_0), + .HREADYOUT_DMAC_0 (HREADY_DMAC_0), + .HRESP_DMAC_0 (i_hresp_DMAC_0), // Input port SI2 signals - .HSEL_DMA_1 (tie_hi), - .HADDR_DMA_1 (HADDR_DMA_1), - .HTRANS_DMA_1 (HTRANS_DMA_1), - .HWRITE_DMA_1 (HWRITE_DMA_1), - .HSIZE_DMA_1 (HSIZE_DMA_1), - .HBURST_DMA_1 (HBURST_DMA_1), - .HPROT_DMA_1 (HPROT_DMA_1), - .HWDATA_DMA_1 (HWDATA_DMA_1), - .HMASTLOCK_DMA_1 (HMASTLOCK_DMA_1), - .HMASTER_DMA_1 (tie_hi_4), - .HREADY_DMA_1 (HREADY_DMA_1), - .HRDATA_DMA_1 (HRDATA_DMA_1), - .HREADYOUT_DMA_1 (HREADY_DMA_1), - .HRESP_DMA_1 (i_hresp_DMA_1), + .HSEL_DMAC_1 (tie_hi), + .HADDR_DMAC_1 (HADDR_DMAC_1), + .HTRANS_DMAC_1 (HTRANS_DMAC_1), + .HWRITE_DMAC_1 (HWRITE_DMAC_1), + .HSIZE_DMAC_1 (HSIZE_DMAC_1), + .HBURST_DMAC_1 (HBURST_DMAC_1), + .HPROT_DMAC_1 (HPROT_DMAC_1), + .HWDATA_DMAC_1 (HWDATA_DMAC_1), + .HMASTLOCK_DMAC_1 (HMASTLOCK_DMAC_1), + .HMASTER_DMAC_1 (tie_hi_4), + .HREADY_DMAC_1 (HREADY_DMAC_1), + .HRDATA_DMAC_1 (HRDATA_DMAC_1), + .HREADYOUT_DMAC_1 (HREADY_DMAC_1), + .HRESP_DMAC_1 (i_hresp_DMAC_1), // Input port SI3 signals .HSEL_CPU_0 (tie_hi), diff --git a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_0.v b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_0.v similarity index 99% rename from system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_0.v rename to system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_0.v index 4aab2f63ef4ea76b9673c7291a0c95d9208fcebf..9bc7a0de6b2bb14f329efe3517ae6294bf80153b 100644 --- a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_0.v +++ b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_0.v @@ -33,7 +33,7 @@ -module nanosoc_matrix_decode_DMA_0 ( +module nanosoc_matrix_decode_DMAC_0 ( // Common AHB signals HCLK, diff --git a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_1.v b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_1.v similarity index 99% rename from system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_1.v rename to system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_1.v index b4e1ad6fb2b5a2a5cba2e4793d4e89b2f93bbf1c..eda0cb8d33e612de0625a452ace966183c7eecb5 100644 --- a/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMA_1.v +++ b/system/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_1.v @@ -33,7 +33,7 @@ -module nanosoc_matrix_decode_DMA_1 ( +module nanosoc_matrix_decode_DMAC_1 ( // Common AHB signals HCLK, diff --git a/system/nanosoc_busmatrix/xml/nanosoc.xml b/system/nanosoc_busmatrix/xml/nanosoc.xml index 34786fd07f845d574fbf46635d6b86fa484aba11..b55e1f81e23a6049d356a133def753ef86791cde 100644 --- a/system/nanosoc_busmatrix/xml/nanosoc.xml +++ b/system/nanosoc_busmatrix/xml/nanosoc.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <!--//----------------------------------------------------------------------------- --> -<!--// customised interconnect specification for ADP/DMA/ Cortex-M0 controller --> +<!--// Customised Bus Matrix Interconnect specification for SoC Labs NanoSoCer --> <!--// --> <!--// Contributors --> <!--// --> @@ -86,7 +86,7 @@ <remap_region interface="_IMEM" mem_lo='00000000' mem_hi='0fffffff' bit='0'/> </slave_interface> - <slave_interface name="_DMA_0"> + <slave_interface name="_DMAC_0"> <sparse_connect interface="_BOOTROM"/> <sparse_connect interface="_IMEM"/> <sparse_connect interface="_DMEM"/> @@ -108,7 +108,7 @@ <address_region interface="_EXP_2" mem_lo='c0000000' mem_hi='dfffffff' remapping='none'/> </slave_interface> - <slave_interface name="_DMA_1"> + <slave_interface name="_DMAC_1"> <sparse_connect interface="_BOOTROM"/> <sparse_connect interface="_IMEM"/> <sparse_connect interface="_DMEM"/> diff --git a/system/nanosoc_chip/chip/verilog/nanosoc_chip.v b/system/nanosoc_chip/chip/verilog/nanosoc_chip.v index 9f29474abce915348298915ee0cad6226ed32a2e..1bb5c8a8fdc713c9ff2b238520808ad31861ab17 100644 --- a/system/nanosoc_chip/chip/verilog/nanosoc_chip.v +++ b/system/nanosoc_chip/chip/verilog/nanosoc_chip.v @@ -200,7 +200,7 @@ module nanosoc_chip #( wire WDOGRESETREQ; // watchdog system reset request wire HRESETREQ; // Combined system reset request wire NANOSOC_SYSRESETREQ; // Combined system reset request - wire clk_ctrl_sys_reset_req; + wire CCTRLRESETREQ; wire PMUHRESETREQ; wire PMUDBGRESETREQ; wire LOCKUP; @@ -254,7 +254,7 @@ module nanosoc_chip #( assign NANOSOC_SYSRESETREQ = SYSRESETREQ | WDOGRESETREQ | ADPRESETREQ | (LOCKUP & LOCKUPRESET); - assign clk_ctrl_sys_reset_req = PMUHRESETREQ | HRESETREQ; + assign CCTRLRESETREQ = PMUHRESETREQ | HRESETREQ; // Clock controller to generate reset and clock signals nanosoc_mcu_clkctrl @@ -269,7 +269,7 @@ module nanosoc_chip #( .SLEEPDEEP (SLEEPDEEP), .LOCKUP (LOCKUP), .LOCKUPRESET (LOCKUPRESET), - .SYSRESETREQ (clk_ctrl_sys_reset_req), + .SYSRESETREQ (CCTRLRESETREQ), .DBGRESETREQ (PMUDBGRESETREQ), .CGBYPASS (TESTMODE), .RSTBYPASS (TESTMODE), diff --git a/system/nanosoc_interconnect/verilog/nanosoc_interconnect.v b/system/nanosoc_interconnect/verilog/nanosoc_interconnect.v index 01bb5b229667fa674526c73c91d25cb4b7bbde1f..03416193cc212f526c5ef7b501e236d40ecc6dd5 100644 --- a/system/nanosoc_interconnect/verilog/nanosoc_interconnect.v +++ b/system/nanosoc_interconnect/verilog/nanosoc_interconnect.v @@ -1,12 +1,29 @@ +//----------------------------------------------------------------------------- +// NanoSoC Interconnect Level - Connects AHB Managers to Device Regions +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// David Mapstone (d.a.masptone@soton.ac.uk) +// +// Copyright (C) 2023, SoC Labs (www.soclabs.org) +//----------------------------------------------------------------------------- + module nanosoc_interconnect #( + // AHB System Parameters parameter SYS_ADDR_W = 32, parameter SYS_DATA_W = 32, + + // Default RAM Instantiation Parameters parameter RAM_ADDR_W = 14, parameter RAM_DATA_W = 32, - parameter DMA_CHANNEL_NUM = 2, - parameter CLKGATE_PRESENT = 0, - parameter integer FT1248_WIDTH = 1 // FTDI Interface 1,2,4 width supported + + // System Manager Parameters + parameter DMA_CHANNEL_NUM = 2 )( + // Global Clocks and Reset + input wire GLOBALRESETn, // Global Reset + // Clocks, Gated-Clocks and Reset - AHB-lite input wire HCLK, // Clock input wire HCLKG, // Gated Clock @@ -33,11 +50,23 @@ module nanosoc_interconnect #( output wire SWO, // SWD data output output wire SWDOEN, // SWD data output enable - // CPU Reset Request Signals + // Manager Reset Request Signals input wire NANOSOC_SYSRESETREQ, - input wire SYSRESETREQ, - input wire WDOGRESETREQ, - input wire ADPRESETREQ, + output wire SYSRESETREQ, + output wire WDOGRESETREQ, + output wire ADPRESETREQ, + + // CPU Power Control/Status Signals + input wire SLEEPING, + input wire SLEEPDEEP, + input wire WAKEUP, + input wire WICENREQ, + input wire WICENACK, + input wire SLEEPHOLDREQn, + input wire SLEEPHOLDACKn, + input wire CDBGPWRUPACK, + input wire CDBGPWRUPREQ, + // SoCDebug Controller AHB-lite Subordinate Interface input wire [31:0] HADDR32_SOCDEBUG_o, @@ -73,7 +102,7 @@ module nanosoc_interconnect #( //-------------------------------- // CPU_0 //-------------------------------- - // Connectivity -AHB + // Connectivity - AHB wire [31:0] HADDR_CPU_0; wire [1:0] HTRANS_CPU_0; wire HWRITE_CPU_0; @@ -86,6 +115,10 @@ module nanosoc_interconnect #( wire HRDATA_CPU_0; wire HRESP_CPU_0; + // Connectivity - CPU Sidebank Signals + wire [31:0] SYS_NMI; + wire SYS_APB_IRQ; + // Instantiate Cortex-M0 nanosoc_manager_cortexm0 u_cpu_0 ( @@ -112,10 +145,10 @@ module nanosoc_interconnect #( .HRDATA (HRDATA_CPU_0), .HRESP (HRESP_CPU_0), - // Sideband Signals - TODO: Rename, Reroute and Restructure - .NMI (intnmi_cm0), // Non-maskable interrupt input - .IRQ (intisr_cm0[31:0]), // Interrupt request inputs - .TXEV (TXEV), // Event output (SEV executed) + // Sideband Signals + .NMI (SYS_NMI), // Non-maskable interrupt input + .IRQ (intisr_cm0[31:0]), // Interrupt request inputs - TODO: Need to generate this in own module/wrapper + .TXEV ( ), // Event output (SEV executed) .RXEV (RXEV), // Event input // CPU Control/Status Signals - TODO: Rename, Reroute and Restructure @@ -140,7 +173,14 @@ module nanosoc_interconnect #( .SWDO (SWDO), .SWDOEN (SWDOEN) ); - + + //-------------------------------- + // DMAC_0 + //-------------------------------- + // Connectivity - DMAC Interrupt Control + wire [DMA_CHANNEL_NUM-1:0] DMAC_0_CH_DONE; + wire DMAC_0_DONE; + // Instantiate DMA_0 - DMA230 // Instantiate DMA_1 - Not Implemented @@ -161,7 +201,7 @@ module nanosoc_interconnect #( .HCLK (HCLK), .HRESETn (HRESETn), - // System Address Remap COotrol + // System Address Remap Control .REMAP ({3'b0, !ROM_REMAP}), // Manager Input Signals for SoCDebug Controller - Instantiated at Chip Level @@ -178,29 +218,29 @@ module nanosoc_interconnect #( .HRESP_SOCDEBUG (HRESP_SOCDEBUG_i), // Manager Input Signals for DMA Controller 0 - DMA230 - .HADDR_DMA_0 (HADDR_DMA_0), - .HTRANS_DMA_0 (HTRANS_DMA_0), - .HWRITE_DMA_0 (HWRITE_DMA_0), - .HSIZE_DMA_0 (HSIZE_DMA_0), - .HBURST_DMA_0 (HBURST_DMA_0), - .HPROT_DMA_0 (HPROT_DMA_0), - .HWDATA_DMA_0 (HWDATA_DMA_0), - .HMASTLOCK_DMA_0 (HMASTLOCK_DMA_0), - .HREADY_DMA_0 (HREADY_DMA_0), - .HRDATA_DMA_0 (HRDATA_DMA_0), - .HRESP_DMA_0 (HRESP_DMA_0), + .HADDR_DMAC_0 (HADDR_DMAC_0), + .HTRANS_DMAC_0 (HTRANS_DMAC_0), + .HWRITE_DMAC_0 (HWRITE_DMAC_0), + .HSIZE_DMAC_0 (HSIZE_DMAC_0), + .HBURST_DMAC_0 (HBURST_DMAC_0), + .HPROT_DMAC_0 (HPROT_DMAC_0), + .HWDATA_DMAC_0 (HWDATA_DMAC_0), + .HMASTLOCK_DMAC_0 (HMASTLOCK_DMAC_0), + .HREADY_DMAC_0 (HREADY_DMAC_0), + .HRDATA_DMAC_0 (HRDATA_DMAC_0), + .HRESP_DMAC_0 (HRESP_DMAC_0), // Manager Input Signals for DMA Controller 1 - Not Initialised - .HADDR_DMA_1 (HADDR_DMA_1), - .HTRANS_DMA_1 (HTRANS_DMA_1), - .HWRITE_DMA_1 (HWRITE_DMA_1), - .HSIZE_DMA_1 (HSIZE_DMA_1), - .HBURST_DMA_1 (HBURST_DMA_1), - .HPROT_DMA_1 (HPROT_DMA_1), - .HWDATA_DMA_1 (HWDATA_DMA_1), - .HMASTLOCK_DMA_1 (HMASTLOCK_DMA_1), - .HREADY_DMA_1 (HREADY_DMA_1), - .HRESP_DMA_1 (HRESP_DMA_1), + .HADDR_DMAC_1 (HADDR_DMAC_1), + .HTRANS_DMAC_1 (HTRANS_DMAC_1), + .HWRITE_DMAC_1 (HWRITE_DMAC_1), + .HSIZE_DMAC_1 (HSIZE_DMAC_1), + .HBURST_DMAC_1 (HBURST_DMAC_1), + .HPROT_DMAC_1 (HPROT_DMAC_1), + .HWDATA_DMAC_1 (HWDATA_DMAC_1), + .HMASTLOCK_DMAC_1 (HMASTLOCK_DMAC_1), + .HREADY_DMAC_1 (HREADY_DMAC_1), + .HRESP_DMAC_1 (HRESP_DMAC_1), // Manager Input Signals for CPU 0 - Cortex-M0 .HADDR_CPU_0 (HADDR_CPU_0), diff --git a/system/nanosoc_managers/cortexm0/verilog/nanosoc_cortexm0_control.v b/system/nanosoc_managers/cortexm0/verilog/nanosoc_cortexm0_control.v new file mode 100644 index 0000000000000000000000000000000000000000..b5e2b43253484f0f00a9b86e677918fe9805f54b --- /dev/null +++ b/system/nanosoc_managers/cortexm0/verilog/nanosoc_cortexm0_control.v @@ -0,0 +1,144 @@ +//----------------------------------------------------------------------------- +// NanoSoC Cortex-M0 Reset and Power Control Module +// 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 nanosoc_cortexm0_control #( + parameter CLKGATE_PRESENT = 0 +)( + // Input Clocks and Resets + input wire FCLK, // Free running clock + input wire SYSRESETn, // System Reset + input wire SCANENABLE, // Scan Mode Enable + input wire TESTMODE, // Test Mode Enable (Override Synchronisers) + + // Generated Clocks and Resets + output wire SCLK, // System clock + output wire HCLK, // AHB Clock + output wire HRESETn, // AHB Reset + output wire PORESETn, // Power on reset + output wire DCLK, // Debug clock + output wire DBGRESETn, // Debug reset + + // System Reset Request + input wire NANOSOC_RESETREQ, // System Reset Request + + // Power Management Control Signals + input wire PMUENABLE, // PMU NEable from System Register + input wire WAKEUP, // Wakeup Signaling from Core + input wire SLEEPDEEP, // Debug Power Up Request + input wire GATEHCLK, // Control Signal from Core to Control Clock Gating of HCLK + + // Power Management Request signals + input wire CDBGPWRUPREQ, // Core Debug Power Up Request + output wire WICENREQ, // WIC enable request from PMU + output wire SLEEPHOLDREQn, // Core Sleep Hold Request + output wire PMUDBGRESETREQ, // Power Management Unit Debug Reset Request + output wire CCTRLRESETREQ, // Core Control System Reset Request + + // Power Management Ackowledge signals + input wire WICENACK, // Wake-on-Interrupt Enable ACK from Core + input wire SLEEPHOLDACKn, // Sleep Hold Acknowledgement + output wire CDBGPWRUPACK // Core Debug Power Up Acknowledge +); + + // ------------------------------- + // Cortex-M0 Control System Reset Req + // ------------------------------- + wire HRESETREQ; + wire PMUHRESETREQ; + + assign CCTRLRESETREQ = PMUHRESETREQ | HRESETREQ; + + // ------------------------------- + // NanoSoC Power Down Detection + // ------------------------------- + // System Power Down Signals + wire SYSPWRDOWN; + wire SYSPWRDOWNACK; + + // Debug Power Down Signals + wire DBGPWRDOWN; + wire DBGPWRDOWNACK; + + // In this example system, power control takes place immediately. + // In a real circuit you might need to add delays in the next two + // signal assignments for correct operation. + assign SYSPWRDOWNACK = SYSPWRDOWN; + assign DBGPWRDOWNACK = DBGPWRDOWN; + + // ------------------------------- + // NanoSoC Power Management Unit + // ------------------------------- + // Connectivity - Clock Generation + wire HCLKG; // Gated HCLK + wire DCLKG; // Gated DCLK + wire SCLKG; // Gated SCLK + + assign HCLK = (CLKGATE_PRESENT==0) ? FCLK : HCLKG; + assign DCLK = (CLKGATE_PRESENT==0) ? FCLK : DCLKG; + assign SCLK = (CLKGATE_PRESENT==0) ? FCLK : SCLKG; + + // Power Management Unit Instantiation + cortexm0_pmu u_cortexm0_pmu ( + // Power Management Unit Inputs + .FCLK (FCLK), + .PORESETn (PORESETn), + .HRESETREQ (NANOSOC_RESETREQ), // from Cores / Watchdog / Debug Controller + .PMUENABLE (PMUENABLE), // from System Controller + .WICENACK (WICENACK), // from WIC in integration + + .WAKEUP (WAKEUP), // from WIC in integration + .CDBGPWRUPREQ (CDBGPWRUPREQ), + + .SLEEPDEEP (SLEEPDEEP), + .SLEEPHOLDACKn (SLEEPHOLDACKn), + .GATEHCLK (GATEHCLK), + .SYSPWRDOWNACK (SYSPWRDOWNACK), + .DBGPWRDOWNACK (DBGPWRDOWNACK), + .CGBYPASS (TESTMODE), + + // Power Management Unit Outputs + .HCLK (HCLKG), + .DCLK (DCLKG), + .SCLK (SCLKG), + .WICENREQ (WICENREQ), + .CDBGPWRUPACK (CDBGPWRUPACK), + .SYSISOLATEn ( ), + .SYSRETAINn ( ), + .SYSPWRDOWN (SYSPWRDOWN), + .DBGISOLATEn ( ), + .DBGPWRDOWN (DBGPWRDOWN), + .SLEEPHOLDREQn (SLEEPHOLDREQn), + .PMUDBGRESETREQ (PMUDBGRESETREQ), + .PMUHRESETREQ (PMUHRESETREQ) + ); + + // ------------------------------- + // Reset Control + // ------------------------------- + cortexm0_rst_ctl u_rst_ctl ( + // Inputs + .GLOBALRESETn (SYSRESETn), + .FCLK (FCLK), + .HCLK (HCLKG), // TODO: Why are theses Gated? + .DCLK (DCLKG), // TODO: Why are theses Gated? + .SYSRESETREQ (NANOSOC_RESETREQ), + .PMUHRESETREQ (PMUHRESETREQ), + .PMUDBGRESETREQ (PMUDBGRESETREQ), + .RSTBYPASS (TESTMODE), + .SE (SCANENABLE), + + // Outputs + .PORESETn (PORESETn), + .HRESETn (HRESETn), + .DBGRESETn (DBGRESETn), + .HRESETREQ (HRESETREQ) + ); +endmodule \ No newline at end of file diff --git a/system/nanosoc_managers/cortexm0/verilog/nanosoc_stclkctrl.v b/system/nanosoc_managers/cortexm0/verilog/nanosoc_cortexm0_stclkctrl.v similarity index 98% rename from system/nanosoc_managers/cortexm0/verilog/nanosoc_stclkctrl.v rename to system/nanosoc_managers/cortexm0/verilog/nanosoc_cortexm0_stclkctrl.v index ca006495ef5441ce0aacfa189471846f316fbebc..2f1dc81413a3e671883ba8f722a8bf30a42339f3 100644 --- a/system/nanosoc_managers/cortexm0/verilog/nanosoc_stclkctrl.v +++ b/system/nanosoc_managers/cortexm0/verilog/nanosoc_cortexm0_stclkctrl.v @@ -35,7 +35,7 @@ // Abstract : Simple control for SysTick signals for Cortex-M processor //----------------------------------------------------------------------------- -module nanosoc_stclkctrl #( +module nanosoc_cortexm0_stclkctrl #( // Ratio between FCLK and SysTck reference clock parameter DIV_RATIO = 18'd01000, diff --git a/system/nanosoc_managers/cortexm0/verilog/nanosoc_manager_cortexm0.v b/system/nanosoc_managers/cortexm0/verilog/nanosoc_manager_cortexm0.v index 94ee5c0c224950b3b76dbaf66d063c709f524e00..52512dac01d511f61eb419bdee6caf4b04a80144 100644 --- a/system/nanosoc_managers/cortexm0/verilog/nanosoc_manager_cortexm0.v +++ b/system/nanosoc_managers/cortexm0/verilog/nanosoc_manager_cortexm0.v @@ -4,7 +4,8 @@ // // Contributors // -// David Flynn (d.w.flynn@soton.ac.uk) +// David Flynn (d.w.flynn@soton.ac.uk) +// David Mapstone (d.a.mapstone@soton.ac.uk) // // Copyright � 2021-3, SoC Labs (www.soclabs.org) //----------------------------------------------------------------------------- @@ -49,15 +50,27 @@ module nanosoc_manager_cortexm0 #( parameter RESET_ALL_REGS = 0, // Do not reset all registers parameter INCLUDE_JTAG = 0 // Do not Include JTAG feature )( - input wire HCLK, // (HCLK master) + // Input Clocks and Resets input wire FCLK, // Free running clock - input wire SCLK, // System clock - input wire HRESETn, // AHB and System reset - input wire PORESETn, // Power on reset - input wire DCLK, // Debug clock - input wire DBGRESETn, // Debug reset - input wire RSTBYPASS, // Reset by pass (for testing) - input wire DFTSE, // Reset by pass (for testing) + input wire SYSRESETn, // System Reset + input wire SCANENABLE, // Scan Mode Enable + input wire TESTMODE, // Test Mode Enable (Override Synchronisers) + + // System Reset Request Signals + input wire NANOSOC_RESETREQ, // System Request from System Managers + output wire CCTRLRESETREQ, // CPU Control Reset Request (PMU and Reset Unit) + + // Generated Clocks and Resets + output wire HCLK, // (HCLK master) + output wire SCLK, // System clock + output wire HRESETn, // AHB and System reset + output wire PORESETn, // Power on reset + output wire DCLK, // Debug clock + output wire DBGRESETn, // Debug reset + + // Power Management Signals + input wire PMUENABLE, // Power Management Enable + output wire PMUDBGRESETREQ, // Power Management Debug Reset Req // AHB Lite port output wire [31:0] HADDR, // Address bus @@ -79,55 +92,97 @@ module nanosoc_manager_cortexm0 #( input wire RXEV, // Receive Event input output wire SLEEPING, // Processor status - sleeping output wire SLEEPDEEP, // Processor status - deep sleep - output wire GATEHCLK, // Wake up request from WIC output wire LOCKUP, // Wake up request from WIC - output wire WAKEUP, // Wake up request from WIC - input wire WICENREQ, // WIC enable request from PMU - output wire WICENACK, // WIC enable ack to PMU - input wire SLEEPHOLDREQn, // Sleep extension request from PM - output wire SLEEPHOLDACKn, // Sleep extension request to PMU - input wire CDBGPWRUPREQ, // Sleep extension request from PM - output wire CDBGPWRUPACK, // Sleep extension request to PMU - input wire SYSRESETREQ, // System reset request - input wire WDOGRESETREQ, // Watchdog reset request - input wire ADPRESETREQ, // ADP Debug reset request + output wire SYSRESETREQ, // System reset request // Serial-Wire Debug input wire SWDI, // SWD data input input wire SWCLK, // SWD clock output wire SWDO, // SWD data output - output wire SWDOEN); // SWD data output enable + output wire SWDOEN // SWD data output enable +); + + // --------------------------------------------------- + // Cortex-M0 Power Management and Reset Control Unit + // --------------------------------------------------- + // Cortex-M0 Control to Core Connectivity + wire GATEHCLK; // Control Signal from CPU to Control CLock Gating of HCLK + wire WAKEUP; // Wake-up Signaling from Core + wire CDBGPWRUPREQ; // Core Debug Power Up Request + wire CDBGPWRUPACK; // Core Debug Power Up Acknowledge + wire WICENREQ; // WIC enable request from PMU + wire WICENACK; // Wake-on-Interrupt Enable ACK from Core + wire SLEEPHOLDREQn; // Core Sleep Hold Request + wire SLEEPHOLDACKn; // Core Sleep Hold Acknowledgement + + // Cortex-M0 Control Instantiation + nanosoc_cortexm0_control #( + .CLKGATE_PRESENT(CLKGATE_PRESENT) + ) u_cpu_control ( + // Input Clocks and Resets + .FCLK (FCLK), // Free running clock + .SYSRESETn (SYSRESETn), // System Reset + .SCANENABLE (SCANENABLE), // Scan Mode Enable + .TESTMODE (TESTMODE), // Test Mode Enable (Override Synchronisers) + // Generated Clocks and Resets + .SCLK (SCLK), // System clock + .HCLK (HCLK), // AHB Clock + .HRESETn (HRESETn), // AHB Reset + .PORESETn (PORESETn), // Power on reset + .DCLK (DCLK), // Debug clock + .DBGRESETn (DBGRESETn), // Debug reset - // ------------------------------- - // Internal signals - // ------------------------------- + // System Reset Request + .NANOSOC_RESETREQ (NANOSOC_RESETREQ), // System Reset Request - // clock, reset, and power control + // Power Management Control Signals + .PMUENABLE (PMUENABLE), // PMU Enable from System Register + .WAKEUP (WAKEUP), // Wake-up Signaling from Core + .SLEEPDEEP (SLEEPDEEP), // Debug Power Up Request + .GATEHCLK (GATEHCLK), // Control Signal from Core to Control CLock Gating of HCLK - wire [33:0] WICSENSE; + // Power Management Request signals + .CDBGPWRUPREQ (CDBGPWRUPREQ), // Core Debug Power Up Request + .WICENREQ (WICENREQ), // WIC enable request from PMU + .SLEEPHOLDREQn (SLEEPHOLDREQn), // Core Sleep Hold Request + .PMUDBGRESETREQ (PMUDBGRESETREQ), // Power Management Unit Debug Reset Request + .CCTRLRESETREQ (CCTRLRESETREQ), // Core Control System Reset Request - wire APBACTIVE; // APB bus active (for clock gating of PCLKG) - wire LOCKUPRESET; // System Controller cfg - reset if lockup - wire PMUENABLE; // System Controller cfg - Enable PMU - - // SysTick timer signals + // Power Management Ackowledge signals + .WICENACK (WICENACK), // Wake-on-Interrupt Enable ACK from Core + .SLEEPHOLDACKn (SLEEPHOLDACKn), // Sleep Hold Acknowledgement + .CDBGPWRUPACK (CDBGPWRUPACK) // Core Debug Power Up Acknowledge + ); + + // ------------------------------- + // SysTick signals + // ------------------------------- + // SysTick Timer Signals wire STCLKEN; wire [25:0] STCALIB; + + // SysTick Control Instantiation + nanosoc_cortexm0_stclkctrl #( + .DIV_RATIO (18'd01000) + ) u_stclkctrl ( + .FCLK (FCLK), + .SYSRESETn (HRESETn), - // Processor debug signals - wire DBGRESTART; - wire DBGRESTARTED; - wire EDBGRQ; + .STCLKEN (STCLKEN), + .STCALIB (STCALIB) + ); + // ------------------------------- + // Cortex-M0 CPU Instantiation + // ------------------------------- // Processor status - wire HALTED; wire [2:0] CODEHINTDE; wire SPECHTRANS; wire CODENSEQ; wire SHAREABLE; - - // Cortex-M0 integration level + + // Cortex-M0 Logic Instantiation CORTEXM0INTEGRATION #( .ACG (CLKGATE_PRESENT), // Architectural clock gating .BE (BE), // Big-endian @@ -143,15 +198,15 @@ module nanosoc_manager_cortexm0 #( .WPT (WPT) // Number of DWT comparators ) u_cortex_m0_integration ( // System inputs - .FCLK (FCLK), // FCLK - .SCLK (SCLK), // SCLK generated from PMU - .HCLK (HCLK), // HCLK generated from PMU - .DCLK (DCLK), // DCLK generated from PMU + .FCLK (FCLKG), // FCLK + .SCLK (SCLKG), // SCLK generated from PMU + .HCLK (HCLKG), // HCLK generated from PMU + .DCLK (DCLKG), // DCLK generated from PMU .PORESETn (PORESETn), .HRESETn (HRESETn), .DBGRESETn (DBGRESETn), .RSTBYPASS (RSTBYPASS), - .SE (DFTSE), + .SE (SCANENABLE), // Power management inputs .SLEEPHOLDREQn (SLEEPHOLDREQn), @@ -164,22 +219,22 @@ module nanosoc_manager_cortexm0 #( .CDBGPWRUPREQ (CDBGPWRUPREQ), .WAKEUP (WAKEUP), - .WICSENSE (WICSENSE), + .WICSENSE ( ), .GATEHCLK (GATEHCLK), .SYSRESETREQ (SYSRESETREQ), // System bus - .HADDR (HADDR ), - .HTRANS (HTRANS ), - .HSIZE (HSIZE ), - .HBURST (HBURST ), - .HPROT (HPROT ), - .HMASTLOCK (HMASTLOCK ), - .HWRITE (HWRITE ), - .HWDATA (HWDATA ), - .HRDATA (HRDATA ), - .HREADY (HREADY ), - .HRESP (HRESP ), + .HADDR (HADDR), + .HTRANS (HTRANS), + .HSIZE (HSIZE), + .HBURST (HBURST), + .HPROT (HPROT), + .HMASTLOCK (HMASTLOCK), + .HWRITE (HWRITE), + .HWDATA (HWDATA), + .HRDATA (HRDATA), + .HREADY (HREADY), + .HRESP (HRESP), .HMASTER ( ), .CODEHINTDE (CODEHINTDE), @@ -197,47 +252,30 @@ module nanosoc_manager_cortexm0 #( .STCALIB (STCALIB), // Debug - JTAG or Serial wire - // inputs + // inputs .nTRST (1'b1), .SWDITMS (SWDI), .SWCLKTCK (SWCLK), .TDI (1'b0), - // outputs + // outputs .TDO ( ), .nTDOEN ( ), .SWDO (SWDO), .SWDOEN (SWDOEN), - .DBGRESTART (DBGRESTART), - .DBGRESTARTED (DBGRESTARTED), + .DBGRESTART (1'b0), // Unused - Multi-Core synchronous restart from halt + .DBGRESTARTED ( ), // Unused - Multi-Core synchronous restart from halt // Event communication .TXEV (TXEV), .RXEV (RXEV), - .EDBGRQ (EDBGRQ), + .EDBGRQ (1'b0), // Unused - Multi-Core synchronous halt request + // Status output - .HALTED (HALTED), + .HALTED ( ), .LOCKUP (LOCKUP), .SLEEPING (SLEEPING), .SLEEPDEEP (SLEEPDEEP) ); - // Unused debug feature - assign DBGRESTART = 1'b0; // multi-core synchronous restart from halt - assign EDBGRQ = 1'b0; // multi-core synchronous halt request - - // ------------------------------- - // SysTick signals - // ------------------------------- - nanosoc_stclkctrl #( - .DIV_RATIO (18'd01000) - ) u_nanosoc_mcu_stclkctrl ( - .FCLK (FCLK), - .SYSRESETn (HRESETn), - - .STCLKEN (STCLKEN), - .STCALIB (STCALIB) - ); - - endmodule