Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Verilog Part 1 – Chapter.

Slides:



Advertisements
Similar presentations
Digital System Design-II (CSEB312)
Advertisements

Chapter 3 Gate-Level Minimization
Adders Used to perform addition, subtraction, multiplication, and division (sometimes) Half-adder adds rightmost (least significant) bit Full-adder.
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
Overview Part 1 – Gate Circuits and Boolean Equations
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Chapter 2 – Combinational.
Overview Part 1 – Gate Circuits and Boolean Equations
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 2 – Combinational Logic Circuits Part 3.
Verilog Section 3.10 Section 4.5. Keywords Keywords are predefined lowercase identifiers that define the language constructs – Key example of keywords:
COE 405 Structural Specification of Hardware Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Dr. Aiman.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Verilog.
The Verilog Hardware Description Language
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
ELEN 468 Lecture 21 ELEN 468 Advanced Logic Design Lecture 2 Hardware Modeling.
Chap. 6 Dataflow Modeling
CPEN Digital System Design
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.
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part3: Verilog – Part 1.
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Verilog Part 2 – Chapter.
ECE 353 Computer Systems Lab I Verilog Hardware Description Language.
Hardware Description Language HDL. 2 Hardware Description Language HDL  Describes circuits and systems in text. −As a software program.  Can be processed.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
Reconfigurable Computing (EN2911X, Fall07) Lecture 05: Verilog (1/3) Prof. Sherief Reda Division of Engineering, Brown University
Computer Organization Lecture Set – 03 Introduction to Verilog Huei-Yung Lin.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
Lecture 7 Verilog Additional references Structural constructs
INTRODUCTION TO VERILOG HDL Presented by m.vinoth.
ECE 2372 Modern Digital System Design
ECE/CS 352 Digital Systems Fundamentals
Verilog Language Concepts
Spring 2009W. Rhett DavisNC State UniversityECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 3: Structural Modeling Spring 2009 W. Rhett.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
EEE2243 Digital System Design Chapter 3: Verilog HDL (Combinational) by Muhazam Mustapha, January 2011.
Introduction to Combinational Verilog EECS270 rev 9/25/12.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Introduction to ASIC flow and Verilog HDL
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Introduction to Verilog
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Chapter1: Introduction Digital System Designs and Practices Using Verilog HDL and 2008~2010, John Wiley 1-1 Chapter 1: Introduction Prof. Ming-Bo.
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
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.
Hardware Description Languages: Verilog
An Introduction to Verilog: Transitioning from VHDL
University of Maryland Baltimore County Department of Computer Science and Electrical Engineering   CMPE 212 Laboratory (Discussion 2) Hasibul Hasan
Discussion 2: More to discuss
Verilog-HDL-1 by Dr. Amin Danial Asham.
Hardware Description Languages: Verilog
Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-I]
Chapter 4 Combinational Logic
Hardware Descriptive Languages these notes are taken from Mano’s book
Behavioral Modeling in Verilog
Introduction to Verilog
Hardware Descriptive Languages these notes are taken from Mano’s book
Chapters 4 – Part3: Verilog – Part 1
The Verilog Hardware Description Language
Supplement on Verilog combinational circuit examples
EEE2243 Digital System Design Chapter 1: Verilog HDL (Combinational) by Muhazam Mustapha, February 2012.
COE 202 Introduction to Verilog
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Verilog Part 1 – Chapter 4 – Basics and Types of Descriptions Logic and Computer Design Fundamentals

Verilog - Part 1 2 Overview  Part 1 Verilog Basics Notation Keywords & Constructs Operators Types of Descriptions  Structural  Dataflow Boolean Equations Conditions using Binary Combinations Conditions using Binary Decisions Combinational Circuit Testbench

Verilog - Part 1 3 Verilog Notation - 1  Verilog is: Case sensitive Based on the programming languages C and ADA  Comments Single Line //[end of line] Multiple Line /* */  List element separator:,  Statement terminator: ;

Verilog - Part 1 4 Verilog Notation - 2  Binary Values for Constants and Variables 0 1 X or x – Unknown Z or z – High impedance state (open circuit)  Constants n ’ b[integer]: 1’b1 = 1, 8’b1 = , 4’b0101= 0101, 8’bxxxxxxxx, 8’bxxxx = 0000xxxx n ’ h[integer]: 8’hA9 = , 16’hf1=  Identifier Examples Scalar: A,C,RUN,stop,m,n Vector: sel[0:2], f[0:5], ACC[31:0], SUM[15:0], sum[15:0]

Verilog - Part 1 5 Verilog Keywords & Constructs - 1  Keywords are lower case  module – fundamental building block for Verilog designs Used to construct design hierarchy Cannot be nested  endmodule – ends a module – not a statement => no “ ; ”  Module Declaration module module_name ( module_port, module_port, … ); Example: module full_adder (A, B, c_in, c_out, S);

Verilog - Part 1 6 Verilog Keywords & Constructs - 2  Input Declaration Scalar  input list of input identifiers ;  Example: input A, B, c_in; Vector  input[ range ] list of input identifiers ;  Example: input[15:0] A, B, data;  Output Declaration Scalar Example: output c_out, OV, MINUS; Vector Example: output[7:0] ACC, REG_IN, data_out;

Verilog - Part 1 7 Verilog Keywords & Constructs - 3  Primitive Gates buf, not, and, or, nand, nor, xor, xnor Syntax: gate_operator instance_identifier (output, input_1, input_2, …) Examples: and A1 (F, A, B); //F = A B or O1 (w, a, b, c) O2 (x, b, c, d, e); //w=a+b+c,x=b+c+d+e

