N-input EX-NOR gate. N-output inverter. N-input NOR gate

Size: px
Start display at page:

Download "N-input EX-NOR gate. N-output inverter. N-input NOR gate"

Transcription

1 Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It is the most widely used HDL with a user community of more than 50,000 active designers. Tools that can be used to learn is: 1. Xilinx ISE 10.1 (Newer versions don t have Testbench Waveform) Xilinx ISE (Integrated Synthesis Environment) is a software tool produced by Xilinx for synthesis and analysis of HDL designs, enabling the developer to synthesize ("compile") their designs, perform timing analysis, examine RTL diagrams, simulate a design's reaction to different stimuli, and configure the target device with the programmer A very good website to learn verilog with examples and detailed explaination. It provide a free verilog compiler (icarus verilog or iverilog) and simulator (vvp) that runs under Windows using DOS commands. A graphic waveform viewer (gtkwave) is also provided so the output of the simulation can be viewed as waveforms This is online simulator. Simulating a design requires users to write their testbench file. Basics HDL is case sensitive. All verilog keywords are lower case (e.g. module,, initial,,...) Logic values in modelling hardware are logic-0, logic-1, high-impedance-z, don t care-x and unknown-x. The data types in verilog HDL is similar to a variable in programming, and belongs to one of the two data types, net data type and register data type. Nets represents structural connections between components and registers represent variables used to store data. A net declaration wire [3:0] sig or wire [0:3] sig will result in the variable sig to be of 4 bits wide. If no size is explicitly specified, the default size is 1 bit, e.g. wire test. The variable test is 1 bit signal. The wire net is the most commonly used net type. The different kinds of register data types that are supported for synthesis are reg and integer. Similar to a net declaration, a reg declaration explicitly specifies the size, that is, the corresponding number of bits of the variable in the hardware. For example, reg [0:3] sig or reg [3:0] sig will create a 4 bit variable, while reg test will create a 1 bit variable. Gate primitives: The gates have one scalar output and multiple scalar inputs. The first terminal in the list of gate terminals is an output and the other terminals are inputs. and N-input AND gate xor N-input EX-OR gate nand N-input NAND gate xnor N-input EX-NOR gate or N-input OR gate not N-output inverter nor N-input NOR gate

2 Modules are the building blocks of verilog designs. Using modules by another modules (instantiating) is called design hierarchy is a common way of creating a design. Ports allow communication between a module and its environment and can be associated by order or by name. Ports can be input, output or inout. Port connection rules: Inputs: internally must always be of type net, externally the inputs can be connected to variable reg or net type. Outputs: internally can be of type net or reg, externally the outputs can be connected to a variable net type. supports a design at many levels of abstraction. The major three are : Behavioral level (Register Tranfer Level) - a description of a circuit in terms of high-level logic and arithmetic operations and assignments. Working at this level will model in terms of what the circuit will do as opposed to using the lower-level logic gates which describe how the circuit can be implemented. Structural level - a description of a circuit at the abstraction level of logic gates. This type of model could be seen as a textual representation of a schematic. Data Flow level - a description of a circuit which can use logical expressions with continuous assignments. Example of designing using gate primitives: To create an AND gate from a NAND gate //Using structural model module and_from_nand(input X, input Y, output F); wire W; nand U1 (W, X, Y); nand U2 (F, W, W); //Testbench code module test(); reg X, Y; //the inputs are declared as reg wire F; //the output is declared as wire and_from_nand uut(.w(w),.y(y),.f(f)); //instantiate unit under test initial $monitor ( X=%b Y=%b F=%b, X, Y, F); //variables to be displayed X=0; Y=0; //initialise X and Y to 0 #10 X=1; //now X=1, Y=0 after delay of 10 time units #10 Y=1; //now X=1, Y=1 after delay of 10 time units #10 X=0; //now X=0, Y=1 after delay of 10 time units #10 $finish; // of simulation after delay of 10 time units Output produced: X=0 Y=0 F=0 X=1 Y=0 F=0 X=1 Y=1 F=1 X=0 Y=1 F=0 //The file simple.v from module simple (A,B,C,x,y); input A,B,C;

3 output x,y; wire e; and #(10) g1(e,a,b); not #(5) g2(y,c); or #(10) g3(x,e,y); //#(10) indicates the output delay of 10 delay units, g1 is the gate name //The testbench file simple_tb.v module simpletb; reg A, B, C; wire x, y; simple cwd(a, B, C, x, y); initial $display("\t\t time,\t\t A,\t B,\t C,\t x, \t y"); $monitor("%d, \t %b, \t %b, \t %b, \t %b, \t %b", $time, A, B, C, x, y); initial A=1'b0; B=1'b0; C=1'b0; #40 A=1'b1; B=1'b1; C=1'b1; #50 $finish; Compiling simple.v, simple_tb.v produces:- time, A, B, C, x, y 0, 0, 0, 0, x, x 5, 0, 0, 0, x, 1 15, 0, 0, 0, 1, 1 40, 1, 1, 1, 1, 1 45, 1, 1, 1, 1, 0 Operators: Logical operators Expressions connected by && and are evaluated from left to right. Evaluation stops as soon as the result is known. The result is a scalar value: o 0 if the relation is false o 1 if the relation is true o x if any of the operands has x (unknown) bits

