 HDLs – Verilog and Very High Speed Integrated Circuit (VHSIC) HDL  „ Widely used in logic design  „ Describe hardware  „ Document logic functions.

Slides:



Advertisements
Similar presentations
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Advertisements

Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Table 7.1 Verilog Operators.
Verilog Intro: Part 1.
Hardware Description Language (HDL)
16/04/20151 Hardware Descriptive Languages these notes are taken from Mano’s book It can represent: Truth Table Boolean Expression Diagrams of gates and.
Anurag Dwivedi.  Verilog- Hardware Description Language  Modules  Combinational circuits  assign statement  Control statements  Sequential circuits.
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
ENEE 408C Lab Capstone Project: Digital System Design Verilog Tutorial Class Web Site:
Verilog Sequential Circuits Ibrahim Korpeoglu. Verilog can be used to describe storage elements and sequential circuits as well. So far continuous assignment.
ECE 353 Computer Systems Lab I Verilog Hardware Description Language.
ENEE 408C Lab Capstone Project: Digital System Design Verilog Tutorial Class Web Site:
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
CSE241 R1 Verilog.1Kahng & Cichy, UCSD ©2003 CSE241 VLSI Digital Circuits Winter 2003 Recitation 1: Verilog Introduction.
ECEN ECEN475 Introduction to VLSI System Design Verilog HDL.
Computer Organization Lecture Set – 03 Introduction to Verilog Huei-Yung Lin.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Verilog Basics Nattha Jindapetch November Agenda Logic design review Verilog HDL basics LABs.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
Verilog Intro: Part 2. Procedural Blocks There are two types of procedural blocks in Verilog. – initial for single-pass behavior: initial blocks execute.
ECE 2372 Modern Digital System Design
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
CPEN Digital System Design
CH71 Chapter 7 Hardware Description Language (HDL) By Taweesak Reungpeerakul.
EEE2243 Digital System Design Chapter 3: Verilog HDL (Combinational) by Muhazam Mustapha, January 2011.
Module 1.2 Introduction to Verilog
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Behavioral Modelling - 1. Verilog Behavioral Modelling Behavioral Models represent functionality of the digital hardware. It describes how the circuit.
Brief Verilog.
Verilog A Hardware Description Language (HDL ) is a machine readable and human readable language for describing hardware. Verilog and VHDL are HDLs.
CEC 220 Digital Circuit Design Introduction to VHDL Wed, February 25 CEC 220 Digital Circuit Design Slide 1 of 19.
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
Introduction to ASIC flow and Verilog HDL
M.Mohajjel. Objectives Learn How to write synthesizable Verilog code Common mistakes and how to avoid them What is synthesized for what we code Digital.
Introduction to Verilog. Data Types A wire specifies a combinational signal. – Think of it as an actual wire. A reg (register) holds a value. – A reg.
Introduction to Verilog
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,
Introduction to Verilog. Structure of a Verilog Program A Verilog program is structured as a set of modules, which may represent anything from a collection.
CEC 220 Digital Circuit Design Introduction to VHDL Wed, Oct 14 CEC 220 Digital Circuit Design Slide 1 of 19.
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part4: Verilog – Part 2.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
Exp#5 & 6 Introduction to Verilog COE203 Digital Logic Laboratory Dr. Ahmad Almulhem KFUPM Spring 2009.
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.
Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals.
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
An Introduction to Verilog: Transitioning from VHDL
Introduction to Verilog
Verilog Introduction Fall
Hardware Description Languages: Verilog
Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-I]
Introduction to Verilog
Hardware Descriptive Languages these notes are taken from Mano’s book
Behavioral Modeling in Verilog
Introduction to Verilog
Verilog.
Hardware Descriptive Languages these notes are taken from Mano’s book
Introduction to Verilog
Introduction to Verilog
The Verilog Hardware Description Language
Introduction to Verilog
COE 202 Introduction to Verilog
Presentation transcript:

 HDLs – Verilog and Very High Speed Integrated Circuit (VHSIC) HDL  „ Widely used in logic design  „ Describe hardware  „ Document logic functions  „ Simulate logic before building  „ Synthesize code into gates

 HDL is a program that allows the user to implement complex functions  Digital systems are complex. Example: Processor  Designing a function with 10,000 gates in schematic is very difficult.  An HDL makes it easy by simply describing the function.  A tool can convert the described function in HDL into logic gates (Synthesis step in the design flow)

