⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 axipc.sv

📁 amba3 sva 完全验证的代码
💻 SV
📖 第 1 页 / 共 5 页
字号:
//============================================================================--//  This confidential and proprietary software may be used only as//  authorised by a licensing agreement from ARM Limited//    (C) COPYRIGHT 2003-2006 ARM Limited//        ALL RIGHTS RESERVED//  The entire notice above must be reproduced on all authorised//  copies and copies may only be made to the extent permitted//  by a licensing agreement from ARM Limited.//////------------------------------------------------------------------------------//  Version and Release Control Information:////  File Name           : AxiPC.sv,v//  File Revision       : 1.9////  Release Information : BP062-VL-70004-r0p0-00rel0////------------------------------------------------------------------------------//  Purpose             : This is the AXI Protocol Checker using SVA////                        Supports bus widths of 32, 64, 128, 256, 512, 1024 bit//                        Parameterisable write interleave depth//                        Supports a single outstanding exclusive read per ID//============================================================================--//----------------------------------------------------------------------------// CONTENTS// ========//  279.  Module: AxiPC//  346.    1) Parameters//  350.         - Configurable (user can set)//  399.         - Calculated (user should not override)//  463.    2) Inputs (no outputs)//  467.         - Global Signals//  473.         - Write Address Channel//  488.         - Write Data Channel//  499.         - Write Response Channel//  508.         - Read Address Channel//  523.         - Read Data Channel//  533.         - Low Power Interface//  541.    3) Wire and Reg Declarations//  640.    4) Verilog Defines//  644.         - Lock FSM States//  653.         - Clock and Reset//  686.    5) Initialize simulation//  691.         - Format for time reporting//  697.         - Indicate version of AxiPC//  702.         - Warn if any/some recommended rules are disabled//  712.         - Warn if any/some channel rules are ignored//  728. //  729.  AXI Rules: Write Address Channel (*_AW*)//  734.    1) Functional Rules//  738.         - AXI_ERRM_AWADDR_BOUNDARY//  762.         - AXI_ERRM_AWADDR_WRAP_ALIGN//  774.         - AXI_ERRM_AWBURST//  786.         - AXI_ERRM_AWCACHE//  798.         - AXI_ERRM_AWLEN_WRAP//  813.         - AXI_ERRM_AWLOCK//  825.         - AXI_ERRM_AWLOCK_END//  841.         - AXI_ERRM_AWLOCK_ID//  855.         - AXI_ERRM_AWLOCK_LAST//  869.         - AXI_ERRM_AWLOCK_START//  885.         - AXI_ERRM_AWSIZE//  899.         - AXI_ERRM_AWVALID_RESET//  911.         - AXI_RECM_AWLOCK_BOUNDARY//  927.         - AXI_RECM_AWLOCK_CTRL //  942.         - AXI_RECM_AWLOCK_NUM//  958.    2) Handshake Rules//  962.         - AXI_ERRM_AWADDR_STABLE//  975.         - AXI_ERRM_AWBURST_STABLE//  988.         - AXI_ERRM_AWCACHE_STABLE// 1001.         - AXI_ERRM_AWID_STABLE// 1014.         - AXI_ERRM_AWLEN_STABLE// 1027.         - AXI_ERRM_AWLOCK_STABLE// 1040.         - AXI_ERRM_AWPROT_STABLE// 1053.         - AXI_ERRM_AWSIZE_STABLE// 1066.         - AXI_ERRM_AWVALID_STABLE// 1078.         - AXI_RECS_AWREADY_MAX_WAIT// 1094.    3) X-Propagation Rules// 1100.         - AXI_ERRM_AWADDR_X// 1111.         - AXI_ERRM_AWBURST_X// 1122.         - AXI_ERRM_AWCACHE_X// 1133.         - AXI_ERRM_AWID_X// 1144.         - AXI_ERRM_AWLEN_X// 1155.         - AXI_ERRM_AWLOCK_X// 1166.         - AXI_ERRM_AWPROT_X// 1177.         - AXI_ERRM_AWSIZE_X// 1188.         - AXI_ERRM_AWVALID_X// 1199.         - AXI_ERRS_AWREADY_X// 1213. // 1214.  AXI Rules: Write Data Channel (*_W*)// 1219.    1) Functional Rules// 1223.         - AXI_ERRM_WDATA_NUM// 1238.         - AXI_ERRM_WDATA_ORDER// 1249.         - AXI_ERRM_WDEPTH// 1261.         - AXI_ERRM_WSTRB// 1272.         - AXI_ERRM_WVALID_RESET// 1285.    2) Handshake Rules// 1289.         - AXI_ERRM_WDATA_STABLE// 1302.         - AXI_ERRM_WID_STABLE// 1315.         - AXI_ERRM_WLAST_STABLE// 1328.         - AXI_ERRM_WSTRB_STABLE// 1341.         - AXI_ERRM_WVALID_STABLE// 1353.         - AXI_RECS_WREADY_MAX_WAIT // 1369.    3) X-Propagation Rules// 1375.         - AXI_ERRM_WDATA_X// 1386.         - AXI_ERRM_WID_X// 1397.         - AXI_ERRM_WLAST_X// 1408.         - AXI_ERRM_WSTRB_X// 1419.         - AXI_ERRM_WVALID_X// 1430.         - AXI_ERRS_WREADY_X// 1444. // 1445.  AXI Rules: Write Response Channel (*_B*)// 1450.    1) Functional Rules// 1454.         - AXI_ERRS_BRESP// 1465.         - AXI_ERRS_BRESP_ALL_DONE_EOS// 1482.         - AXI_ERRS_BRESP_EXOKAY// 1493.         - AXI_ERRS_BVALID_RESET// 1506.    2) Handshake Rules// 1510.         - AXI_ERRS_BID_STABLE// 1523.         - AXI_ERRS_BRESP_STABLE// 1536.         - AXI_ERRS_BVALID_STABLE// 1548.         - AXI_RECM_BREADY_MAX_WAIT // 1564.    3) X-Propagation Rules// 1570.         - AXI_ERRM_BREADY_X// 1581.         - AXI_ERRS_BID_X// 1592.         - AXI_ERRS_BRESP_X// 1603.         - AXI_ERRS_BVALID_X// 1617. // 1618.  AXI Rules: Read Address Channel (*_AR*)// 1623.    1) Functional Rules// 1627.         - AXI_ERRM_ARADDR_BOUNDARY// 1651.         - AXI_ERRM_ARADDR_WRAP_ALIGN// 1663.         - AXI_ERRM_ARBURST// 1675.         - AXI_ERRM_ARCACHE// 1687.         - AXI_ERRM_ARLEN_WRAP// 1702.         - AXI_ERRM_ARLOCK// 1714.         - AXI_ERRM_ARLOCK_END// 1730.         - AXI_ERRM_ARLOCK_ID// 1744.         - AXI_ERRM_ARLOCK_LAST// 1758.         - AXI_ERRM_ARLOCK_START// 1774.         - AXI_ERRM_ARSIZE// 1786.         - AXI_ERRM_ARVALID_RESET// 1798.         - AXI_RECM_ARLOCK_BOUNDARY// 1814.         - AXI_RECM_ARLOCK_CTRL// 1829.         - AXI_RECM_ARLOCK_NUM// 1845.    2) Handshake Rules// 1849.         - AXI_ERRM_ARADDR_STABLE// 1862.         - AXI_ERRM_ARBURST_STABLE// 1875.         - AXI_ERRM_ARCACHE_STABLE// 1888.         - AXI_ERRM_ARID_STABLE// 1901.         - AXI_ERRM_ARLEN_STABLE// 1914.         - AXI_ERRM_ARLOCK_STABLE// 1927.         - AXI_ERRM_ARPROT_STABLE// 1940.         - AXI_ERRM_ARSIZE_STABLE// 1953.         - AXI_ERRM_ARVALID_STABLE// 1965.         - AXI_RECS_ARREADY_MAX_WAIT // 1981.    3) X-Propagation Rules// 1987.         - AXI_ERRM_ARADDR_X// 1998.         - AXI_ERRM_ARBURST_X// 2009.         - AXI_ERRM_ARCACHE_X// 2020.         - AXI_ERRM_ARID_X// 2031.         - AXI_ERRM_ARLEN_X// 2042.         - AXI_ERRM_ARLOCK_X// 2053.         - AXI_ERRM_ARPROT_X// 2064.         - AXI_ERRM_ARSIZE_X// 2075.         - AXI_ERRM_ARVALID_X// 2086.         - AXI_ERRS_ARREADY_X// 2100. // 2101.  AXI Rules: Read Data Channel (*_R*)// 2106.    1) Functional Rules// 2110.         - AXI_ERRS_RDATA_NUM// 2124.         - AXI_ERRS_RLAST_ALL_DONE_EOS// 2141.         - AXI_ERRS_RID// 2154.         - AXI_ERRS_RRESP_EXOKAY// 2166.         - AXI_ERRS_RVALID_RESET// 2179.    2) Handshake Rules// 2183.         - AXI_ERRS_RDATA_STABLE// 2196.         - AXI_ERRS_RID_STABLE// 2209.         - AXI_ERRS_RLAST_STABLE// 2222.         - AXI_ERRS_RRESP_STABLE// 2235.         - AXI_ERRS_RVALID_STABLE// 2247.         - AXI_RECM_RREADY_MAX_WAIT // 2263.    3) X-Propagation Rules// 2269.         - AXI_ERRM_RREADY_X// 2280.         - AXI_ERRS_RID_X// 2291.         - AXI_ERRS_RLAST_X// 2302.         - AXI_ERRS_RRESP_X// 2313.         - AXI_ERRS_RVALID_X// 2327. // 2328.  AXI Rules: Low Power Interface (*_C*)// 2333.    1) Functional Rules (none for Low Power signals)// 2338.    2) Handshake Rules (asynchronous to ACLK)// 2345.         - AXI_ERRL_CSYSACK_FALL// 2356.         - AXI_ERRL_CSYSACK_RISE// 2367.         - AXI_ERRL_CSYSREQ_FALL// 2378.         - AXI_ERRL_CSYSREQ_RISE// 2390.    3) X-Propagation Rules// 2396.         - AXI_ERRL_CACTIVE_X// 2407.         - AXI_ERRL_CSYSACK_X// 2418.         - AXI_ERRL_CSYSREQ_X// 2432. // 2433.  AXI Rules: Exclusive Access// 2441.    1) Functional Rules// 2443.         -// 2446.         - AXI_ERRM_EXCL_ALIGN// 2467.         - AXI_ERRM_EXCL_LEN// 2485.         - AXI_RECM_EXCL_MATCH// 2507.         - AXI_ERRM_EXCL_MAX// 2528.         - AXI_RECM_EXCL_PAIR// 2543. // 2544.  AXI Rules: USER_* Rules (extension to AXI)// 2552.    1) Functional Rules (none for USER signals)// 2557.    2) Handshake Rules// 2561.         - AXI_ERRM_AWUSER_STABLE// 2574.         - AXI_ERRM_WUSER_STABLE// 2587.         - AXI_ERRS_BUSER_STABLE// 2600.         - AXI_ERRM_ARUSER_STABLE// 2613.         - AXI_ERRS_RUSER_STABLE// 2627.    3) X-Propagation Rules// 2633.         - AXI_ERRM_AWUSER_X// 2644.         - AXI_ERRM_WUSER_X// 2655.         - AXI_ERRS_BUSER_X// 2666.         - AXI_ERRM_ARUSER_X// 2677.         - AXI_ERRS_RUSER_X// 2691. // 2692.  Auxiliary Logic// 2697.    1) Rules for Auxiliary Logic// 2702.       a) Master (AUXM*)// 2706.         - AXI_AUXM_DATA_WIDTH// 2721.         - AXI_AUXM_RCAM_OVERFLOW// 2732.         - AXI_AUXM_RCAM_UNDERFLOW// 2743.         - AXI_AUXM_WCAM_OVERFLOW// 2754.         - AXI_AUXM_WCAM_UNDERFLOW// 2766.    2) Combinatorial Logic// 2771.       a) Masks// 2775.            - AlignMaskR// 2797.            - AlignMaskW// 2819.            - ExclMask// 2827.            - WdataMask// 2841.       b) Increments// 2845.            - ArAddrIncr// 2853.            - AwAddrIncr// 2862.       c) Conversions// 2866.            - ArLenInBytes// 2874.            - ArSizeInBits// 2882.            - AwSizeInBits// 2891.       d) Other// 2895.            - ArExclPending// 2901.            - ArLenPending// 2908.    3) EXCL & LOCK Accesses// 2912.         - Exclusive Access Storage// 2960.         - Lock State Machine// 3003.         - Lock Storage// 3026.         - Lock Arrays// 3094.    4) Content addressable memories (CAMs)// 3098.         - Read CAMSs (CAM+Shift)// 3205.         - Write CAMs (CAM+Shift)// 3501.         - Write Depth array// 3540.    5) Verilog Functions// 3544.         - CheckBurst// 3643.         - CheckStrb// 3682. // 3683.  End of File// 3688.    1) Clear Verilog Defines// 3710.    2) End of module//----------------------------------------------------------------------------`timescale 1ns/1ns//------------------------------------------------------------------------------// AXI Standard Defines//------------------------------------------------------------------------------`include "Axi.v"//------------------------------------------------------------------------------// INDEX: Module: AxiPC//------------------------------------------------------------------------------module AxiPC  (   // Global Signals   ACLK,   ARESETn,   // Write Address Channel   AWID,   AWADDR,   AWLEN,   AWSIZE,   AWBURST,   AWLOCK,   AWCACHE,   AWPROT,   AWUSER,   AWVALID,   AWREADY,   // Write Channel   WID,   WLAST,   WDATA,   WSTRB,   WUSER,   WVALID,   WREADY,   // Write Response Channel   BID,   BRESP,   BUSER,   BVALID,   BREADY,   // Read Address Channel   ARID,   ARADDR,   ARLEN,   ARSIZE,   ARBURST,   ARLOCK,   ARCACHE,   ARPROT,   ARUSER,   ARVALID,   ARREADY,   // Read Channel   RID,   RLAST,   RDATA,   RRESP,   RUSER,   RVALID,   RREADY,   // Low power interface

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -