Digital System Design Verilog ® HDL Behavioral Modeling (3) Maziar Goudarzi.

Slides:



Advertisements
Similar presentations
CS 3850 Lecture 6 Tasks and Functions. 6.1 Tasks and Functions Tasks are like procedures in other programming languages. e. g., tasks may have zero or.
Advertisements

Models of Concurrency Manna, Pnueli.
CSCI 660 EEGN-CSCI 660 Introduction to VLSI Design Lecture 7 Khurram Kazi.
Supplement on Verilog adder examples
Combinational Logic.
Hardware Description Language (HDL)
2/9/20031 ECE 551: Digital System Design & Synthesis Lecture Set 4 4.1: Verilog – Procedural Assignments &Scheduling Semantics 4.2: Verilog – More Behavioral.
Jack Ou, Ph.D. CES522 Engineering Science Sonoma State University
ELEN 468 Lecture 81 ELEN 468 Advanced Logic Design Lecture 8 Behavioral Descriptions II.
Verilog Sequential Circuits Ibrahim Korpeoglu. Verilog can be used to describe storage elements and sequential circuits as well. So far continuous assignment.
Why Behavioral Wait statement Signal Timing Examples of Behavioral Descriptions –ROM.
Verilog HDL (Behavioral Modeling) Bilal Saqib. Behavioral Modeling.
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI System Design Lecture 4 - Advanced Verilog.
Digital System Design Verilog ® HDL Tasks and Functions Maziar Goudarzi.
Digital System Design Verilog ® HDL Useful Modeling Techniques Maziar Goudarzi.
Digital System Design Verilog ® HDL Behavioral Modeling (1) Maziar Goudarzi.
Digital System Design EEE344 Lecture 3 Introduction to Verilog HDL Prepared by: Engr. Qazi Zia, Assistant Professor EED, COMSATS Attock1.
Today’s Lecture Process model –initial & always statements Assignments –Continuous & procedural assignments Timing Control System tasks.
Overview Logistics Last lecture Today HW5 due today
Fall 08, Oct 29ELEC Lecture 7 (updated) 1 Lecture 7: VHDL - Introduction ELEC 2200: Digital Logic Circuits Nitin Yogi
IAY 0600 Digitaalsüsteemide disain Event-Driven Simulation Alexander Sudnitson Tallinn University of Technology.
Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani
ECE 551 Digital System Design & Synthesis Fall 2011 Midterm Exam Overview.
CS 3850 Lecture 3 The Verilog Language. 3.1 Lexical Conventions The lexical conventions are close to the programming language C++. Comments are designated.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
1 CSE-308 Digital System Design (DSD) N-W.F.P. University of Engineering & Technology, Peshawar.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
Timing Model VHDL uses the following simulation cycle to model the stimulus and response nature of digital hardware Start Simulation Update Signals Execute.
Digital System Design Verilog ® HDL Behavioral Modeling Maziar Goudarzi.
Behavioral Modelling - 1. Verilog Behavioral Modelling Behavioral Models represent functionality of the digital hardware. It describes how the circuit.
Digital System Design Verilog ® HDL Introduction to Synthesis: Concepts and Flow Maziar Goudarzi.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Introduction to ASIC flow and Verilog HDL
COMP541 Sequential Circuits
Timing Controls in Behavioral Modeling Programmable Logic Design (40-493) Fall 2001 Computer Engineering Department Sharif University of Technology Maziar.
IAY 0600 Digital Systems Design Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
Verilog® HDL Behavioral Modeling (2)
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Chapter 11: System Design.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
Supplement on Verilog FF circuit examples
Adapted from Krste Asanovic
IAY 0600 Digitaalsüsteemide disain
HDL simulation and Synthesis (Marks16)
‘if-else’ & ‘case’ Statements
Timing Model Start Simulation Delay Update Signals Execute Processes
Accounting information and limits
Digital System Design Verilog ® HDL Scheduling Semantics Maziar Goudarzi.
TODAY’S OUTLINE Procedural Assignments Verilog Coding Guidelines
IAY 0600 Digital Systems Design
332:437 Lecture 11 Verilog Event-Driven Simulation
Introduction to Verilog
Computer Architecture
HDL Hardware Description Language
332:437 Lecture 8 Verilog and Finite State Machines
Subject : T0152 – Programming Language Concept
Timing & Concurrency II
ECE 551: Digital System Design & Synthesis
Timing & Concurrency II
Timing & Concurrency II
332:437 Lecture 8 Verilog and Finite State Machines
Introduction to Digital IC Design
Introduction to Verilog – Part-2 Procedural Statements
4-Input Gates VHDL for Loops
COE 202 Introduction to Verilog
Presentation transcript:

Digital System Design Verilog ® HDL Behavioral Modeling (3) Maziar Goudarzi

Objectives of This Topic Verilog® Scheduling Semantics – Internal sequence of operations of a Verilog simulator 2011DSD2

Verilog® Scheduling Semantics Verilog is a parallel programming language Important to understand – What execution order is guaranteed – What execution order is indeterminate Language semantics are defined for simulation – Other uses (e.g. synthesis) are abstracted from this definition 2011DSD3 Reference: IEEE Standard , IEEE Standard for Verilog®

Verilog® Scheduling Semantics Definitions: – Update operation/event: every change in value of a net or variable in the circuit being simulated, as well as the named event. Processes are sensitive to update events – Evaluation operation: The evaluation of a process (initial/always block) is known as evaluation operation When an update event is executed, all the processes that are sensitive to that event, are evaluated in an arbitrary order. 2011DSD4 NOTE: Verilog standard calls these Update Event and Evaluate Event. We use Operation word instead of Event to avoid confusion with event (change of value)

Verilog® Scheduling Semantics Definitions (cont’d) – Time, or Simulation time: The time value maintained by the simulator to model the actual time it would take for the circuit being simulated – Operation queue: Operations occur at different times. They are kept on an operation queue ordered by simulation time – Scheduling an operation: Putting an operation on an operation queue 2011DSD5

Verilog® Scheduling Semantics Operation queues in Verilog – 5 queues. – Operations are added to any of them, but removed only from the active queue 1.Active operations Q 2.Inactive operations Q 3.Non-blocking operations Q 4.Monitor operations Q 5.Future operations Q Definitions: Simulation cycle: Processing of all active operations 2011DSD6

Verilog® Events in Priority Order 1.Active operations: occur at the current simulation time. Can be processed in any order. – Example: ordinary assignments: a=b; 2.Inactive operations: occur at the current simulation time. Processed after all operations 1 above. – Example: Zero-delay assignments: #0 a=b; 3.Non-blocking assign update operations: evaluated during some previous simulation time, but shall be assigned at this simulation time after all 1 and 2 above. – Example: Non-blocking assignments: a<=b 2011DSD7

Verilog® Events in Priority Order 4.Monitor operations: Processed after all above. – Example: $monitor and $strobe system tasks – Re-enabled in every successive time step – Unique: cannot create other events 5.Future operations: occur at some future simulation time. – Further divided into future inactive events and future non-blocking assignment update events. 2011DSD8

Verilog® Simulation Reference Model while (there are operations) { if (no active operations) { if (there are inactive operations) { activate all inactive operations; } else if (there are nonblocking assign update operations){ activate all nonblocking assign update operations; } else if (there are monitor operations) { activate all monitor operations; } else { advance T to the time of next operation; activate all inactive operations for time T; } } // end of “if (no active events)” // continued on next page DSD9

Verilog® Simulation Reference Model // Rest of “while (there are operations) {“ E = any active operation; if (E is an update operation) { update the modified object; add evaluation operations for sensitive processes to operation queue; } else { /* shall be an evaluation operation */ evaluate the process; add update operations to the operations queue; } } // “while (there are operations) {“ 2011DSD10

Determinism Order of appearance in the begin-end block is preserved – Execution of statements within one begin-end block may be suspended, but never the order is changed Nonblocking assignments shall be performed in the order the statements were executed. initial begin a <= 0; a <= 1; end 2011DSD11

Nondeterminism Active operations are processed in undefined order Statements in different initial/always blocks may intermix during execution 2011DSD12

Have you learned this topic? Verilog simulation semantics – How Verilog manages the simulation – What is expected to happen/not-happen during simulation 2011DSD13