module half_added (Sum, Carry, A,B); input A, B; output Sum, Carry; wire Carry_bar; xor (Sum, A, B); //nand (Carry_bar, A, B); // not (Carry, Carry_bar); and (Carry, A, B); endmodule Declaration of Internal Signals Instantiation of Gates

module half_added (Sum, Carry, A,B); // Two slashes make a comment line //all commands are semi-colon delimited input A, B; output Sum, Carry; assign {Carry, Sum} = A+ B; endmodule  An assign statement is used for modeling only combinational logic and it is executed continuously.  Assign also called “Continuous assignment statement”

 Reg – that can store a value  Wire – that cannot store value, but connects two points. wire out; //”out” is a wire that only outputs reg out; //”out” is a register; it stores //also outputs a value reg [3:0] out_bus; // out_bus is a 4 bit register

Operator TypeOperator SymbolOperation Performed Arithmetic*Multiply /Division +Add -Subtract %Modulus Logical!Logical Negation (Not) &&Logical And ||Logical or Relational>Greater than <Less than >=Greater than or equal <=Less than equal Equality==Equality !=Inequality

Operator TypeOperator SymbolOperation Performed Reduction~Bitwise Negation ~&Nand |Or ~|Nor ^Xor ^~ / ~^Xnor Shift>>Right Shift <<Left Shift Concatenation{ }Concatenation Conditional?

 Every block with more than one statement must be included in begin and end. if (enable == 1) if (enable ==1) begin a=b; a=b; x=y; end case (state) 0: $display(“in state 0”); 1: begin a=b; $display(“in state 1 with multiple statements”); end default: $display(“default state”); endcase // Every case statement must end with endcase

 An initial block is executed only once when simulation starts (i.e. when time = 0).  Used in test benches.  If multiple initial blocks are declared, they all get executed at the beginning of simulation. initial begin a = 0; b = 0; end

 Always block executes always with a sensitive list associated with it.  A sensitive list is the one which tells the always block when to execute the block of code. (a or b) begin c = a & b; end  In the above example, symbol after the reserved keyword “always” indicates that the block will be triggered “at” the condition in parenthesis after

(a or b or sel) begin y = 0; if (sel == 0) begin y = a; end else begin y = b; end a b sel y 0 1

module Full_Adder (a, b, cin, sum, cout); input [3:0] a,b; input cin; output [3:0] sum; output cout; reg [3:0] sum; assign {cout, sum} = a+b+cin; endmodule

 Blocking Statements: A blocking statement must be executed before the execution of the statements that follow it in a sequential block. In the example below the first time statement to get executed is a = b followed by a=b b=c  Nonblocking Statements: Nonblocking statements allow you to schedule assignments without blocking the procedural flow. You can use the nonblocking procedural statement whenever you want to make several register assignments within the same time step without regard to order or dependence upon each other.

module example (); reg a,b,c,d; initial begin // Blocking Assignment a = #10 1’b1; //The simulator assigns 1 to time 10 b = #10 1’b1; //The simulator assigns 1 to time 20 end initial begin // Nonblocking Assignment c <= #10 1’b1; //The simulator assigns 1 to time 10 d <= #20 1’b0; //The simulator assigns 1 to time 20 end endmodule

Image From Asic-World

module DFF (clk, d, q); input clk, d; output q; reg q; (posedge clk) begin q <= d; end endmodule DFF d clk q

module DFF (clk, d, q); input clk, d; output q; reg q; (clk or d) begin q <= d; end endmodule

module DFF (clk, d, q); input clk, d; output q; reg q; wire a; (posedge clk) begin a <= d; q <= a; end endmodule DFF d clk a DFF q clk