Shopping Cart

No products in the cart.

IEEE 1364-1995

$131.63

IEEE Standard Hardware Description Language Based on the Verilog(R) Hardware Description Language

Published By Publication Date Number of Pages
IEEE 1995 676
Guaranteed Safe Checkout
Category:

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. We’re here to assist you 24/7.
Email:[email protected]

New IEEE Standard – Superseded. The Verilog Hardware Description Language (HDL) is defined. Verilog HDL is a formal notation intended for use in all phases of the creation of electronic systems. Because it is both machine readable and human readable, it supports the development, verification, synthesis, and testing of hardware designs; the communication of hardware design data; and the maintenance, modification, and procurement of hardware. The primary audiences for this standard are the implementors of tools supporting the language and advanced users of the language.

PDF Catalog

PDF Pages PDF Title
1 Title Page
3 Introduction
5 Participants
8 CONTENTS
11 1. Overview
1.1 Objectives of this standard
1.2 Conventions used in this standard
12 1.3 Syntactic description
13 1.4 Contents of this standard
14 1.5 Header file listings
1.6 Examples
1.7 Prerequisites
15 2. Lexical conventions
2.1 Lexical tokens
2.2 White space
2.3 Comments
2.4 Operators
2.5 Numbers
19 2.6 Strings
20 2.7 Identifiers, keywords, and system names
23 3. Data types
3.1 Value set
3.2 Nets and registers
25 3.3 Vectors
26 3.4 Strengths
3.5 Implicit declarations
3.6 Net initialization
27 3.7 Net types
32 3.8 Memories
33 3.9 Integers, reals, times, and realtimes
35 3.10 Parameters
36 3.11 Name spaces
37 4. Expressions
4.1 Operators
49 4.2 Operands
52 4.3 Minimum, typical, and maximum delay expressions
53 4.4 Expression bit lengths
55 5. Scheduling semantics
5.1 Execution of a model
5.2 Event simulation
56 5.3 The stratified event queue
5.4 The Verilog simulation reference model
57 5.5 Race conditions
58 5.6 Scheduling implication of assignments
60 6. Assignments
6.1 Continuous assignments
63 6.2 Procedural assignments
65 7. Gate and switch level modeling
7.1 Gate and switch declaration syntax
71 7.2 And, nand, nor, or, xor, and xnor gates
72 7.3 Buf and not gates
73 7.4 Bufif1, bufif0, notif1, and notif0 gates
74 7.5 MOS switches
75 7.6 Bidirectional pass switches
76 7.7 CMOS switches
77 7.8 Pullup and pulldown sources
7.9 Implicit net declarations
7.10 Logic strength modeling
79 7.11 Strengths and values of combined signals
92 7.12 Strength reduction by nonresistive devices
7.13 Strength reduction by resistive devices
7.14 Strengths of net types
93 7.15 Gate and net delays
97 8. User-defined primitives (UDPs)
8.1 UDP definition
100 8.2 Combinational UDPs
101 8.3 Level-sensitive sequential UDPs
102 8.4 Edge-sensitive sequential UDPs
103 8.5 Sequential UDP initialization
105 8.6 UDP instances
106 8.7 Mixing level-sensitive and edge-sensitive descriptions
107 8.8 Level-sensitive dominance
108 9. Behavioral modeling
9.1 Behavioral model overview
109 9.2 Procedural assignments
114 9.3 Procedural continuous assignments
116 9.4 Conditional statement
118 9.5 Case statement
121 9.6 Looping statements
124 9.7 Procedural timing controls
129 9.8 Block statements
133 9.9 Structured procedures
135 10. Tasks and functions
10.1 Distinctions between tasks and functions
10.2 Tasks and task enabling
138 10.3 Functions and function calling
142 11. Disabling of named blocks and tasks
145 12. Hierarchical structures
12.1 Modules
149 12.2 Overriding module parameter value
151 12.3 Ports
156 12.4 Hierarchical names
160 12.5 Scope rules
162 13. Specify blocks
13.1 Specify block declaration
163 13.2 Declaring parameters in specify blocks
164 13.3 Module path declarations
174 13.4 Assigning delays to module paths
177 13.5 Mixing module path delays and distributed delays
178 13.6 Driving wired logic
180 13.7 Controlling pulses on module paths with PATHPULSES
182 14. System tasks and functions
183 14.1 Display system tasks
190 14.2 File input-output system tasks
193 14.3 Timescale system tasks
197 14.4 Simulation control system tasks
14.5 Timing check system tasks
207 14.6 PLA modeling system tasks
210 14.7 Stochastic analysis tasks
212 14.8 Simulation time system functions
214 14.9 Conversion functions for reals
215 14.10 Probabilistic distribution functions
217 15. Value change dump (VCD) file
15.1 Creating the value change dump file
221 15.2 Format of the VCD file
229 16. Compiler directives
16.1 ‘celldefine and ‘endcelldefine
16.2 ‘default_nettype
230 16.3 ‘define and ‘undef
232 16.4 ‘idef, ‘else, ‘endif
234 16.5 ‘include
235 16.6 ‘resetall
16.7 ‘timescale
237 16.8 ‘unconnected_drive and ‘nonunconnected_drive
238 17. PLITF and ACC interface mechanism
17.1 PLI purpose and history
239 17.2 User-defined task or function names
17.3 Overloading built-in system task and function names
17.4 User-supplied PLI applications
240 17.5 Associating PLI applications to a class and system task/function name
241 17.6 PLI application arguments
242 17.7 User-defined system task and function arguments
243 17.8 PLI include files for TF and ACC routines
244 18. Using ACC routines
18.1 ACC routine definition
245 18.2 The handle data type
18.3 Using ACC routines
18.4 List of ACC routines by major category
252 18.5 Accessible objects
259 18.6 ACC routine types and fulltypes
264 18.7 Error handling
266 18.8 Reading and writing delay values
271 18.9 String handling
273 18.10 Using VCL ACC routines
280 19. ACC routine definitions
281 19.1 acc_append_delays()
285 19.2 acc_append_pulsere()
287 19.3 acc_close()
288 19.4 acc_collect()
290 19.5 acc_compare_handles()
291 19.6 acc_configure()
299 19.7 acc_count()
300 19.8 acc_fetch_argc()
301 19.9 acc_fetch_argv()
302 19.10 acc_fetch_attribute()
306 19.11 acc_fetch_attribute_int()
307 19.12 acc_fetch_attribute_str()
308 19.13 acc_fetch_defname()
309 19.14 acc_fetch_delay_mode()
311 19.15 acc_fetch_delays()
315 19.16 acc_fetch_direction()
316 19.17 acc_fetch_edge()
318 19.18 acc_fetch_fullname()
320 19.19 acc_fetch_fulltype()
323 19.20 acc_fetch_index()
325 19.21 acc_fetch_location()
327 19.22 acc_fetch_name()
329 19.23 acc_fetch_paramtype()
330 19.24 acc_fetch_paramval()
332 19.25 acc_fetch_polarity()
333 19.26 acc_fetch_precision()
334 19.27 acc_fetch_pulsere()
337 19.28 acc_fetch_range()
338 19.29 acc_fetch_size()
339 19.30 acc_fetch_tfarg(), acc_fetch_itfarg()
341 19.31 acc_fetch_tfarg_int(), acc_fetch_itfarg_int()
342 19.32 acc_fetch_tfarg_str(), acc_fetch_itfarg_str()
343 19.33 acc_fetch_timescale_info()
345 19.34 acc_fetch_type()
347 19.35 acc_fetch_type_str()
348 19.36 acc_fetch_value()
353 19.37 acc_free()
354 19.38 acc_handle_by_name()
356 19.39 acc_handle_calling_mod_m()
357 19.40 acc_handle_condition()
358 19.41 acc_handle_conn()
359 19.42 acc_handle_datapath()
360 19.43 acc_handle_hiconn()
362 19.44 acc_handle_interactive_scope()
363 19.45 acc_handle_loconn()
364 19.46 acc_handle_modpath()
366 19.47 acc_handle_notifier()
367 19.48 acc_handle_object()
369 19.49 acc_handle_parent()
370 19.50 acc_handle_path()
371 19.51 acc_handle_pathin()
372 19.52 acc_handle_pathout()
373 19.53 acc_handle_port()
375 19.54 acc_handle_scope()
376 19.55 acc_handle_simulated_net()
378 19.56 acc_handle_tchk()
382 19.57 acc_handle_tchkarg1()
384 19.58 acc_handle_tchkarg2()
385 19.59 acc_handle_terminal()
386 19.60 acc_handle_tfarg(), acc_handle_itfarg()
388 19.61 acc_handle_tfinst()
389 19.62 acc_initialize()
390 19.63 acc_next()
394 19.64 acc_next_bit()
396 19.65 acc_next_cell()
397 19.66 acc_next_cell_load()
399 19.67 acc_next_child()
400 19.68 acc_next_driver()
401 19.69 acc_next_hiconn()
403 19.70 acc_next_input()
405 19.71 acc_next_load()
407 19.72 acc_next_loconn()
408 19.73 acc_next_modpath()
409 19.74 acc_next_net()
410 19.75 acc_next_output()
412 19.76 acc_next_parameter()
413 19.77 acc_next_port()
415 19.78 acc_next_portout()
416 19.79 acc_next_primitive()
417 19.80 acc_next_scope()
418 19.81 acc_next_specparam()
419 19.82 acc_next_tchk()
421 19.83 acc_next_terminal()
422 19.84 acc_next_topmod()
423 19.85 acc_object_in_typelist()
425 19.86 acc_object_of_type()
427 19.87 acc_product_type()
429 19.88 acc_product_version()
430 19.89 acc_release_object()
431 19.90 acc_replace_delays()
435 19.91 acc_replace_pulsere()
438 19.92 acc_reset_buffer()
439 19.93 acc_set_interactive_scope()
440 19.94 acc_set_pulsere()
442 19.95 acc_set_scope()
444 19.96 acc_set_value()
450 19.97 acc_vcl_add()
452 19.98 acc_vcl_delete()
453 19.99 acc_version()
454 20. Using TF routines
20.1 TF routine definition
20.2 TF routine parameters
20.3 Reading and writing parameter values
456 20.4 Value change detection
20.5 Simulation time
20.6 Simulation synchronization
457 20.7 Instances of user-defined task or functions
20.8 Module and scope instance names
20.9 Saving information from one system TF call to the next
20.10 Displaying output messages
458 20.11 Stopping and finishing
459 21. TF routine definitions
460 21.1 io_mcdprintf()
461 21.2 io_printf()
462 21.3 mc_scan_plusargs()
463 21.4 tf_add_long()
464 21.5 tf_asynchoff(), tf_iasynchoff()
465 21.6 tf_asynchon(), tf_iasynchon()
466 21.7 tf_clearalldelays(), tf_iclearalldelays()
467 21.8 tf_compare_long()
468 21.9 tf_copypvc_flag(), tf_icopypvc_flag()
469 21.10 tf_divide_long()
470 21.11 tf_dofinish()
471 21.12 tf_dostop()
472 21.13 tf_error()
473 21.14 tf_evaluatep(), tf_ievaluatep()
474 21.15 tf_exprinfo(), tf_iexprinfo()
477 21.16 tf_getcstringp(), tf_igetcstringp()
478 21.17 tf_getinstance()
479 21.18 tf_getlongp(), tf_igetlongp()
480 21.19 tf_getlongtime(), tf_igetlongtime()
481 21.20 tf_getnextlongtime()
482 21.21 tf_getp(), tf_igetp()
483 21.22 tf_getpchange(), tf_igetpchange()
484 21.23 tf_getrealp(), tf_igetrealp()
485 21.24 tf_getrealtime(), tf_igetrealtime()
486 21.25 tf_gettime(), tf_igettime()
487 21.26 tf_gettimeprecision(), tf_igettimeprecision()
488 21.27 tf_gettimeunit(), tf_igettimeunit()
489 21.28 tf_getworkarea(), tf_igetworkarea()
490 21.29 tf_long_to_real()
491 21.30 tf_longtime_tostr()
492 21.31 tf_message()
494 21.32 tf_mipname(), tf_imipname()
495 21.33 tf_movepvc_flag(), tf_imovepvc_flag()
496 21.34 tf_multiply_long()
497 21.35 tf_nodeinfo(), tf_inodeinfo()
501 21.36 tf_nump(), tf_inump()
502 21.37 tf_propagatep(), tf_ipropagatep()
503 21.38 tf_putlongp(), tf_iputlongp()
504 21.39 tf_putp(), tf_iputp()
505 21.40 tf_putrealp(), tf_iputrealp()
506 21.41 tf_read_restart()
507 21.42 tf_real_to_long()
508 21.43 tf_rosynchronize(), tf_irosynchronize()
509 21.44 tf_scale_longdelay()
510 21.45 tf_scale_realdelay()
511 21.46 tf_setdelay(), tf_isetdelay()
512 21.47 tf_setlongdelay(), tf_isetlongdelay()
513 21.48 tf_setrealdelay(), tf_isetrealdelay()
514 21.49 tf_setworkarea(), tf_isetworkarea()
515 21.50 tf_sizep(), tf_isizep()
516 21.51 tf_spname(), tf_ispname()
517 21.52 tf_strdelputp(), tf_istrdelputp()
519 21.53 tf_strgetp(), tf_istrgetp()
520 21.54 tf_strgettime()
521 21.55 tf_strlongdelputp(), tf_istrlongdelputp()
523 21.56 tf_strrealdelputp(), tf_istrrealdelputp()
525 21.57 tf_subtract_long()
527 21.58 tf_synchronize(), tf_isynchronize()
528 21.59 tf_testpvc_flag(), tf_itestpvc_flag()
529 21.60 tf_text()
530 21.61 tf_typep(), tf_itypep()
531 21.62 tf_unscale_longdelay()
532 21.63 tf_unscale_realdelay()
533 21.64 tf_warning()
534 21.65 tf_write_save()
535 22. Using VPI routines
22.1 The VPI interface
536 22.2 Error handling
537 22.3 List ofVPI routines by functional category
540 22.4 Key to object model diagrams
543 22.5 Object data model diagrams
564 23. VPI routine definitions
565 23.1 vpi_chk_error()
566 23.2 vpi_compare_objects()
567 23.3 vpi_free_object()
568 23.4 vpi_get()
569 23.5 vpi_get_cb_info()
570 23.6 vpi_get_delays()
573 23.7 vpi_get_str()
574 23.8 vpi_get_systf_info()
575 23.9 vpi_get_time()
576 23.10 vpi_get_value()
579 23.11 vpi_get_vlog_info()
580 23.12 vpi_handle()
581 23.13 vpi_handle_by_index()
582 23.14 vpi_handle_by_name()
583 23.15 vpi_handle_multi()
584 23.16 vpi_iterate()
585 23.17 vpi_mcd_close()
586 23.18 vpi_mcd_name()
587 23.19 vpi_mcd_open()
588 23.20 vpi_mcd_printf()
589 23.21 vpi_printf()
590 23.22 vpi_put_delays()
592 23.23 vpi_put_value()
594 23.24 vpi_register_cb()
599 23.25 vpi_register_systf()
602 23.26 vpi_remove_cb()
603 23.27 vpi_scan()
604 Annex A—Formal syntax definition
614 Annex B—List of keywords
615 Annex C—The acc_user.h file
625 Annex D—The veriuser.h file
632 Annex E—The vpi_user.h file
645 Annex F—System tasks and functions
652 Annex G—Compiler directives
654 Annex H—Bibliography
655 Index
IEEE 1364-1995
$131.63