4 ! logic negation && logical and logical or Bitwise Operators Bitwise operators perform a bit wise operation on two operands. These operators take each bit in one operand and perform the operation with the corresponding bit in the other operand. If one operand is shorter than the other, it will be exted on the left side with zeroes to match the length of the longer operand. ~ negation & and inclusive or ^ exclusive or ^~ or ~^ exclusive nor (equivalence) Example 1: Implementing a combinational logic circuit:- Solution 1 Structural Level module AOI (input A, B, C, D, output F ); wire w1, w2; //internal connections and (w1, A, B); and (w2, C, D); or (F, w1, w2); Solution 2 Data Flow Level module AOI (input A, B, C, D, output F ); assign F = (A&B) (C&D); // F AB CD Simulation is process of verifying the functional characteristics of models at any level of abstraction. The hardware models are simulated using the simulators. The objective of simulating a hardware model is to test if the codes meets the functional requirements of the specification, and all the blocks in the model are functionally correct. To achieve this, there are two ways: using a testbench waveform (Xilinx ISE 10.1) or write a testbench. Example 2:- Implementing a Full Adder (Structural Model). module full_adder( input A, B, Cin, output S, Cout ); wire s1, c1, c2, c3; xor (s1, A, B); xor (s, Cin, s1); and (c1, A, B); and (c2, s1, Cin); or (Cout, c1, c2);

5 Example 3:- Implementing a Full Adder using Half-Adders and OR gate. //declare the half adder verilog module. module half_adder( input x, y, output s, c ); HA1 xor (s, x, y); and (c, x, y); HA2 //declare the full adder verilog module module full_adder( input a, b, cin, output sum, cout ); wire s1,c1,c2; half_adder HA1 (a, b, s1, c1); OR half_adder HA1 (.x(a),.y(b),.s(s1),.c(c1) ); half_adder HA2 (cin, s1, sum, c2); OR half_adder HA2 (.x(cin),.y(s1),.s(sum),.c(c2) ); or (cout, c1, c2); //complete the block diagram! There are three kind of constants in verilog HDL, integer, real and string. Real and string constants are not supported for synthesis. An integer constant can be written either in simple decimal or base format. When an integer is written in simple decimal form, it is interpreted as a signed number. The integer is represented in synthesis as 32 bits in 2 s complement form. If an integer is written in the base format form, then the integer is treated as an unsigned number. Some examples of integer declaration: 30 Signed number, 32 bits -2 Signed number, 32 bits in 2 s complement format 2 b10 Size of 2 bits 6 d-4 6-bit unsigned number (-4 is in 2 s complement using 6 bits) d bit unsigned number (-10 is in 2 s complement using 32 bits) The basic value holders in hardware are wire, flip-flop and latch. The flip-flop is an edge-triggered storage element while the latch is a level-sensitive storage element. A variable in verilog HDL can either be of the net data type or the register data type. For synthesis, a variable of net type maps to a wire in hardware and a variable of the register type maps either to a wire or a storage element (flip-flop or latch) deping on the context under which the variable is assigned a value. In verilog HDL, a register variable retains its value through the entire simulation run, thus inferring memory. A continuous assignment statement represents, in hardware, logic that is derived from the expression on the right-hand side of the assignment statement driving the net that appears on the left-hand side of the assignment. The target of a continuous assignment is always a net driven by combinational logic. module Continuous (input StatIn, output StatOut) assign StatOut = ~StatIn; //continuous assignment (NOT gate) A procedural assignment statement represents, in hardware, logic that is derived from the expression on the right-hand side of the assignment statement driving the variable that appears on the left-hand side of the

6 assignment. Procedural assignments can appear only within an always statement. There are two kinds of procedural assignment statements: blocking and non-blocking. Blocking Statements: A blocking statement must be executed before the execution of the statements that follow it in a sequential block. module blocking (input clk, a, output c); wire clk, a; reg b, c; (posedge clk ) b = a; c = b; Non-blocking Statements: Non-blocking statements allows to schedule assignments without blocking the procedural flow. The non-blocking procedural statement can be used whenever to make several register assignments within the same time step without regard to order or depence upon each other. It means that nonblocking statements resemble the actual hardware more than blocking assignments. module nonblocking (input clk,a, output c); wire clk, a; reg b, c; (posedge clk ) b <= a; c <= b; The blocking and non-blocking nature of an assignment does not cause any change to the combinational logic generated from the assignment statement itself, but affects the use of the resultant value later on. A good recommation to follow is to use blocking assignments for modelling combinational logic and to use nonblocking assignments for modelling sequential logic. Always block As the name suggests, an always block executes always, unlike initial blocks which execute only once (at the ning of simulation). A second difference is that an always block should have a sensitive list or a delay associated with it. The sensitive list is the one which tells the always block when to execute the block of code, as shown below. symbol after reserved word ' always', indicates that the block will be triggered "at" the condition in parenthesis after One important note about always block: it can not drive wire data type, but can drive reg and integer data types. The conditional if-else statement The if - else statement controls the execution of other statements. In programming language like c, if - else controls the flow of program. When more than one statement needs to be executed for an if condition, then we need to use and as seen in earlier examples. Syntax : if if (condition)

