没有合适的资源?快使用搜索试试~ 我知道了~
首页IEEE Std 1800-2017:SystemVerilog统一硬件设计与验证语言标准
IEEE Std 1800-2017:SystemVerilog统一硬件设计与验证语言标准
需积分: 10 0 下载量 191 浏览量
更新于2024-07-17
收藏 10.76MB PDF 举报
"IEEE Standard for SystemVerilog - IEEE1800-2017, Unified Hardware Design, Specification, and Verification Language, UVM验证"
SystemVerilog是集成电路设计和验证领域的一个重要标准,由IEEE(电气和电子工程师协会)发布。IEEE Std 1800™-2017是该标准的最新版本,它更新了2012年的IEEE Std 1800-2012。这个标准旨在提供一种统一的语言,用于硬件设计、规范和验证,大大提高了设计团队之间的协同效率。
SystemVerilog的主要特点包括:
1. **面向对象编程**:SystemVerilog引入了类的概念,允许设计者创建复杂的验证环境,定义可重用的验证组件。这些组件可以具有继承、封装和多态性等面向对象特性,从而提高代码复用和维护性。
2. **并行处理**:SystemVerilog支持并发执行的进程,通过fork/join结构,使设计者能够描述并行系统的行为。这使得在验证过程中模拟多个独立的行为成为可能。
3. **接口**:SystemVerilog中的接口允许定义一组相关的信号和方法,为模块间通信提供了一种结构化的方式。这有助于减少设计错误并提高代码的清晰度。
4. **约束随机化**:SystemVerilog提供了强大的随机化功能,允许用户定义随机数据生成的规则。这使得测试激励的生成更加灵活,可以覆盖更广泛的测试情况。
5. **覆盖率**:系统级的覆盖度度量是SystemVerilog的重要组成部分,它允许设计者跟踪和评估验证的完整性,确保设计满足所有的规格要求。
6. **门级和行为级建模**:SystemVerilog支持从抽象的高层次行为模型到具体的门级模型的无缝集成,为混合级别验证提供了便利。
7. **验证方法学**:UVM(通用验证方法学)是基于SystemVerilog的,它提供了一套验证框架和库,简化了复杂数字系统的验证工作。UVM包含了预定义的类库,如代理、环境、监视器和激励生成器,它们共同构建了一个可扩展的验证环境。
UVM的核心优势在于其模块化和可重用性。通过遵循UVM的方法学,设计团队可以快速构建和定制验证环境,同时利用已有的验证组件,缩短验证周期。此外,UVM的标准化也促进了不同团队之间的交流和合作。
IEEE Std 1800-2017(SystemVerilog)是现代SoC(系统级芯片)设计和验证的关键工具,它提供了一种强大而全面的语言,用于描述、验证和管理复杂的设计项目。而UVM作为SystemVerilog的一部分,进一步强化了这一标准在验证领域的应用,提升了整个行业的效率和一致性。
15
Copyright © 2018 IEEE. All rights reserved.
19.6 Defining cross coverage....................................................................................................... 569
19.7 Specifying coverage options................................................................................................578
19.8 Predefined coverage methods .............................................................................................. 582
19.9 Predefined coverage system tasks and system functions..................................................... 585
19.10 Organization of option and type_option members .............................................................. 585
19.11 Coverage computation ......................................................................................................... 586
20. Utility system tasks and system functions ...................................................................................... 591
20.1 General................................................................................................................................. 591
20.2 Simulation control system tasks .......................................................................................... 592
20.3 Simulation time system functions........................................................................................ 592
20.4 Timescale system tasks........................................................................................................ 594
20.5 Conversion functions ........................................................................................................... 597
20.6 Data query functions............................................................................................................ 598
20.7 Array query functions .......................................................................................................... 600
20.8 Math functions ..................................................................................................................... 603
20.9 Bit vector system functions.................................................................................................. 604
20.10 Severity tasks ....................................................................................................................... 605
20.11 Elaboration system tasks...................................................................................................... 606
20.12 Assertion control system tasks............................................................................................. 608
20.13 Sampled value system functions.......................................................................................... 614
20.14 Coverage system functions .................................................................................................. 615
20.15 Probabilistic distribution functions......................................................................................615
20.16 Stochastic analysis tasks and functions ............................................................................... 617
20.17 Programmable logic array modeling system tasks .............................................................. 619
20.18 Miscellaneous tasks and functions....................................................................................... 623
21. Input/output system tasks and system functions.............................................................................624
21.1 General................................................................................................................................. 624
21.2 Display system tasks............................................................................................................ 624
21.3 File input/output system tasks and system functions........................................................... 635
21.4 Loading memory array data from a file ............................................................................... 645
21.5 Writing memory array data to a file..................................................................................... 649
21.6 Command line input............................................................................................................. 650
21.7 Value change dump (VCD) files ......................................................................................... 653
22. Compiler directives......................................................................................................................... 674
22.1 General.....................................................................................................................
...
......... 674
22.2 Overview ............................................................................................................................. 674
22.3 `resetall................................................................................................................................. 674
22.4 `include ................................................................................................................................ 675
22.5 `define, `undef, and `undefineall .........................................................................................675
22.6 `ifdef, `else, `elsif, `endif, `ifndef ........................................................................................ 681
22.7 `timescale............................................................................................................................. 684
22.8 `default_nettype ................................................................................................................... 685
22.9 `unconnected_drive and `nounconnected_drive .................................................................. 686
Authorized licensed use limited to: Huazhong University of Science and Technology. Downloaded on August 22,2018 at 07:00:22 UTC from IEEE Xplore. Restrictions apply.
16
Copyright © 2018 IEEE. All rights reserved.
22.10 `celldefine and `endcelldefine.............................................................................................. 686
22.11 `pragma ................................................................................................................................ 686
22.12 `line ...................................................................................................................................... 687
22.13 `__FILE__ and `__LINE__ ................................................................................................. 688
22.14 `begin_keywords, `end_keywords ....................................................................................... 689
Part Two: Hierarchy Constructs
23. Modules and hierarchy.................................................................................................................... 696
23.1 General................................................................................................................................. 696
23.2 Module definitions............................................................................................................... 696
23.3 Module instances (hierarchy)...............................................................................................708
23.4 Nested modules.................................................................................................................... 719
23.5 Extern modules .................................................................................................................... 720
23.6 Hierarchical names .............................................................................................................. 721
23.7 Member selects and hierarchical names .............................................................................. 725
23.8 Upwards name referencing .................................................................................................. 727
23.9 Scope rules .......................................................................................................................... 729
23.10 Overriding module parameters ............................................................................................ 731
23.11 Binding auxiliary code to scopes or instances..................................................................... 738
24. Programs ......................................................................................................................................... 742
24.1 General................................................................................................................................. 742
24.2 Overview.............................................................................................................................. 742
24.3 The program construct ......................................................................................................... 742
24.4 Eliminating testbench races ................................................................................................. 746
24.5 Blocking tasks in cycle/event mode..................................................................................... 746
24.6 Programwide space and anonymous programs.................................................................... 747
24.7 Program control tasks .......................................................................................................... 747
25. Interfaces......................................................................................................................................... 748
25.1 General................................................................................................................................. 748
25.2 Overview.............................................................................................................................. 748
25.3 Interface syntax.................................................................................................................... 749
25.4 Ports in interfaces........................................................................................................
...
...... 753
25.5 Modports.............................................................................................................................. 754
25.6 Interfaces and specify blocks............................................................................................... 760
25.7 Tasks and functions in interfaces......................................................................................... 761
25.8 Parameterized interfaces ...................................................................................................... 767
25.9 Virtual interfaces.................................................................................................................. 769
25.10 Access to interface objects................................................................................................... 774
26. Packages.......................................................................................................................................... 775
26.1 General................................................................................................................................. 775
26.2 Package declarations............................................................................................................ 775
Authorized licensed use limited to: Huazhong University of Science and Technology. Downloaded on August 22,2018 at 07:00:22 UTC from IEEE Xplore. Restrictions apply.
17
Copyright © 2018 IEEE. All rights reserved.
26.3 Referencing data in packages .............................................................................................. 776
26.4 Using packages in module headers...................................................................................... 780
26.5 Search order rules ................................................................................................................ 781
26.6 Exporting imported names from packages .......................................................................... 783
26.7 The std built-in package....................................................................................................... 784
27. Generate constructs......................................................................................................................... 786
27.1 General................................................................................................................................. 786
27.2 Overview.............................................................................................................................. 786
27.3 Generate construct syntax.................................................................................................... 786
27.4 Loop generate constructs ..................................................................................................... 788
27.5 Conditional generate constructs........................................................................................... 792
27.6 External names for unnamed generate blocks ..................................................................... 795
28. Gate-level and switch-level modeling ............................................................................................ 797
28.1 General................................................................................................................................. 797
28.2 Overview.............................................................................................................................. 797
28.3 Gate and switch declaration syntax ..................................................................................... 797
28.4 and, nand, nor, or, xor, and xnor gates................................................................................. 803
28.5 buf and not gates .................................................................................................................. 804
28.6 bufif1, bufif0, notif1, and notif0 gates................................................................................. 805
28.7 MOS switches ...................................................................................................................... 806
28.8 Bidirectional pass switches.................................................................................................. 807
28.9 CMOS switches ................................................................................................................... 808
28.10 pullup and pulldown sources ...............................................................................................809
28.11 Logic strength modeling ...................................................................................................... 809
28.12 Strengths and values of combined signals ........................................................................... 811
28.13 Strength reduction by nonresistive devices ......................................................................... 823
28.14 Strength reduction by resistive devices ............................................................................... 823
28.15 Strengths of net types........................................................................................................... 823
28.16 Gate and net delays .............................................................................................................. 824
29. User-defined primitives .................................................................................................................. 828
29.1 General................................................................................................................................. 828
29.2 Overview.............................................................................................................................. 828
29.3 UDP definition..................................................................................................................... 828
29.4 Combinational UDPs ........................................................................................................... 832
29.5 Level-sensitive sequential UDPs ......................................................................................... 833
29.6 Edge-sensitive sequential UDPs
.
......................................................................................... 833
29.7 Sequential UDP initialization ..............................................................................................834
29.8 UDP instances...................................................................................................................... 836
29.9 Mixing level-sensitive and edge-sensitive descriptions....................................................... 837
29.10 Level-sensitive dominance .................................................................................................. 838
Authorized licensed use limited to: Huazhong University of Science and Technology. Downloaded on August 22,2018 at 07:00:22 UTC from IEEE Xplore. Restrictions apply.
18
Copyright © 2018 IEEE. All rights reserved.
30. Specify blocks................................................................................................................................. 839
30.1 General................................................................................................................................. 839
30.2 Overview.............................................................................................................................. 839
30.3 Specify block declaration..................................................................................................... 839
30.4 Module path declarations..................................................................................................... 840
30.5 Assigning delays to module paths ....................................................................................... 849
30.6 Mixing module path delays and distributed delays ............................................................. 853
30.7 Detailed control of pulse filtering behavior......................................................................... 854
31. Timing checks................................................................................................................................. 863
31.1 General................................................................................................................................. 863
31.2 Overview.............................................................................................................................. 863
31.3 Timing checks using a stability window.............................................................................. 866
31.4 Timing checks for clock and control signals ....................................................................... 873
31.5 Edge-control specifiers ........................................................................................................ 882
31.6 Notifiers: user-defined responses to timing violations ........................................................ 883
31.7 Enabling timing checks with conditioned events ................................................................ 885
31.8 Vector signals in timing checks........................................................................................... 886
31.9 Negative timing checks........................................................................................................ 887
32. Backannotation using the standard delay format............................................................................ 892
32.1 General................................................................................................................................. 892
32.2 Overview.............................................................................................................................. 892
32.3 The SDF annotator............................................................................................................... 892
32.4 Mapping of SDF constructs to SystemVerilog .................................................................... 892
32.5 Multiple annotations ............................................................................................................ 897
32.6 Multiple SDF files ............................................................................................................... 898
32.7 Pulse limit annotation .......................................................................................................... 898
32.8 SDF to SystemVerilog delay value mapping....................................................................... 899
32.9 Loading timing data from an SDF file................................................................................. 900
33. Configuring the contents of a design .............................................................................................. 902
33.1 General................................................................................................................................. 902
33.2 Overview.............................................................................................................................. 902
33.3 Libraries ............................................................................................................................... 903
33.4 Configurations ..................................................................................................................... 905
33.5 Using libraries and configs .................................................................................................. 911
33.6 Configuration examples......................................................................................................
.
912
33.7 Displaying library binding information ............................................................................... 914
33.8 Library mapping examples .................................................................................................. 914
34. Protected envelopes ........................................................................................................................ 917
34.1 General................................................................................................................................. 917
34.2 Overview.............................................................................................................................. 917
Authorized licensed use limited to: Huazhong University of Science and Technology. Downloaded on August 22,2018 at 07:00:22 UTC from IEEE Xplore. Restrictions apply.
19
Copyright © 2018 IEEE. All rights reserved.
34.3 Processing protected envelopes ........................................................................................... 917
34.4 Protect pragma directives..................................................................................................... 919
34.5 Protect pragma keywords..................................................................................................... 921
Part Three: Application Programming Interfaces
35. Direct programming interface......................................................................................................... 938
35.1 General................................................................................................................................. 938
35.2 Overview.............................................................................................................................. 938
35.3 Two layers of DPI................................................................................................................ 939
35.4 Global name space of imported and exported functions...................................................... 940
35.5 Imported tasks and functions ...............................................................................................941
35.6 Calling imported functions .................................................................................................. 948
35.7 Exported functions............................................................................................................... 950
35.8 Exported tasks...................................................................................................................... 951
35.9 Disabling DPI tasks and functions....................................................................................... 951
36. Programming language interface (PLI/VPI) overview................................................................... 953
36.1 General................................................................................................................................. 953
36.2 PLI purpose and history....................................................................................................... 953
36.3 User-defined system task and system function names......................................................... 954
36.4 User-defined system task and system function arguments .................................................. 955
36.5 User-defined system task and system function types .......................................................... 955
36.6 User-supplied PLI applications............................................................................................ 955
36.7 PLI include files................................................................................................................... 955
36.8 VPI sizetf, compiletf, and calltf routines ............................................................................. 955
36.9 PLI mechanism .................................................................................................................... 956
36.10 VPI access to SystemVerilog objects and simulation objects ............................................. 958
36.11 List of VPI routines by functional category......................................................................... 959
36.12 VPI backwards compatibility features and limitations ........................................................ 961
37. VPI object model diagrams............................................................................................................. 966
37.1 General................................................................................................................................. 966
37.2 VPI Handles......................................................................................................................... 966
37.3 VPI object classifications..................................................................................................... 967
37.4 Key to data model diagrams ................................................................................................ 973
37.5 Module ............................................................................................................................... 976
37.6 Interface ............................................................................................................................ 977
37.7 Modport ...................................................
..................................................................
...
...... 977
37.8 Interface task or function declaration ................................................................................. 977
37.9 Program ............................................................................................................................. 978
37.10 Instance ............................................................................................................................... 979
37.11 Instance arrays .................................................................................................................... 981
37.12 Scope ................................................................................................................................... 982
37.13 IO declaration ..................................................................................................................... 983
37.14 Ports .................................................................................................................................... 984
Authorized licensed use limited to: Huazhong University of Science and Technology. Downloaded on August 22,2018 at 07:00:22 UTC from IEEE Xplore. Restrictions apply.
剩余1314页未读,继续阅读
260 浏览量
2021-07-06 上传
2013-01-30 上传
2008-12-23 上传
2019-06-02 上传
2021-05-27 上传
2023-08-24 上传
2023-10-24 上传
2023-10-15 上传
messizdf
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功