没有合适的资源?快使用搜索试试~ 我知道了~
首页2001 IEEE Verilog标准修订版:硬件描述语言详解
IEEE 1364-2001 Verilog标准,全称为"IEEE Standard Verilog Hardware Description Language",是由美国电气与电子工程师协会(IEEE)发布的一项关键的硬件描述语言规范。该标准是对1995年版IEEE 1364的修订版本,旨在提供更加完善和标准化的方法来设计、描述和验证数字电路系统。Verilog是一种广泛应用于电子设计自动化(EDA)领域的高级硬件描述语言,它允许工程师以文本形式描述硬件系统的逻辑结构,包括组合逻辑、时序逻辑、模块化设计、接口描述等。
该标准的主要内容包括但不限于:
1. **语法和语义**:定义了Verilog的编程规则,如数据类型、操作符、流程控制语句、模块化结构(模块、端口声明、参数等)以及信号行为的描述方式。
2. **数据类型和存储器**:支持多种数据类型,如整型、实型、逻辑型,以及不同类型的存储器(寄存器、RAM、ROM等),并规定了它们的使用方法和特性。
3. **设计模块化**:鼓励设计师使用模块化思想,通过函数库和子模块重用代码,提高设计的可维护性和灵活性。
4. **定时分析**:定义了事件驱动的时序模型,允许精确描述信号的时序关系,这对于同步和异步电路设计至关重要。
5. **仿真和验证**:标准提供了模拟和行为仿真工具,用于测试和调试设计,确保其功能正确性。
6. **兼容性和互操作性**:IEEE 1364-2001定义了与其他Verilog版本(如IEEE 1364-1995)的兼容性,以及与硬件描述语言的互操作性。
7. **版权和许可**:强调所有复制和使用本标准必须获得出版商的书面许可,体现了知识产权保护的重要性。
通过阅读和遵循IEEE 1364-2001 Verilog标准,工程师可以确保他们的设计遵循行业最佳实践,提高工作效率,同时也能促进整个电子设计产业的规范化和一致性。对于电子工程学生和从业者来说,掌握这个标准是进行高级硬件设计的关键。如果你是TIANJIN UNIVERSITY的用户,并于2020年7月19日下载了这份标准,那么在使用过程中请注意相关限制条件。
Copyright © 2001 IEEE. All rights reserved. xv
15.3.4 $width ....................................................................................................................... 255
15.3.5 $period ...................................................................................................................... 256
15.3.6 $nochange ................................................................................................................. 257
15.4 Edge-control specifiers .......................................................................................................... 258
15.5 Notifiers: user-defined responses to timing violations .......................................................... 260
15.5.1 Requirements for accurate simulation ...................................................................... 262
15.5.2 Conditions in negative timing checks....................................................................... 264
15.5.3 Notifiers in negative timing checks .......................................................................... 266
15.5.4 Option behavior ........................................................................................................ 266
15.6 Enabling timing checks with conditioned events................................................................... 266
15.7 Vector signals in timing checks............................................................................................. 267
15.8 Negative timing checks.......................................................................................................... 268
16. Backannotation using the Standard Delay Format (SDF)................................................................ 270
16.1 The SDF annotator................................................................................................................. 270
16.2 Mapping of SDF constructs to Verilog.................................................................................. 270
16.2.1 Mapping of SDF delay constructs to Verilog declarations....................................... 270
16.2.2 Mapping of SDF timing check constructs to Verilog............................................... 272
16.2.3 SDF annotation of specparams ................................................................................. 273
16.2.4 SDF annotation of interconnect delays..................................................................... 274
16.3 Multiple annotations .............................................................................................................. 275
16.4 Multiple SDF files ................................................................................................................. 276
16.5 Pulse limit annotation ............................................................................................................ 276
16.6 SDF to Verilog delay value mapping..................................................................................... 277
17. System tasks and functions.............................................................................................................. 278
17.1 Display system tasks.............................................................................................................. 278
17.1.1 The display and write tasks....................................................................................... 279
17.1.2 Strobed monitoring ................................................................................................... 286
17.1.3 Continuous monitoring ............................................................................................. 287
17.2 File input-output system tasks and functions......................................................................... 287
17.2.1 Opening and closing files.......................................................................................... 287
17.2.2 File output system tasks............................................................................................ 289
17.2.3 Formatting data to a string........................................................................................ 290
17.2.4 Reading data from a file............................................................................................ 291
17.2.5 File positioning ......................................................................................................... 295
17.2.6 Flushing output ......................................................................................................... 295
17.2.7 I/O error status .......................................................................................................... 295
17.2.8 Loading memory data from a file ............................................................................. 296
17.2.9 Loading timing data from an SDF file...................................................................... 297
17.3 Timescale system tasks.......................................................................................................... 298
17.3.1 $printtimescale.......................................................................................................... 298
17.3.2 $timeformat............................................................................................................... 299
17.4 Simulation control system tasks ............................................................................................ 302
17.4.1 $finish ....................................................................................................................... 302
17.4.2 $stop.......................................................................................................................... 302
17.5 PLA modeling system tasks................................................................................................... 303
17.5.1 Array types................................................................................................................ 303
17.5.2 Array logic types....................................................................................................... 304
17.5.3 Logic array personality declaration and loading....................................................... 304
17.5.4 Logic array personality formats................................................................................ 304
Authorized licensed use limited to: TIANJIN UNIVERSITY. Downloaded on July 19,2020 at 03:19:24 UTC from IEEE Xplore. Restrictions apply.
xvi Copyright © 2001 IEEE. All rights reserved.
17.6 Stochastic analysis tasks ........................................................................................................ 307
17.6.1 $q_initialize............................................................................................................... 307
17.6.2 $q_add....................................................................................................................... 308
17.6.3 $q_remove................................................................................................................. 308
17.6.4 $q_full....................................................................................................................... 308
17.6.5 $q_exam.................................................................................................................... 308
17.6.6 Status codes............................................................................................................... 309
17.7 Simulation time system functions.......................................................................................... 309
17.7.1 $time ......................................................................................................................... 309
17.7.2 $stime........................................................................................................................ 310
17.7.3 $realtime ................................................................................................................... 310
17.8 Conversion functions ............................................................................................................. 311
17.9 Probabilistic distribution functions........................................................................................ 312
17.9.1 $random function...................................................................................................... 312
17.9.2 $dist_ functions......................................................................................................... 313
17.9.3 Algorithm for probabilistic distribution functions.................................................... 314
17.10 Command line input............................................................................................................... 321
17.10.1 $test$plusargs (string)............................................................................................... 322
17.10.2 $value$plusargs (user_string, variable) .................................................................... 322
18. Value change dump (VCD) files...................................................................................................... 325
18.1 Creating the four state value change dump file ..................................................................... 325
18.1.1 Specifying the name of the dump file ($dumpfile)................................................... 325
18.1.2 Specifying the variables to be dumped ($dumpvars)................................................ 326
18.1.3 Stopping and resuming the dump ($dumpoff/$dumpon).......................................... 327
18.1.4 Generating a checkpoint ($dumpall)......................................................................... 328
18.1.5 Limiting the size of the dump file ($dumplimit) ...................................................... 328
18.1.6 Reading the dump file during simulation ($dumpflush)........................................... 329
18.2 Format of the four state VCD file.......................................................................................... 330
18.2.1 Syntax of the four state VCD file ............................................................................. 330
18.2.2 Formats of variable values........................................................................................ 332
18.2.3 Description of keyword commands .......................................................................... 333
18.2.4 Four state VCD file format example......................................................................... 339
18.3 Creating the extended value change dump file...................................................................... 340
18.3.1 Specifying the dumpfile name and the ports to be dumped ($dumpports)............... 340
18.3.2 Stopping and resuming the dump ($dumpportsoff/$dumpportson).......................... 341
18.3.3 Generating a checkpoint ($dumpportsall)................................................................. 342
18.3.4 Limiting the size of the dump file ($dumpportslimit) .............................................. 342
18.3.5 Reading the dump file during simulation ($dumpportsflush)................................... 343
18.3.6 Description of keyword commands .......................................................................... 343
18.3.7 General rules for extended VCD system tasks ......................................................... 344
18.4 Format of the extended VCD file........................................................................................... 344
18.4.1 Syntax of the extended VCD file.............................................................................. 344
18.4.2 Extended VCD node information ............................................................................. 346
18.4.3 Value changes........................................................................................................... 348
18.4.4 Extended VCD file format example ......................................................................... 349
19. Compiler directives.......................................................................................................................... 351
19.1 `celldefine and `endcelldefine................................................................................................ 351
19.2 `default_nettype ..................................................................................................................... 351
Authorized licensed use limited to: TIANJIN UNIVERSITY. Downloaded on July 19,2020 at 03:19:24 UTC from IEEE Xplore. Restrictions apply.
Copyright © 2001 IEEE. All rights reserved. xvii
19.3 `define and `undef.................................................................................................................. 352
19.3.1 `define ....................................................................................................................... 352
19.3.2 `undef........................................................................................................................ 354
19.4 `ifdef, `else, `elsif, `endif, `ifndef .......................................................................................... 354
19.5 `include .................................................................................................................................. 358
19.6 `resetall................................................................................................................................... 358
19.7 `line ........................................................................................................................................ 358
19.8 `timescale............................................................................................................................... 359
19.9 `unconnected_drive and `nounconnected_drive .................................................................... 361
20. PLI overview.................................................................................................................................... 362
20.1 PLI purpose and history (informative)................................................................................... 362
20.2 User-defined system task or function names ......................................................................... 362
20.3 User-defined system task or function types........................................................................... 363
20.4 Overriding built-in system task and function names ............................................................. 363
20.5 User-supplied PLI applications.............................................................................................. 363
20.6 PLI interface mechanism ....................................................................................................... 363
20.7 User-defined system task and function arguments ................................................................ 364
20.8 PLI include files..................................................................................................................... 364
20.9 PLI Memory Restrictions....................................................................................................... 364
21. PLI TF and ACC interface mechanism............................................................................................ 365
21.1 User-supplied PLI applications.............................................................................................. 365
21.1.1 The sizetf class of PLI applications .......................................................................... 365
21.1.2 The checktf class of PLI applications....................................................................... 365
21.1.3 The calltf class of PLI applications........................................................................... 366
21.1.4 The misctf class of PLI applications......................................................................... 366
21.1.5 The consumer class of PLI applications ................................................................... 366
21.2 Associating PLI applications to a class and system task/function name ............................... 366
21.3 PLI application arguments..................................................................................................... 367
21.3.1 The data C argument................................................................................................. 367
21.3.2 The reason C argument............................................................................................. 367
21.3.3 The paramvc C argument.......................................................................................... 368
22. Using ACC routines......................................................................................................................... 369
22.1 ACC routine definition .......................................................................................................... 369
22.2 The handle data type.............................................................................................................. 369
22.3 Using ACC routines............................................................................................................... 370
22.3.1 Header files............................................................................................................... 370
22.3.2 Initializing ACC routines.......................................................................................... 370
22.3.3 Exiting ACC routines................................................................................................ 370
22.4 List of ACC routines by major category................................................................................ 370
22.4.1 Fetch routines............................................................................................................ 371
22.4.2 Handle routines......................................................................................................... 372
22.4.3 Next routines............................................................................................................. 373
22.4.4 Modify routines......................................................................................................... 375
22.4.5 Miscellaneous routines.............................................................................................. 375
22.4.6 VCL routines............................................................................................................. 376
22.5 Accessible objects.................................................................................................................. 376
22.5.1 ACC routines that operate on module instances ...................................................... 378
22.5.2 ACC routines that operate on module ports ............................................................. 378
Authorized licensed use limited to: TIANJIN UNIVERSITY. Downloaded on July 19,2020 at 03:19:24 UTC from IEEE Xplore. Restrictions apply.
xviii Copyright © 2001 IEEE. All rights reserved.
22.5.3 ACC routines that operate on bits of a port ............................................................. 379
22.5.4 ACC routines that operate on module paths or data paths ....................................... 379
22.5.5 ACC routines that operate on intermodule paths ..................................................... 380
22.5.6 ACC routines that operate on top-level modules...................................................... 380
22.5.7 ACC routines that operate on primitive instances .................................................... 380
22.5.8 ACC routines that operate on primitive terminals.................................................... 381
22.5.9 ACC routines that operate on nets ............................................................................ 381
22.5.10 ACC routines that operate on reg types.................................................................... 382
22.5.11 ACC routines that operate on integer, real, and time variables ................................ 382
22.5.12 ACC routines that operate on named events............................................................. 382
22.5.13 ACC routines that operate on parameters and specparams....................................... 383
22.5.14 ACC routines that operate on timing checks ............................................................ 383
22.5.15 ACC routines that operate on timing check terminals.............................................. 383
22.5.16 ACC routines that operate on user-defined system task/function arguments........... 384
22.6 ACC routine types and fulltypes............................................................................................ 384
22.7 Error handling........................................................................................................................ 387
22.7.1 Suppressing error messages...................................................................................... 388
22.7.2 Enabling warnings .................................................................................................... 388
22.7.3 Testing for errors....................................................................................................... 388
22.7.4 Example .................................................................................................................... 388
22.7.5 Exception values....................................................................................................... 389
22.8 Reading and writing delay values.......................................................................................... 389
22.8.1 Number of delays for Verilog HDL objects ............................................................. 390
22.8.2 ACC routine configuration ....................................................................................... 390
22.8.3 Determining the number of arguments for ACC delay routines............................... 391
22.9 String handling....................................................................................................................... 395
22.9.1 ACC routines share an internal string buffer............................................................ 395
22.9.2 String buffer reset ..................................................................................................... 396
22.9.3 Preserving string values............................................................................................ 397
22.9.4 Example of preserving string values......................................................................... 397
22.10 Using VCL ACC routines...................................................................................................... 397
22.10.1 VCL objects .............................................................................................................. 398
22.10.2 The VCL record definition........................................................................................ 398
22.10.3 Effects of acc_initialize() and acc_close() on VCL consumer routines ................... 401
22.10.4 An example of using VCL ACC routines................................................................. 401
23. ACC routine definitions................................................................................................................... 404
24. Using TF routines ............................................................................................................................ 579
24.1 TF routine definition.............................................................................................................. 579
24.2 TF routine system task/function arguments........................................................................... 579
24.3 Reading and writing system task/function argument values.................................................. 579
24.3.1 Reading and writing 2-state parameter argument values.......................................... 579
24.3.2 Reading and writing 4-state values........................................................................... 579
24.3.3 Reading and writing strength values......................................................................... 580
24.3.4 Reading and writing to memories............................................................................. 580
24.3.5 Reading and writing string values............................................................................. 580
24.3.6 Writing return values of user-defined functions....................................................... 580
24.3.7 Writing the correct C data types ............................................................................... 580
24.4 Value change detection.......................................................................................................... 581
24.5 Simulation time...................................................................................................................... 581
24.6 Simulation synchronization ................................................................................................... 581
24.7 Instances of user-defined tasks or functions.......................................................................... 582
Authorized licensed use limited to: TIANJIN UNIVERSITY. Downloaded on July 19,2020 at 03:19:24 UTC from IEEE Xplore. Restrictions apply.
Copyright © 2001 IEEE. All rights reserved. xix
24.8 Module and scope instance names......................................................................................... 582
24.9 Saving information from one system TF call to the next....................................................... 582
24.10 Displaying output messages................................................................................................... 582
24.11 Stopping and finishing........................................................................................................... 582
25. TF routine definitions ...................................................................................................................... 583
26. Using VPI routines........................................................................................................................... 659
26.1 VPI system tasks and functions ............................................................................................. 659
26.2 The VPI interface................................................................................................................... 659
26.2.1 VPI callbacks ............................................................................................................ 659
26.2.2 VPI access to Verilog HDL objects and simulation objects..................................... 660
26.2.3 Error handling........................................................................................................... 660
26.2.4 Function availability ................................................................................................. 660
26.2.5 Traversing expressions.............................................................................................. 660
26.3 VPI object classifications....................................................................................................... 661
26.3.1 Accessing object relationships and properties.......................................................... 662
26.3.2 Object type properties............................................................................................... 663
26.3.3 Object file and line properties................................................................................... 663
26.3.4 Delays and values ..................................................................................................... 664
26.4 List of VPI routines by functional category........................................................................... 664
26.5 Key to data model diagrams .................................................................................................. 666
26.5.1 Diagram key for objects and classes ........................................................................ 667
26.5.2 Diagram key for accessing properties....................................................................... 667
26.5.3 Diagram key for traversing relationships ................................................................. 668
26.6 Object data model diagrams................................................................................................... 669
27. VPI routine definitions..................................................................................................................... 700
Annex A (normative) Formal syntax definition........................................................................................... 761
A.1 Source text ............................................................................................................................... 761
A.1.1 Library source text ........................................................................................................ 761
A.1.2 Configuration source text.............................................................................................. 761
A.1.3 Module and primitive source text ................................................................................. 762
A.1.4 Module parameters and ports........................................................................................ 762
A.1.5 Module items................................................................................................................. 762
A.2 Declarations ............................................................................................................................. 763
A.2.1 Declaration types........................................................................................................... 763
A.2.2 Declaration data types................................................................................................... 765
A.2.3 Declaration lists............................................................................................................. 765
A.2.4 Declaration assignments ............................................................................................... 766
A.2.5 Declaration ranges......................................................................................................... 766
A.2.6 Function declarations .................................................................................................... 766
A.2.7 Task declarations........................................................................................................... 766
A.2.8 Block item declarations................................................................................................. 767
A.3 Primitive instances................................................................................................................... 768
A.3.1 Primitive instantiation and instances............................................................................. 768
A.3.2 Primitive strengths ........................................................................................................ 768
A.3.3 Primitive terminals........................................................................................................ 769
A.3.4 Primitive gate and switch types .................................................................................... 769
Authorized licensed use limited to: TIANJIN UNIVERSITY. Downloaded on July 19,2020 at 03:19:24 UTC from IEEE Xplore. Restrictions apply.
剩余878页未读,继续阅读
2020-02-06 上传
2018-07-15 上传
2021-12-27 上传
2011-03-06 上传
2019-01-21 上传
2008-03-12 上传
2020-09-20 上传
2021-04-14 上传
TechDiary
- 粉丝: 133
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 掌握JSON:开源项目解读与使用
- Ruby嵌入V8:在Ruby中直接运行JavaScript代码
- ThinkErcise: 20项大脑训练练习增强记忆与专注力
- 深入解析COVID-19疫情对HTML领域的影响
- 实时体育更新管理应用程序:livegame
- APPRADIO PRO:跨平台内容创作的CRX插件
- Spring Boot数据库集成与用户代理分析工具
- DNIF简易安装程序快速入门指南
- ActiveMQ AMQP客户端库版本1.8.1功能与测试
- 基于UVM 1.1的I2C Wishbone主设备实现指南
- Node.js + Express + MySQL项目教程:测试数据库连接
- tumbasUpk在线商店应用的UPK技术与汉港打码机结合
- 掌握可控金字塔分解与STSIM图像指标技术
- 浏览器插件:QR码与短链接即时转换工具
- Vercel部署GraphQL服务的实践指南
- 使用jsInclude动态加载JavaScript文件的方法与实践
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功