7 statements; Syntax : if-else if (condition) statements; else statements; Syntax : nested if-else-if if (condition) statements; else if (condition) statements; else statements; The case statement The case statement compares an expression to a series of cases and executes the statement or statement group associated with the first matching case: case statement supports single or multiple statements. Group multiple statements using and keywords. Syntax of a case statement look as shown below. case () < case1 > : < statement > < case2 > : < statement >... default : < statement > case Some examples: (a or b or sel) y = 0; if (sel == 0) y = a; else y = b; // 2:1 MUX example The above example is a 2:1 MUX, with input a and b; sel is the select input and y is the mux output. In any combinational logic, output changes whenever input changes. This theory when applied to always blocks means that the code inside always blocks needs to be executed whenever the input variables (or output controlling variables) change. These variables are the ones included in the sensitive list, namely a, b and sel. There are two types of sensitive list: level sensitive (for combinational circuits) and edge sensitive (for flip-flops). The code below is the same 2:1 MUX but the output y is now a flip-flop output. (posedge clk) if (reset == 0)

8 y <= 0; else if (sel == 0) y <= a; else y <= b; Example of 2-1 multiplexer using case statement. module mux_case(out,cntrl,in1,in2); input cntrl,in1,in2; output out; reg out; * case (cntrl) 1'b0 : out = in1; 1'b1 : out = in2; case Example 3:- Implementing a Full Adder (Behavioral Level). module full_adder_behavioral( input a, b, cin, output reg sum, cout); // output are to be declared as registers reg T1, T2, T3, S1; // as variables b, cin) T1=a&b; //blocking assignments executed in sequence T2=b&cin; T3=cin&a; cout=t1 T2 T3; S1=a^b; sum=s1^cin; Sequential Circuits So far we have only been discussing combinational citcuits. This was good as far as our learning of language and its constructs are concerned. Practical FPGA circuits, however, almost always contains sequential circuits. Combinational circuts do not have memory and its present output is a function only of present inputs. A sequential circuit, on the other hand, has memory and its present output deps not only upon present input but also upon past input(s). A better term for past inputs is "state". A sequential circuit consists of finite states and its output deps upon present input and one of these states. Implicit in the design of the sequential circuits is a global clock and the circuit operates on the rising or falling edge of the clock.

9 Flip-Flops A D flip-flop is the most basic building block of sequential circuit. The basic D flip-flop is a sequential device that transfers the value of the D input to the Q output on every rising edge (or falling edge) of the clock. From the abstraction at the top level, a D flip-flop has an Clock and a Data D as input. It has one output designated as Q. For simplicity we do not assume presence of any reset signal. // D Flip Flop without Reset module d_ff (input wire Clock, input wire D, output reg Q ); Clock) //no need D Q = D; This D flip flop is a positive edge-triggered FF. An important thing to note is that the input signal D is not present in the sensitive list. The D signal is sampled only at the rising edge the clock signal. //Testbench for D flip flop `timescale 1ns / 1ps module stimulus; reg Clock, D; wire Q; // Instantiate the Unit Under Test (UUT) d_ff d1 (.Clock(Clock),.D(D),.Q(Q)); integer i; of initial $dumpfile("test.vcd"); $dumpvars(0, stimulus); D = 0; #8 D = 1; #10 D = 0; #10 D = 0; #10 D = 1; #10 D = 0; #10 D = 1; #40; //create VCD file for gtkwave initial //generate 10 clock pulses Clock = 0; for ( i = 0; i <= 10; i = i+1) #10 Clock = ~Clock; initial $monitor("clock=%d, D=%d, Q=%d ", Clock, D, Q); //Display output in tabular form

10 D-FF: (Behavioural model) One of the most useful sequential building blocks is a D flip-flop with an additional asynchronous reset pin. When the reset is not active, it operates as a basic D flip-flop. When the reset pin is active, the output is held to zero. module dff(d, clock, reset, q, qb); input d, clock, reset; output reg q, qb; always@(posedge clock) //no need reset and d case({reset,d}) 2'b00 :q=1'b0; //reset=0, d=0, q=0 2'b01 :q=1'b1; //reset=0, d=1, q=1 default: q=1'b0; //other q=0 because reset=1 case qb<=~q; T-FF: (Behavioural model) If the T input is high, the T flip-flop changes state ( toggles ) whenever the clock input is strobed. If the T input is low, the flip-flop holds the previous value. module tff(t, clock, reset, q, qb); input t, clock, reset; output reg q, qb; always@(posedge clock) //no need reset and t case({reset, t}) 2'b00 :q=q; //reset=0, t=0, q maintain its previous value (no change) 2'b01 :q=~q; //reset=0, t=1, q is toggled default: q=1'b0; //reset=1, q=0 case qb<=~q; JK-FF: (Behavioural model) The JK flip-flop augments the behavior of the SR flip-flop (J=Set, K=Reset) by interpreting the S = R = 1 condition as a flip or toggle command. Specifically, the combination J = 1, K = 0 is a command to set the flip-flop; the combination J = 0, K = 1 is a command to reset the flip-flop; and the combination J = K = 1 is a command to toggle the flip-flop. module jkff(j, k, clock, reset, q, qb); input j, k, clock, reset; output reg q, qb; always@(posedge clock) //no need reset, j and k. // But if reset does not work, may need to include reset case({reset, j, k}) 3'b100 :q=q; //reset=1, j=0, k=0, q hold its previous value 3'b101 :q=0; //reset=1, j=0, k=1, q=0 3'b110 :q=1; //reset=1, j=1, k=0, q=1 3'b111 :q=~q; //reset=1, j=1, k=1, q toggles default :q=0; //reset=0, q=0 case qb<=~q; //assign qb

