دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: الکترونیک: سخت افزار ویرایش: نویسندگان: coll. سری: ناشر: IEEE Computer Society سال نشر: 2005 تعداد صفحات: 590 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 6 مگابایت
در صورت تبدیل فایل کتاب IEEE Standard for Verilog ® Hardware Description Language به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب استاندارد IEEE برای زبان توصیف سخت افزار Verilog® نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
IEEE Standard for Verilog® Hardware Description Language......Page 3
Introduction......Page 5
Participants......Page 6
Contents......Page 9
List of Figures......Page 23
List of Tables......Page 25
List of Syntax Boxes......Page 28
1.2 Conventions used in this standard......Page 31
1.3 Syntactic description......Page 32
1.5 Contents of this standard......Page 33
1.9 Prerequisites......Page 35
2. Normative references......Page 36
3.4 Operators......Page 38
3.5 Numbers......Page 39
3.5.1 Integer constants......Page 40
3.6 Strings......Page 42
3.6.3 Special characters in strings......Page 43
3.7.1 Escaped identifiers......Page 44
3.7.4 Compiler directives......Page 45
3.8.1 Examples......Page 46
3.8.2 Syntax......Page 48
4.2.1 Net declarations......Page 51
4.2.2 Variable declarations......Page 53
4.3.2 Vector net accessibility......Page 54
4.5 Implicit declarations......Page 55
4.6.1 Wire and tri nets......Page 56
4.6.2 Wired nets......Page 57
4.6.3 Trireg net......Page 58
4.6.5 Unresolved nets......Page 61
4.8 Integers, reals, times, and realtimes......Page 62
4.8.2 Conversion......Page 63
4.9.2 reg and variable arrays......Page 64
4.10 Parameters......Page 65
4.10.1 Module parameters......Page 66
4.10.2 Local parameters (localparam)......Page 67
4.10.3 Specify parameters......Page 68
4.11 Name spaces......Page 69
5.1 Operators......Page 71
5.1.1 Operators with real operands......Page 72
5.1.2 Operator precedence......Page 73
5.1.3 Using integer numbers in expressions......Page 74
5.1.5 Arithmetic operators......Page 75
5.1.6 Arithmetic expressions with regs and integers......Page 77
5.1.7 Relational operators......Page 78
5.1.9 Logical operators......Page 79
5.1.10 Bitwise operators......Page 80
5.1.11 Reduction operators......Page 81
5.1.13 Conditional operator......Page 83
5.1.14 Concatenations......Page 84
5.2 Operands......Page 85
5.2.1 Vector bit-select and part-select addressing......Page 86
5.2.2 Array and memory addressing......Page 87
5.2.3 Strings......Page 88
5.3 Minimum, typical, and maximum delay expressions......Page 91
5.4.1 Rules for expression bit lengths......Page 92
5.4.2 Example of expression bit-length problem......Page 93
5.5 Signed expressions......Page 94
5.5.2 Steps for evaluating an expression......Page 95
5.6 Assignments and truncation......Page 96
6.1 Continuous assignments......Page 98
6.1.2 The continuous assignment statement......Page 99
6.1.4 Strength......Page 101
6.2.1 Variable declaration assignment......Page 102
6.2.2 Variable declaration syntax......Page 103
7.1 Gate and switch declaration syntax......Page 104
7.1.2 The drive strength specification......Page 106
7.1.5 The range specification......Page 107
7.1.6 Primitive instance connection list......Page 108
7.2 and, nand, nor, or, xor, and xnor gates......Page 110
7.3 buf and not gates......Page 111
7.4 bufif1, bufif0, notif1, and notif0 gates......Page 112
7.5 MOS switches......Page 113
7.6 Bidirectional pass switches......Page 114
7.7 CMOS switches......Page 115
7.9 Logic strength modeling......Page 116
7.10.1 Combined signals of unambiguous strength......Page 118
7.10.2 Ambiguous strengths: sources and combinations......Page 119
7.10.3 Ambiguous strength signals and unambiguous signals......Page 124
7.10.4 Wired logic net types......Page 128
7.13.2 trireg strength......Page 130
7.14 Gate and net delays......Page 131
7.14.1 min:typ:max delays......Page 132
7.14.2 trireg net charge decay......Page 133
8.1 UDP definition......Page 135
8.1.4 UDP state table......Page 137
8.1.6 Summary of symbols......Page 138
8.2 Combinational UDPs......Page 139
8.4 Edge-sensitive sequential UDPs......Page 140
8.5 Sequential UDP initialization......Page 141
8.6 UDP instances......Page 143
8.7 Mixing level-sensitive and edge-sensitive descriptions......Page 144
8.8 Level-sensitive dominance......Page 145
9.1 Behavioral model overview......Page 146
9.2.1 Blocking procedural assignments......Page 147
9.2.2 The nonblocking procedural assignment......Page 148
9.3 Procedural continuous assignments......Page 152
9.3.1 The assign and deassign procedural statements......Page 153
9.3.2 The force and release procedural statements......Page 154
9.4 Conditional statement......Page 155
9.4.1 If-else-if construct......Page 156
9.5 Case statement......Page 157
9.5.1 Case statement with do-not-cares......Page 158
9.5.2 Constant expression in case statement......Page 159
9.6 Looping statements......Page 160
9.7 Procedural timing controls......Page 161
9.7.2 Event control......Page 162
9.7.3 Named events......Page 163
9.7.5 Implicit event_expression list......Page 164
9.7.7 Intra-assignment timing controls......Page 166
9.8 Block statements......Page 169
9.8.1 Sequential blocks......Page 170
9.8.3 Block names......Page 171
9.8.4 Start and finish times......Page 172
9.9.1 Initial construct......Page 173
9.9.2 Always construct......Page 174
10.2 Tasks and task enabling......Page 175
10.2.1 Task declarations......Page 176
10.2.2 Task enabling and argument passing......Page 177
10.2.3 Task memory usage and concurrent activation......Page 179
10.3 Disabling of named blocks and tasks......Page 180
10.4.1 Function declarations......Page 182
10.4.2 Returning a value from a function......Page 184
10.4.4 Function rules......Page 185
10.4.5 Use of constant functions......Page 186
11.3 The stratified event queue......Page 188
11.4 Verilog simulation reference model......Page 189
11.5 Race conditions......Page 190
11.6.5 Switch (transistor) processing......Page 191
11.6.7 Functions and tasks......Page 192
12.1 Modules......Page 193
12.1.2 Module instantiation......Page 195
12.2 Overriding module parameter values......Page 197
12.2.1 defparam statement......Page 198
12.2.2 Module instance parameter value assignment......Page 200
12.3.1 Port definition......Page 203
12.3.3 Port declarations......Page 204
12.3.5 Connecting module instance ports by ordered list......Page 206
12.3.6 Connecting module instance ports by name......Page 207
12.3.8 Connecting dissimilar ports......Page 208
12.3.10 Net types resulting from dissimilar port connections......Page 209
12.4 Generate constructs......Page 211
12.4.1 Loop generate constructs......Page 213
12.4.2 Conditional generate constructs......Page 216
12.4.3 External names for unnamed generate blocks......Page 220
12.5 Hierarchical names......Page 221
12.6 Upwards name referencing......Page 223
12.7 Scope rules......Page 225
12.8.2 Early resolution of hierarchical names......Page 227
13.1.1 Library notation......Page 229
13.2.1 Specifying libraries-the library map file......Page 230
13.3.1 Basic configuration syntax......Page 232
13.4.1 Precompiling in a single-pass use model......Page 235
13.5 Configuration examples......Page 236
13.5.3 Using cell clause......Page 237
13.6 Displaying library binding information......Page 238
13.7.3 Resolving multiple path specifications......Page 239
14.1 Specify block declaration......Page 241
14.2 Module path declarations......Page 242
14.2.2 Simple module paths......Page 243
14.2.3 Edge-sensitive paths......Page 244
14.2.4 State-dependent paths......Page 245
14.2.5 Full connection and parallel connection paths......Page 249
14.2.7 Module path polarity......Page 250
14.3.1 Specifying transition delays on module paths......Page 252
14.3.2 Specifying x transition delays......Page 254
14.4 Mixing module path delays and distributed delays......Page 255
14.5 Driving wired logic......Page 256
14.6 Detailed control of pulse filtering behavior......Page 258
14.6.1 Specify block control of pulse limit values......Page 259
14.6.4 Detailed pulse control capabilities......Page 260
15.1 Overview......Page 267
15.2 Timing checks using a stability window......Page 270
15.2.1 $setup......Page 271
15.2.2 $hold......Page 272
15.2.3 $setuphold......Page 273
15.2.4 $removal......Page 275
15.2.5 $recovery......Page 276
15.2.6 $recrem......Page 277
15.3 Timing checks for clock and control signals......Page 278
15.3.1 $skew......Page 279
15.3.2 $timeskew......Page 280
15.3.3 $fullskew......Page 282
15.3.4 $width......Page 285
15.3.5 $period......Page 286
15.3.6 $nochange......Page 287
15.4 Edge-control specifiers......Page 288
15.5 Notifiers: user-defined responses to timing violations......Page 289
15.5.1 Requirements for accurate simulation......Page 291
15.5.2 Conditions in negative timing checks......Page 293
15.5.4 Option behavior......Page 294
15.6 Enabling timing checks with conditioned events......Page 295
15.8 Negative timing checks......Page 296
16.2.1 Mapping of SDF delay constructs to Verilog declarations......Page 299
16.2.2 Mapping of SDF timing check constructs to Verilog......Page 301
16.2.3 SDF annotation of specparams......Page 302
16.2.4 SDF annotation of interconnect delays......Page 303
16.3 Multiple annotations......Page 304
16.5 Pulse limit annotation......Page 305
16.6 SDF to Verilog delay value mapping......Page 306
17. System tasks and functions......Page 307
17.1.1 The display and write tasks......Page 308
17.1.2 Strobed monitoring......Page 315
17.2 File input-output system tasks and functions......Page 316
17.2.1 Opening and closing files......Page 317
17.2.2 File output system tasks......Page 318
17.2.3 Formatting data to a string......Page 319
17.2.4 Reading data from a file......Page 320
17.2.5 File positioning......Page 324
17.2.8 Detecting EOF......Page 325
17.2.9 Loading memory data from a file......Page 326
17.2.10 Loading timing data from an SDF file......Page 327
17.3 Timescale system tasks......Page 328
17.3.1 $printtimescale......Page 329
17.3.2 $timeformat......Page 330
17.4.2 $stop......Page 332
17.5.1 Array types......Page 333
17.5.4 Logic array personality formats......Page 334
17.6.3 $q_remove......Page 337
17.6.6 Status codes......Page 338
17.7.2 $stime......Page 339
17.8 Conversion functions......Page 340
17.9.1 $random function......Page 341
17.9.2 $dist_ functions......Page 342
17.9.3 Algorithm for probabilistic distribution functions......Page 343
17.10.1 $test$plusargs (string)......Page 350
17.10.2 $value$plusargs (user_string, variable)......Page 351
17.11.2 Real math functions......Page 353
18.1.1 Specifying name of dump file ($dumpfile)......Page 355
18.1.2 Specifying variables to be dumped ($dumpvars)......Page 356
18.1.3 Stopping and resuming the dump ($dumpoff/$dumpon)......Page 357
18.1.6 Reading dump file during simulation ($dumpflush)......Page 358
18.2 Format of four-state VCD file......Page 359
18.2.1 Syntax of four-state VCD file......Page 360
18.2.2 Formats of variable values......Page 361
18.2.3 Description of keyword commands......Page 362
18.2.4 Four-state VCD file format example......Page 367
18.3.1 Specifying dump file name and ports to be dumped ($dumpports)......Page 368
18.3.2 Stopping and resuming the dump ($dumpportsoff/$dumpportson)......Page 369
18.3.4 Limiting size of dump file ($dumpportslimit)......Page 370
18.3.7 General rules for extended VCD system tasks......Page 371
18.4.1 Syntax of extended VCD file......Page 372
18.4.2 Extended VCD node information......Page 374
18.4.3 Value changes......Page 376
18.4.4 Extended VCD file format example......Page 377
19.2 `default_nettype......Page 379
19.3.1 `define......Page 380
19.4 `ifdef, `else, `elsif, `endif, `ifndef......Page 382
19.6 `resetall......Page 386
19.7 `line......Page 387
19.8 `timescale......Page 388
19.10 `pragma......Page 390
19.11 `begin_keywords, `end_keywords......Page 391
20.1 PLI purpose and history......Page 396
20.5 User-supplied PLI applications......Page 397
20.8 PLI include files......Page 398
21. PLI TF and ACC interface mechanism (deprecated)......Page 399
22. Using ACC routines (deprecated)......Page 400
23. ACC routine definitions (deprecated)......Page 401
24. Using TF routines (deprecated)......Page 402
25. TF routine definitions (deprecated)......Page 403
26.1.2 compiletf VPI application routine......Page 404
26.2.1 VPI callbacks......Page 405
26.2.4 Function availability......Page 406
26.3 VPI object classifications......Page 407
26.3.1 Accessing object relationships and properties......Page 408
26.3.2 Object type properties......Page 409
26.3.4 Delays and values......Page 410
26.4 List of VPI routines by functional category......Page 411
26.5 Key to data model diagrams......Page 413
26.5.2 Diagram key for accessing properties......Page 414
26.5.3 Diagram key for traversing relationships......Page 415
26.6 Object data model diagrams......Page 416
26.6.1 Module......Page 417
26.6.2 Instance arrays......Page 418
26.6.4 IO declaration......Page 419
26.6.5 Ports......Page 420
26.6.6 Nets and net arrays......Page 421
26.6.7 Regs and reg arrays......Page 423
26.6.8 Variables......Page 425
26.6.10 Object range......Page 426
26.6.11 Named event......Page 427
26.6.12 Parameter, specparam......Page 428
26.6.13 Primitive, prim term......Page 429
26.6.14 UDP......Page 430
26.6.16 Intermodule path......Page 431
26.6.18 Task, function declaration......Page 432
26.6.19 Task/function call......Page 433
26.6.20 Frames......Page 434
26.6.22 Net drivers and loads......Page 435
26.6.24 Continuous assignment......Page 436
26.6.25 Simple expressions......Page 437
26.6.26 Expressions......Page 438
26.6.27 Process, block, statement, event statement......Page 439
26.6.30 Event control......Page 440
26.6.34 Forever......Page 441
26.6.36 Case......Page 442
26.6.38 Disable......Page 443
26.6.41 Active time format......Page 444
26.6.42 Attributes......Page 445
26.6.43 Iterator......Page 446
26.6.44 Generates......Page 447
27.1 vpi_chk_error()......Page 448
27.3 vpi_control()......Page 450
27.5 vpi_free_object()......Page 451
27.7 vpi_get_cb_info()......Page 452
27.8 vpi_get_data()......Page 453
27.9 vpi_get_delays()......Page 454
27.10 vpi_get_str()......Page 456
27.11 vpi_get_systf_info()......Page 457
27.12 vpi_get_time()......Page 458
27.14 vpi_get_value()......Page 459
27.15 vpi_get_vlog_info()......Page 465
27.16 vpi_handle()......Page 466
27.17 vpi_handle_by_index()......Page 467
27.19 vpi_handle_by_name()......Page 468
27.21 vpi_iterate()......Page 469
27.22 vpi_mcd_close()......Page 470
27.24 vpi_mcd_name()......Page 471
27.25 vpi_mcd_open()......Page 472
27.26 vpi_mcd_printf()......Page 473
27.28 vpi_printf()......Page 474
27.29 vpi_put_data()......Page 475
27.30 vpi_put_delays()......Page 477
27.32 vpi_put_value()......Page 480
27.33 vpi_register_cb()......Page 483
27.33.1 Simulation event callbacks......Page 484
27.33.2 Simulation time callbacks......Page 488
27.33.3 Simulator action or feature callbacks......Page 490
27.34 vpi_register_systf()......Page 491
27.34.1 System task/function callbacks......Page 492
27.34.2 Initializing VPI system task/function callbacks......Page 493
27.34.3 Registering multiple system tasks and functions......Page 494
27.36 vpi_scan()......Page 495
27.37 vpi_vprintf()......Page 496
28.2 Processing protected envelopes......Page 497
28.2.1 Encryption......Page 498
28.3 Protect pragma directives......Page 499
28.4.3 begin_protected......Page 501
28.4.5 author......Page 502
28.4.8 encrypt_agent_info......Page 503
28.4.9 encoding......Page 504
28.4.11 data_method......Page 505
28.4.12 data_keyname......Page 506
28.4.14 data_decrypt_key......Page 507
28.4.17 digest_key_method......Page 508
28.4.19 digest_public_key......Page 509
28.4.21 digest_method......Page 510
28.4.22 digest_block......Page 511
28.4.25 key_keyname......Page 512
28.4.27 key_block......Page 513
28.4.29 runtime_license......Page 514
28.4.31 reset......Page 515
28.4.32 viewport......Page 516
A.1.3 Module parameters and ports......Page 517
A.1.4 Module items......Page 518
A.2.1 Declaration types......Page 519
A.2.2 Declaration data types......Page 520
A.2.4 Declaration assignments......Page 521
A.2.7 Task declarations......Page 522
A.3.1 Primitive instantiation and instances......Page 523
A.3.4 Primitive gate and switch types......Page 524
A.4.2 Generate construct......Page 525
A.5.3 UDP body......Page 526
A.6.3 Parallel and sequential blocks......Page 527
A.6.5 Timing control statements......Page 528
A.6.9 Task enable statements......Page 529
A.7.4 Specify path delays......Page 530
A.7.5 System timing checks......Page 532
A.8.3 Expressions......Page 534
A.8.4 Primaries......Page 535
A.8.7 Numbers......Page 536
A.9.1 Attributes......Page 537
A.9.3 Identifiers......Page 538
A.9.4 White space......Page 539
Annex B (normative) List of keywords......Page 540
C.1 $countdrivers......Page 541
C.2 $getpattern......Page 542
C.5 $list......Page 543
C.7 $reset, $reset_count, and $reset_value......Page 544
C.8 $save, $restart, and $incsave......Page 545
C.12 $showvars......Page 546
C.13 $sreadmemb and $sreadmemh......Page 547
D.2 `default_trireg_strength......Page 548
D.6 `delay_mode_zero......Page 549
Annex E (normative) acc_user.h (deprecated)......Page 550
Annex F (normative) veriuser.h (deprecated)......Page 551
Annex G (normative) vpi_user.h......Page 552
H.1.1 Encryption input......Page 567
H.2.1 Encryption input......Page 568
H.3 Digital envelopes......Page 569
H.3.1 Encryption input......Page 570
H.3.2 Encryption output......Page 571
Annex I (informative) Bibliography......Page 572
Index......Page 573