Verilog - Part 1 8 Verilog Operators - 1  Bitwise Operators ~ NOT & AND | OR ^ XOR ^~ or ~^ XNOR  Example: input[3:0] A, B; output[3:0] Z ; assign Z = A | ~B;

Verilog - Part 1 9 Verilog Operators - 2  Arithmetic Operators +, -, (plus others)  Logical & Relational Operators !, &&, | |, = =, !=, >=,, < (plus others)  Concatenation & Replication Operators {identifier_1, identifier_2, …} {n{identifier}} Examples: {REG_IN[6:0],Serial_in}, {8 {1’b0}}

Verilog - Part st Example to Illustrate Verilog Description Types  IC7283 – a 1-bit adder from a commerical IC B 0 A 0 C 0 C 1 S 0

Verilog - Part 1 11 Structural Verilog  Circuits can be described by a netlist as a text alternative to a diagram – Example IC7283 module IC7283 (A0, B0, C0, C1, S0); input A0, B0, C0; output C1, S0; //Seven internal wires needed wire N1, N2, N3, N4, N5, N6, N7; // Ports on primitive gates - output port // is listed first not G1 (N3,C0), G2 (N5,N2), G3 (N6,N3); nand G4 (N1,A0,B0); nor G5 (N2,A0,B0), G6 (C1,N2,N4); and G7 (N4,N1,N3), G8 (N7,N1,N5); xor G9 (S0,N6,N7); endmodule

Verilog - Part 1 12 Dataflow Verilog - 1  Circuit function can be described by assign statements using Boolean equations – Example IC7283 module IC7283_df1 (A0, B0, C0, C1, S0); input A0, B0, C0; output C1, S0; wire N1, N2; assign N1 = ~(A0 & B0); //Note: // Cannot write ~& for NAND assign N2 = ~(A0 | B0); assign C1 = ~((N1 & ~C0) | N2); assign S0 = (~N2 & N1)^(~(~C0)); endmodule

Verilog - Part nd Example to Illustrate Verilog Description Types  Priority Encoder Inputs Outputs D4D3D2D1D0A2A1A0V 00000XXX X XX XXX0111 1XXXX1001

Verilog - Part 1 14 Dataflow Verilog - 2  Circuit function can be described by assign statements using the conditional operator with binary combinations as in a truth table – Example Priority Encoder module priority_encoder_df2 (D, A, V); input[4:0] D; output[2:0] A; output V; //Conditional:(X) ? Y: Z - if X is true, then Y,else Z assign A = (D[4] == 1'b1) ? 3'b100 : (D[3] == 1'b1) ? 3'b011 : (D[2] == 1'b1) ? 3'b010 : (D[1] == 1'b1) ? 3'b001 : (D[0] == 1'b1) ? 3'b000 : 3'bxxx; assign V = (D == 5'b00000) ? 1'b0 : 1'b1; endmodule

Verilog - Part 1 15 Dataflow Verilog - 3  Circuit function can be described by assign statements using the conditional operator for binary decisions on inputs module priority_encoder_df3 (D, A, V); input[4:0] D; output[2:0] A; output V; // Conditional: (X) ? Y: Z If X is true, // then Y, else Z assign A = D[4] ? 3'b100: D[3] ? 3'b011: D[2] ? 3'b010: D[1] ? 3'b001: D[0] ? 3'b000: 3'bxxx; assign V = (D == 5'b00000) ? 1'b0: 1'b1; endmodule

Verilog - Part 1 16 Combinational Circuit Testbench  Testbench – a program that is used to verify the correctness of an HDL representation for a circuit Applies a set of input combinations to the circuit that thoroughly tests the HDL representation Assists in verifying the correctness of the corresponding outputs:  By displaying the inputs and outputs for manual verification  By comparing the outputs to those of a known correct representation for the circuit

Verilog - Part 1 17 Combinational Testbench Example - 1  A Verilog testbench for a combinational circuit with n inputs and m outputs that: applies all possible binary input combinations as stimuli to the circuit provides the circuit outputs for manual verification  Stimuli Generation Uses a clocked binary up counter to generate stimuli Stops the simulation when all combinations have been applied

Verilog - Part 1 18 Combinational Testbench Example - 2  Verilog code: `timescale 1 ns / 100 ps //sets time unit / // simulation interval (ps - picoseconds ( sec) module priority_encoder_testbench; reg clk; //clock to advance counter reg[4:0] stim; //stimuli counter storage for D[4:0] wire[3:0] results; //wires to hold A[1:0],V //Following instantiates the circuit being tested priority_encoder_df3 x1 (stim[4:0], results [3:1], results[0]); initial //initializes clk and stim to 0 and //stops simulation after 33 combinations applied begin clk <= 0; stim <= 4’b0; #330 $stop; end

Verilog - Part 1 19 Combinational Testbench Example - 3  Verilog code (continued): always begin #5 //waits 5 time units before toggling clock forever #5 clk <= ~clk; //toggles clock every 5 time units end clk)//conditions increment on // the positive edge of clk begin stim <= stim + 1; //increments counter by 1 end endmodule

Verilog - Part 1 20 Terms of Use  © 2004 by Pearson Education,Inc. All rights reserved.  The following terms of use apply in addition to the standard Pearson Education Legal Notice.Legal Notice  Permission is given to incorporate these materials into classroom presentations and handouts only to instructors adopting Logic and Computer Design Fundamentals as the course text.  Permission is granted to the instructors adopting the book to post these materials on a protected website or protected ftp site in original or modified form. All other website or ftp postings, including those offering the materials for a fee, are prohibited.  You may not remove or in any way alter this Terms of Use notice or any trademark, copyright, or other proprietary notice, including the copyright watermark on each slide.  Return to Title Page Return to Title Page