11 Counters Circuit diagram of 4-bit asynchronous counting up counter using JK flip flops. Code for 4-bit Asynchronous up counter using JK-FF (Structural model): //uses the JK FF module above module ripple_count(j, k, clock, reset, q, qb); input j, k, clock, reset; output wire [3:0]q, qb; jkff JK1(j, k, clock, reset, q[0], qb[0]); jkff JK2(j, k, q[0], reset, q[1], qb[1]); jkff JK3(j, k, q[1], reset, q[2], qb[2]); jkff JK4(j, k, q[2], reset, q[3], qb[3]); //The testbench for the 4-bit asynchronous up counter using JK FF module ripple4tb; reg j,k,clock,reset; // Inputs wire [3:0] q,qb; // Outputs // Instantiate the Unit Under Test (UUT) ripple_count uut (.j(j),.k(k),.clock(clock),.reset(reset),.q(q),.qb(qb)); //Create clock for the counter. initial clock = 0; always #10 clock = ~clock; initial $dumpfile("test1.vcd"); $dumpvars(0, ripple4tb); //for the gtkwave waveform viewer // Initialize Inputs j=0; k=0; reset=0; //counter output=0000

12 //Apply inputs #40; reset=1; j=1; k=1; //counter will count up #700; reset=0; j=1;k=1; //counter reset to 0000 #800 reset=1; j=1;k=1; //counter will count up #1200 $finish; initial //for the DOS tabular display $monitor("t=%3d, j=%d, k=%d, reset=%d, q=%4b", $time, j, k, reset, q); Circuit diagram of a 4-bit Synchronous up counter using T-FF module tff(t,clock,reset,q,qb); input t,clock,reset; output reg q,qb; always@(posedge clock) //No need reset and t. But if reset does not work, need to include reset case({reset,t}) 2'b00 :q=q; 2'b01 :q=~q; default: q=0; case qb<=~q; module sync_up(t,clock,reset,q,qb); input t,clock, reset; output [3:0]q,qb; wire x1, x2;

13 tff T0(t, clock, reset, q[0], qb[0]); tff T1(q[0], clock, reset, q[1], qb[1]); and A1(x1, q[0], q[1]); tff T2(x1, clock, reset, q[2], qb[2]); and A2(x2, q[2], x1); tff T3(x2, clock, reset, q[3], qb[3]);

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

Design Using Verilog

Design Using Verilog EGC220 Design Using Verilog Baback Izadi Division of Engineering Programs bai@engr.newpaltz.edu Basic Verilog Lexical Convention Lexical convention are close to C++. Comment // to the of the line. /* to

More information

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits Name: Instructor: Engr. Date Performed: Marks Obtained: /10 Group Members (ID):. Checked By: Date: Experiment # 11 Introduction to Verilog II Sequential Circuits OBJECTIVES: To understand the concepts

More information

Digital Design with FPGAs. By Neeraj Kulkarni

Digital Design with FPGAs. By Neeraj Kulkarni Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic

More information

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification. 1-4.1 1-4.2 Spiral 1 / Unit 4 Verilog HDL Mark Redekopp OVERVIEW 1-4.3 1-4.4 Digital Circuit Design Steps Digital Circuit Design Description Design and computer-entry of circuit Verification Input Stimulus

More information

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering VERILOG FUNDAMENTALS HDLs HISTORY HOW FPGA & VERILOG ARE RELATED CODING IN VERILOG HDLs HISTORY HDL HARDWARE DESCRIPTION LANGUAGE

More information

DIGITAL SYSTEM DESIGN

DIGITAL SYSTEM DESIGN DIGITAL SYSTEM DESIGN Prepared By: Engr. Yousaf Hameed Lab Engineer BASIC ELECTRICAL & DIGITAL SYSTEMS LAB DEPARTMENT OF ELECTRICAL ENGINEERING Digital System Design 1 Name: Registration No: Roll No: Semester:

More information

Contents. Appendix D Verilog Summary Page 1 of 16

Contents. Appendix D Verilog Summary Page 1 of 16 Appix D Verilog Summary Page 1 of 16 Contents Appix D Verilog Summary... 2 D.1 Basic Language Elements... 2 D.1.1 Keywords... 2 D.1.2 Comments... 2 D.1.3 Identifiers... 2 D.1.4 Numbers and Strings... 3

More information

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog

More information

Verilog HDL Introduction

Verilog HDL Introduction EEE3050 Theory on Computer Architectures (Spring 2017) Prof. Jinkyu Jeong Verilog HDL Introduction 2017.05.14 TA 이규선 (GYUSUN LEE) / 안민우 (MINWOO AHN) Modules The Module Concept Basic design unit Modules

More information

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation A Verilog Primer An Overview of Verilog for Digital Design and Simulation John Wright Vighnesh Iyer Department of Electrical Engineering and Computer Sciences College of Engineering, University of California,

More information

Introduction to Verilog HDL. Verilog 1

Introduction to Verilog HDL. Verilog 1 Introduction to HDL Hardware Description Language (HDL) High-Level Programming Language Special constructs to model microelectronic circuits Describe the operation of a circuit at various levels of abstraction

More information

Verilog introduction. Embedded and Ambient Systems Lab

Verilog introduction. Embedded and Ambient Systems Lab Verilog introduction Embedded and Ambient Systems Lab Purpose of HDL languages Modeling hardware behavior Large part of these languages can only be used for simulation, not for hardware generation (synthesis)

More information

Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL. Variables and Logic Value Set. Data Types. Why use an HDL?

Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL. Variables and Logic Value Set. Data Types. Why use an HDL? Why use an HDL? Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL Increase digital design engineer s productivity (from Dataquest) Behavioral HDL RTL HDL Gates Transistors 2K 10K gates/week

More information

Hardware description languages

Hardware description languages Specifying digital circuits Schematics (what we ve done so far) Structural description Describe circuit as interconnected elements Build complex circuits using hierarchy Large circuits are unreadable Hardware

More information

Lab 7 (All Sections) Prelab: Introduction to Verilog

Lab 7 (All Sections) Prelab: Introduction to Verilog Lab 7 (All Sections) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The

More information

Chapter 2 Using Hardware Description Language Verilog. Overview

Chapter 2 Using Hardware Description Language Verilog. Overview Chapter 2 Using Hardware Description Language Verilog CSE4210 Winter 2012 Mokhtar Aboelaze based on slides by Dr. Shoab A. Khan Overview Algorithm development isa usually done in MATLAB, C, or C++ Code

More information

Chap 6 Introduction to HDL (d)

Chap 6 Introduction to HDL (d) Design with Verilog Chap 6 Introduction to HDL (d) Credit to: MD Rizal Othman Faculty of Electrical & Electronics Engineering Universiti Malaysia Pahang Ext: 6036 VERILOG HDL Basic Unit A module Module

More information

14:332:231 DIGITAL LOGIC DESIGN. Hardware Description Languages

14:332:231 DIGITAL LOGIC DESIGN. Hardware Description Languages 14:332:231 DIGITAL LOGIC DESIGN Ivan Marsic, Rutgers University Electrical & Computer Engineering Fall 2013 Lecture #22: Introduction to Verilog Hardware Description Languages Basic idea: Language constructs

More information

Schematic design. Gate level design. 0 EDA (Electronic Design Assistance) 0 Classical design. 0 Computer based language

Schematic design. Gate level design. 0 EDA (Electronic Design Assistance) 0 Classical design. 0 Computer based language 1 / 15 2014/11/20 0 EDA (Electronic Design Assistance) 0 Computer based language 0 HDL (Hardware Description Language) 0 Verilog HDL 0 Created by Gateway Design Automation Corp. in 1983 First modern hardware

More information

Synthesizable Verilog

Synthesizable Verilog Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL

More information

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

More information

Introduction. Purpose. Intended Audience. Conventions. Close

Introduction. Purpose. Intended Audience. Conventions. Close Introduction Introduction Verilog-XL is a simulator that allows you to test the logic of a design. The process of logic simulation in Verilog-XL is as follows: 1. Describe the design to Verilog-XL. 2.

More information

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out

More information

Federal Urdu University of Arts, Science and Technology, Islamabad VLSI SYSTEM DESIGN. Prepared By: Engr. Yousaf Hameed.

Federal Urdu University of Arts, Science and Technology, Islamabad VLSI SYSTEM DESIGN. Prepared By: Engr. Yousaf Hameed. VLSI SYSTEM DESIGN Prepared By: Engr. Yousaf Hameed Lab Engineer BASIC ELECTRICAL & DIGITAL SYSTEMS LAB DEPARTMENT OF ELECTRICAL ENGINEERING VLSI System Design 1 LAB 01 Schematic Introduction to DSCH and

More information

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language Lab #1 Lecture 8, 9, &10: FPGA Dataflow and Verilog Modeling February 9, 11, 13, 2015 Prof R Iris Bahar Lab #1 is posted on the webpage wwwbrownedu/departments/engineering/courses/engn1640 Note for problem

More information

Department of Computer Science and Electrical Engineering. Intro to Verilog II

Department of Computer Science and Electrical Engineering. Intro to Verilog II Department of Computer Science and Electrical Engineering Intro to Verilog II http://6004.csail.mit.edu/6.371/handouts/l0{2,3,4}.pdf http://www.asic-world.com/verilog/ http://www.verilogtutorial.info/

More information

VLSI Design 13. Introduction to Verilog

VLSI Design 13. Introduction to Verilog Last module: Sequential circuit design Design styles This module Synthesis Brief introduction to Verilog Synthesis in the Design Flow Designer Tasks Tools Architect Logic Designer Circuit Designer Define

More information

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design Techniques for Digital Systems Lab CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check

More information

Lecture 32: SystemVerilog

Lecture 32: SystemVerilog Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:

More information

Behavioral Modeling and Timing Constraints

Behavioral Modeling and Timing Constraints Introduction Behavioral modeling was introduced in Lab 1 as one of three widely used modeling styles. Additional capabilities with respect to testbenches were further introduced in Lab 4. However, there

More information

A Brief Introduction to Verilog Hardware Definition Language (HDL)

A Brief Introduction to Verilog Hardware Definition Language (HDL) www.realdigital.org A Brief Introduction to Verilog Hardware Definition Language (HDL) Forward Verilog is a Hardware Description language (HDL) that is used to define the structure and/or behavior of digital

More information

Behavioral Modeling and Timing Constraints

Behavioral Modeling and Timing Constraints Lab Workbook Introduction Behavioral modeling was introduced in Lab 1 as one of three widely used modeling styles. Additional capabilities with respect to testbenches were further introduced in Lab 4.

More information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital

More information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly

More information

CSE140L: Components and Design

CSE140L: Components and Design CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam

More information

Online Verilog Resources

Online Verilog Resources EECS 427 Discussion 6: Verilog HDL Reading: Many references EECS 427 F08 Discussion 6 1 Online Verilog Resources ASICs the book, Ch. 11: http://www.ge.infn.it/~pratolo/verilog/verilogtutorial.pdf it/ pratolo/verilog/verilogtutorial

More information

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language COMS W4995-02 Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language Originally a modeling language for a very efficient event-driven

More information

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University Digital Circuit Design and Language Datapath Design Chang, Ik Joon Kyunghee University Typical Synchronous Design + Control Section : Finite State Machine + Data Section: Adder, Multiplier, Shift Register

More information

register:a group of binary cells suitable for holding binary information flip-flops + gates

register:a group of binary cells suitable for holding binary information flip-flops + gates 9 차시 1 Ch. 6 Registers and Counters 6.1 Registers register:a group of binary cells suitable for holding binary information flip-flops + gates control when and how new information is transferred into the

More information

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28 99-1 Under-Graduate Project Verilog Simulation & Debugging Tools Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28 ACCESS IC LAB Outline Basic Concept of Verilog HDL Gate Level Modeling

More information

VERILOG HDL. (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6

VERILOG HDL. (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6 VERILOG HDL (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6 Some Reference Material The following are suggested reading.. http://engnet.anu.edu.au/decourses/engn3213/documents/verilog/ VerilogIntro.pdf

More information

Chap 3. Modeling structure & basic concept of Verilog HDL

Chap 3. Modeling structure & basic concept of Verilog HDL Chap 3. Modeling structure & basic concept of Verilog HDL Fall semester, 2016 Prof. Jaeseok Kim School of Electrical & Electronics Eng. Yonsei university jaekim@yonsei.ac.kr Digital System Design 3-1 Chapter

More information

Introduction to Verilog

Introduction to Verilog Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals Presentation Outline Hardware Description Language Logic Simulation versus Synthesis

More information

Hardware description language (HDL)

Hardware description language (HDL) Hardware description language (HDL) A hardware description language (HDL) is a computer-based language that describes the hardware of digital systems in a textual form. It resembles an ordinary computer

More information

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but

More information

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 Professor Sherief Reda http://scaleenginbrownedu Electrical Sciences and Computer Engineering School of Engineering Brown University

More information

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture)

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture) Last Lecture The basic component of a digital circuit is the MOS transistor Transistor have instrinsic resistance and capacitance, so voltage values in the circuit take some time to change ( delay ) There

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for

More information

Digital Design with SystemVerilog

Digital Design with SystemVerilog Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?

More information

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0 Lab 0: Tutorial on Xilinx Project Navigator & ALDEC s Active-HDL Simulator CSE 591: Advanced Hardware Design and Verification Assigned: 01/05/2011 Due: 01/19/2011 Table of Contents 1 Overview... 2 1.1

More information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3 Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog

More information

DEPT OF ECE EC6612 -VLSI DESIGN LABORATORY MANUAL (REGULATION-2013) LAB MANUAL DEPARTMENT OF ECE NAME: REGISTER NUMBER: YEAR/SEM.: ACADEMIC YEAR: 2015-2016 DEPT OF ECE EC6612 -VLSI DESIGN LABORATORY MANUAL

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2016 1 Topics 1. Programmable logic

More information

Verilog Tutorial (Structure, Test)

Verilog Tutorial (Structure, Test) Digital Circuit Design and Language Verilog Tutorial (Structure, Test) Chang, Ik Joon Kyunghee University Hierarchical Design Top-down Design Methodology Bottom-up Design Methodology Module START Example)

More information

EGC220 - Digital Logic Fundamentals

EGC220 - Digital Logic Fundamentals EGC220 - Digital Logic Fundamentals VERILOG Hardware Description Language - 1 Hardware description language is a text based programming language that is used to model a piece of hardware. VERILOG is a

More information

Lecture 15: System Modeling and Verilog

Lecture 15: System Modeling and Verilog Lecture 15: System Modeling and Verilog Slides courtesy of Deming Chen Intro. VLSI System Design Outline Outline Modeling Digital Systems Introduction to Verilog HDL Use of Verilog HDL in Synthesis Reading

More information

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2017 1 Topics 1. Programmable logic

More information

VERILOG HDL. 1 ENGN3213: Digital Systems and Microprocessors L#5-6

VERILOG HDL. 1 ENGN3213: Digital Systems and Microprocessors L#5-6 VERILOG HDL 1 ENGN3213: Digital Systems and Microprocessors L#5-6 Some Reference Material (mostly advanced) \vspace{10mm} http://engnet.anu.edu.au/decourses/engn3213/documents/verilog/ VerilogIntro SASAKI.pdf

More information

Writing Circuit Descriptions 8

Writing Circuit Descriptions 8 8 Writing Circuit Descriptions 8 You can write many logically equivalent descriptions in Verilog to describe a circuit design. However, some descriptions are more efficient than others in terms of the

More information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

Combinational Logic II

Combinational Logic II Combinational Logic II Ranga Rodrigo July 26, 2009 1 Binary Adder-Subtractor Digital computers perform variety of information processing tasks. Among the functions encountered are the various arithmetic

More information

Lecture #2: Verilog HDL

Lecture #2: Verilog HDL Lecture #2: Verilog HDL Paul Hartke Phartke@stanford.edu Stanford EE183 April 8, 2002 EE183 Design Process Understand problem and generate block diagram of solution Code block diagram in verilog HDL Synthesize

More information

Why Should I Learn This Language? VLSI HDL. Verilog-2

Why Should I Learn This Language? VLSI HDL. Verilog-2 Verilog Why Should I Learn This Language? VLSI HDL Verilog-2 Different Levels of Abstraction Algorithmic the function of the system RTL the data flow the control signals the storage element and clock Gate

More information

VERILOG CODES //SPECIAL COMBINATIONAL LOGIC CIRCUITS

VERILOG CODES //SPECIAL COMBINATIONAL LOGIC CIRCUITS VERILOG CODES //SPECIAL COMBINATIONAL LOGIC CIRCUITS //VERILOG CODE FOR THE IMPLEMENTATION OF HALF ADDER (DATAFLOW MODEL) module half_adder(a, b, sum, cout); input a,b; output sum,cout; assign sum=a ^

More information

ECEN 449 Microprocessor System Design. Verilog. Texas A&M University

ECEN 449 Microprocessor System Design. Verilog. Texas A&M University ECEN 449 Microprocessor System Design Verilog 1 Objectives of this Lecture Unit Get a feel for the basics of Verilog The focus of this unit will be along two separate but equally relevant axes We will

More information

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1] FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language Reference: [] FIELD PROGRAMMABLE GATE ARRAY FPGA is a hardware logic device that is programmable Logic functions may be programmed

More information

ENGN1640: Design of Computing Systems Topic 02: Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Topics 1. Programmable logic 2.

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

Icarus Verilog HDL (iverilog)

Icarus Verilog HDL (iverilog) Icarus Verilog HDL (iverilog) It is a good idea to install a compiler / simulator on the PC. This will allow you to save your code on your computer and will allow you to do some things not possible online.

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

More information

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1 DIGITAL LOGIC WITH VHDL (Fall 23) Unit DESIGN FLOW DATA TYPES LOGIC GATES WITH VHDL TESTBENCH GENERATION DESIGN FLOW Design Entry: We specify the logic circuit using a Hardware Description Language (e.g.,

More information

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign I hope you have completed Part 1 of the Experiment. This lecture leads you to Part 2 of the experiment and hopefully helps you with your progress to Part 2. It covers a number of topics: 1. How do we specify

More information

- 1 of 18 - The Verilog Hardware Description Language - A Behavioural View Overview. The Behavioural Model

- 1 of 18 - The Verilog Hardware Description Language - A Behavioural View Overview. The Behavioural Model The Verilog Hardware Description Language - A Behavioural View Overview In this lesson we will Introduce and explore the Verilog behavioural level model. Introduce the behavioural operators. Study the

More information

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb UMass Amherst Fall 2017

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb UMass Amherst Fall 2017 ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb UMass Amherst Fall 2017 What You Will Do In Lab 4 Design and implement a serial MIDI receiver Hardware in an Altera Complex Programmable Logic Device

More information

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 Recall What You Will Do Design and implement a serial MIDI receiver Hardware in

More information

Introduction To Verilog Design. Chun-Hung Chou

Introduction To Verilog Design. Chun-Hung Chou Introduction To Verilog Design Chun-Hung Chou 1 Outline Typical Design Flow Design Method Lexical Convention Data Type Data Assignment Event Control Conditional Description Register Description Synthesizable

More information

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware

More information

Introduction to Verilog/System Verilog

Introduction to Verilog/System Verilog NTUEE DCLAB Feb. 27, 2018 Introduction to Verilog/System Verilog Presenter: Yao-Pin Wang 王耀斌 Advisor: Prof. Chia-Hsiang Yang 楊家驤 Dept. of Electrical Engineering, NTU National Taiwan University What is

More information

Introduction to Digital Design with Verilog HDL

Introduction to Digital Design with Verilog HDL Introduction to Digital Design with Verilog HDL Modeling Styles 1 Levels of Abstraction n Behavioral The highest level of abstraction provided by Verilog HDL. A module is implemented in terms of the desired

More information

101-1 Under-Graduate Project Digital IC Design Flow

101-1 Under-Graduate Project Digital IC Design Flow 101-1 Under-Graduate Project Digital IC Design Flow Speaker: Ming-Chun Hsiao Adviser: Prof. An-Yeu Wu Date: 2012/9/25 ACCESS IC LAB Outline Introduction to Integrated Circuit IC Design Flow Verilog HDL

More information

Verilog Design Principles

Verilog Design Principles 16 h7fex // 16-bit value, low order 4 bits unknown 8 bxx001100 // 8-bit value, most significant 2 bits unknown. 8 hzz // 8-bit value, all bits high impedance. Verilog Design Principles ECGR2181 Extra Notes

More information

EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references. EECS 427 W07 Lecture 14 1

EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references. EECS 427 W07 Lecture 14 1 EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references EECS 427 W07 Lecture 14 1 Online Verilog Resources ASICs the book, Ch. 11: http://www.ge.infn.it/~pratolo/verilog/verilogtutorial.pdf

More information

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified.

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. 1 In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. I will also introduce the idea of a testbench as part of a design specification.

More information

LAB K Basic Verilog Programming

LAB K Basic Verilog Programming LAB K Basic Verilog Programming Perform the following groups of tasks: LabK1.v 1. Create a directory to hold the files of this lab. 2. Launch your favourite editor and a command-prompt console; you will

More information

Digital Design (VIMIAA01) Introduction to the Verilog HDL

Digital Design (VIMIAA01) Introduction to the Verilog HDL BUDAPEST UNIVERSITY OF TECHNOLOGY AND ECONOMICS FACULTY OF ELECTRICAL ENGINEERING AND INFORMATICS DEPARTMENT OF MEASUREMENT AND INFORMATION SYSTEMS Digital Design (VIMIAA01) Introduction to the Verilog

More information

Verilog 1 - Fundamentals

Verilog 1 - Fundamentals Verilog 1 - Fundamentals FA FA FA FA module adder( input [3:0] A, B, output cout, output [3:0] S ); wire c0, c1, c2; FA fa0( A[0], B[0], 1 b0, c0, S[0] ); FA fa1( A[1], B[1], c0, c1, S[1] ); FA fa2( A[2],

More information

Verilog HDL. Testing & Verification Dept. of Computer Science & Engg,, IIT Kharagpur

Verilog HDL. Testing & Verification Dept. of Computer Science & Engg,, IIT Kharagpur Verilog HDL Testing & Verification Dept. of Computer Science & Engg,, IIT Kharagpur Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in in-charge, AVLSI Design Lab, Indian Institute

More information

Nikhil Gupta. FPGA Challenge Takneek 2012

Nikhil Gupta. FPGA Challenge Takneek 2012 Nikhil Gupta FPGA Challenge Takneek 2012 RECAP FPGA Field Programmable Gate Array Matrix of logic gates Can be configured in any way by the user Codes for FPGA are executed in parallel Configured using

More information

Code No: R Set No. 1

Code No: R Set No. 1 Code No: R059210504 Set No. 1 II B.Tech I Semester Regular Examinations, November 2007 DIGITAL LOGIC DESIGN ( Common to Computer Science & Engineering, Information Technology and Computer Science & Systems

More information

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx CSE140L: Components and Design Techniques for Digital Systems Lab Verilog HDL Instructor: Mohsen Imani UC San Diego Source: Eric Crabill, Xilinx 1 Hardware description languages Used to describe & model

More information

Register Transfer Level in Verilog: Part I

Register Transfer Level in Verilog: Part I Source: M. Morris Mano and Michael D. Ciletti, Digital Design, 4rd Edition, 2007, Prentice Hall. Register Transfer Level in Verilog: Part I Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National

More information

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 98-1 Under-Graduate Project Synthesis of Combinational Logic Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 What is synthesis? Outline Behavior Description for Synthesis Write Efficient HDL

More information

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis Synthesis of Language Constructs 1 Nets Nets declared to be input or output ports are retained Internal nets may be eliminated due to logic optimization User may force a net to exist trireg, tri0, tri1

More information

Department of Computer Science & Engineering. Lab Manual DIGITAL LAB. Class: 2nd yr, 3rd sem SYLLABUS

Department of Computer Science & Engineering. Lab Manual DIGITAL LAB. Class: 2nd yr, 3rd sem SYLLABUS Department of Computer Science & Engineering Lab Manual 435 DIGITAL LAB Class: 2nd yr, 3rd sem SYLLABUS. Verification of Boolean theorems using digital logic gates. 2. Design and implementation of code

More information

Chapter 4 :: Topics. Introduction. SystemVerilog. Hardware description language (HDL): allows designer to specify logic function only.

Chapter 4 :: Topics. Introduction. SystemVerilog. Hardware description language (HDL): allows designer to specify logic function only. Chapter 4 :: Hardware Description Languages Digital Design and Computer Architecture David Money Harris and Sarah L. Harris Chapter 4 :: Topics Introduction Combinational Logic Structural Modeling Sequential

More information