Combinational Verilog Intro. EECS 270 Labs

Size: px
Start display at page:

Download "Combinational Verilog Intro. EECS 270 Labs"

Transcription

1 Combinational Verilog Intro EECS 270 Labs

2 From Schematics to Verilog e-gate-arrays-fpga _US/pdfs/literature/wp/wp pdf

3 Schematics to Verilog cont. a1 module add_half (a, b, s, cout); input a, b; output s, cout; wire s, cout; assign s = a ^ b;assign cout = a & b; endmodule // end of half adder module module add_full (a, b, cin, s, cout); input a, b, cin; output s, cout; wire s, cout; assign s = a ^ b ^ cin; assign cout = (a & b) (a & cin) (b & cin); endmodule // end of full adder module module add_2bit (a, b, s, cout); input [1:0] a, b; output [1:0] s; output cout; wire [1:0] s; wire cout; // Both a and b are 2 bit inputs // s[1] = MSB of s, s[0] = LSB of s wire c0; add_half a1(a[0], b[0], s[0], c0); // intermediate carry between adders add_full a2(a[1], b[1], c0, s[1], cout); endmodule a2

4 Verilog Modular Structure Module Definition: module <module name> (<input list>, <output list>); input <name>, output endmodule Input list and output list (in that order) are comma-separated list of variable names (identifiers) Can define multi-bit signals with type[n:0] name representing a n+1 bit input/output Module Instantiations: <module name> <instance name> (<parameter list>);

5 Verilog Literals <size><base format><number> Size: In decimal, the number of bits of <number> Base Format Options: b binary d decimal o octal h hexadecimal Examples: 549 'h8ff 'o765 4'b11 // 4-bit binary number 'd3 // 5-bit decimal number

6 Macros `define <MACRO_NAME> <literal> a = b & `<MACRO_NAME>; Don t forget the `, same key as tilda on the keyboard. Example: `define FORWARD 7 b ; hex[6:0] = `FORWARD;

7 Behavioral Verilog Operators & Bitwise AND Bitwise OR ~ Bitwise Negation (eg. ~A, ~(A & B), (~A B) ^ Bitwise XOR << n Left shift by n >> n Right shift by n {} Concatenation {a,b,c} puts a, b, and c after one another into a single value {n{m}} makes a single value that is n copies of m, one after the other cond? iftrue : iffalse Ternary (Conditional Operator) assign mux_out = (sel == 1)? in1 : in0; If sel equals 1, mux_out = in1, else mux_out = in0;

8 Structural Verilog Specifically indicates which gates to instantiate AND, OR, XOR, NOT, NAND, NOR <gate type> <instance name> (<output name> <input list>); If output name is a multi-bit signal, multiple instances of the gate will be made Input bit widths must match output bit widths module add_half (a, b, s, cout); input a, b;output s, cout;wire s, cout; xor x1 (s, a, b); and a1 (cout, a, b); endmodule // end of half adder module module add_full (a, b, cin, s, cout); input a, b, cin; output s, cout; wire s, cout; wire ab, ac, bc; // Intermediate AND gate outputs xor x2 (s, a, b, cin); and a2 (ab, a, b); and a3 (ac, a, cin); and a4 (bc, b, cin); or o1 (cout, ab, bc, ac); endmodule // end of full adder module

9 Behavioral vs Structural Verilog A LUT ( Look Up Table) as a truth table Behavioral Verilog takes advantage of LUTs that condense boolean logic to single logic blocks Structural Verilog instantiates individual gates in ea. Logic block University of Florida ECE Department Reconfigurable Architectures

10 Lab 3 Intro EECS 270 Labs

11 Robbie Goal: Drive to a beacon by controlling two wheels Robbie can go straight, right, or left Inputs to Robbie: Sensors on Front, Right and Left Sensor outputs 1 if detects beacon Outputs from Robbie: Right and Left Wheel Motion Each wheel can either go forward (F), or stop (S). Schematic & Verilog Versions, use separate Quartus Projects!

12 Robbie s Rules (Logic) Go straight if Forward beacon sensor or Right and Left sensors are 1 Go right if: Go left if: Stop if: Forward and Right sensors but not Left sensor Right sensor only Forward and Left sensors but not Right sensor Left sensor only Forward, Right, and Left None (All sensors drive low)

13 Controlling Robbie Action Left Wheel Right Wheel Straight Forward Forward Right Forward Stop Left Stop Forward Stop Stop Stop

14 Schematic and Verilog Implementations Sensors: Wheels SW[2] : Left SW[1] : Forward SW[0] : Right LEDR[1] (ON/OFF): Left Wheel Forward/Stopped LEDR[0] (ON/OFF): Right Wheel Forward/Stopped Sensors: Wheels SW[2] : Left SW[1] : Forward SW[0] : Right HEX1 -> F/S: Left Wheel Forward/Stopped HEX0 -> F/S: Right Wheel Forward/Stopped (HEX are active low!)

15 Robbie Verilog Top-level module name must be same as your project name Inputs: Left sensor, forward sensor, right sensor Outputs: [6:0] left wheel drive [6:0] right wheel drive HEX submodules will take a single control bit input (Forward or Stopped) and write to the hex displays Every time you instantiate a new submodule it must have a new instance name E.g. outputsf osf1(<input_parameter_list>,<output_params_list>); outputsf osf2(<input_parameter_list>,<output_params_list>);

16 Quick aside on bit sets/bit strings/busses [n-1:0] a_name = n hfa800f LSB: a_name[0] MSB: a_name[n-1] = 1 output [6:0] lwd, rwd assign lwd = 7 h11 lwd[0] = 1 lwd[4] = 1 lwd[6:5], lwd[3:1] are 0 [0] [1] [2] n n [n-1]

17 Robbie Verilog Top level module name = verilog file name = quartus project name Submodules can be in the same verilog file. FPGA pin assignments ( QSF file ) are made to the top-level-module s inputs and output names E.g. set_location_assignment PIN_H21 -to LEDG[4] Replace LEDG[4] with the output name you used in top level module

18 Renee (no schematic, only verilog) Goal: Drive to the beacon, responding to obstacles Inputs: Beacon Sensors [2:0] 2 sensors, front-left, front-right 3-bit unsigned number: signal strength, higher = closer Bumper Sensors (Active Low) 4 sensors, front, back, right, left Outputs: Wheels Forward (F), Backwards (r), Stop (S) Left Bumper Left Beacon Sensor Front Bumper Renee Back Bumper Right Beacon Sensor Right Bumper

19 Renee s Rules (Logic) First priority is dealing w/obstacles, then head to beacon (Robbie beacon logic) Go forward if Back bumper sensor only is active Right and Left beacon sensors are both not 0 and are both equal strength Go reverse if Go right if: Go left if: Front bumper sensor only is active Left and Back bumpers only are active Right and Back bumpers only are active Go left-back if Right and Front bumpers only are active Right bumper only is active Go right-back if Stop if: Left and Front bumpers only are active Left bumper only is active Right and Left beacon sensors are both 0 Right and Left bumpers are active Top and Bottom bumpers are active

20 Controlling Renee Action Left Wheel Right Wheel Forward Forward Forward Left Stop Forward Right Forward Stop Stop Stop Stop Left Back Stop Reverse Right Back Reverse Stop Reverse Stop Reverse

21 Verilog Implementation Beacon Sensors: SW[6:4] : Left SW[2:0] : Right Note: SW[3] unused Bumper Sensors: Key3 : Left Key0 : Right Key2: Front Key1 : Back Note: Buttons are Active low, collision occurs if key is pressed (like an actual bumper) Wheels HEX1 -> F/S/r: Left Wheel Forward/Stopped/reverse HEX0 -> F/S/r: Right Wheel Forward/Stopped/reverse Note: r is displayed as segments 4 & 6 on the hex.

22 Renee Verilog Notes Top level module name = verilog file name = quartus project name renee renee.v renee.qpf module renee(ls,rs,fb,rb,lb,bb,lwd,rwd); input [2:0] ls,rs; //Beacon sensors input fb, rb, lb, bb; //Bumper sensors output [6:0]lwd,rwd; //wheel outputs

23 Renee Verilog Hints Don t try to write a truth table for Renee, think about the logic description in english and how ifs may translate to ands, ors, etc. in verilog Make intermediate results, be ~modular~ Ideas: Modules to represent sensor/ bumper driven modes? Module to compare the sensor values? Module to determine where beacon is? Use a submodule to manage hex, like Robbie s but with edits for reverse No conditionals allowed in this lab (if, else) Declare hex outputs as sets in Verilog (i.e. output [6:0] lwd) so they can be displayed as a bus on the simulation waveform.

24 In-Lab and Post-Lab Deliverables In-Lab Demo Part 1: Robbie Verilog running on DE2 board In-Lab Demo Part 2: Renee running on DE2 board (Signed separate from part 1), due the week after demo part 1 Post Lab: Robbie functional sim waveform and testbench Post Lab: Renee functional sim waveform and testbench for given test cases For both sims display wheels as a bus ( see bottom for what this should look like ) Post Lab: Verilog code for Robbie and Renee Post Lab: Questions in Post Lab Post Lab is due the week after Demo Part 2. Example of what a simulation displaying the output as a bus looks like. You will achieve this by labeling the output as a bus in the testbench (using [6:0] instead of listing each segment of the display)

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

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

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

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog Verilog Radek Pelánek and Šimon Řeřucha Contents 1 Computer Aided Design 2 Basic Syntax 3 Gate Level Modeling 4 Behavioral Modeling Computer Aided Design Hardware Description Languages (HDL) Verilog C

More information

ECEN 468 Advanced Digital System Design

ECEN 468 Advanced Digital System Design ECEN 468 Advanced Digital System Design Lecture 19: Logic Design with Verilog Verilog Module v Description of internal structure/function o Implicit semantic of time associated with each data object/ signal

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

Engineering 303 Digital Logic Design Fall 2018

Engineering 303 Digital Logic Design Fall 2018 Engineering 303 Digital Logic Design Fall 2018 LAB 4: Seven Seg, Full Adder, Ripple Adder, Heirarchical Design Build the following designs and verify correct operation. This lab uses hierarchical design.

More information

LAB 4: Seven Seg, Full Adder, Ripple Adder, Heirarchical Design

LAB 4: Seven Seg, Full Adder, Ripple Adder, Heirarchical Design Engineering 303 Digital Logic Design LAB 4: Seven Seg, Full Adder, Ripple Adder, Heirarchical Design Build the following designs and verify correct operation. This lab uses hierarchical design. Review

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 Module 1 Introduction and Combinational Logic

Verilog Module 1 Introduction and Combinational Logic Verilog Module 1 Introduction and Combinational Logic Jim Duckworth ECE Department, WPI 1 Module 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog

More information

Experiment 7 Arithmetic Circuits Design and Implementation

Experiment 7 Arithmetic Circuits Design and Implementation Experiment 7 Arithmetic Circuits Design and Implementation Introduction: Addition is just what you would expect in computers. Digits are added bit by bit from right to left, with carries passed to the

More information

ECE 353 Lab 3 (Verilog Design Approach)

ECE 353 Lab 3 (Verilog Design Approach) ECE 353 Lab 3 (Verilog Design Approach) Prof Daniel Holcomb Recall What You Will Do Design and implement a serial MIDI receiver Hardware in an Altera Complex Programmable Logic Device (CPLD) MAX 7000S

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

Introduction to Verilog design. Design flow (from the book)

Introduction to Verilog design. Design flow (from the book) Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 1 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

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

Combinational Logic Design with Verilog. ECE 152A Winter 2012

Combinational Logic Design with Verilog. ECE 152A Winter 2012 Combinational Logic Design with Verilog ECE 152A Winter 2012 Reading Assignment Brown and Vranesic 2 Introduction to Logic Circuits 2.10 Introduction to Verilog 2.10.1 Structural Specification of Logic

More information

Lab 4: Arithmetic Logic Unit (ALU)

Lab 4: Arithmetic Logic Unit (ALU) EE 231-1 - Fall 2016 Lab 4: Arithmetic Logic Unit (ALU) Introduction The heart of every computer is an Arithmetic Logic Unit (ALU). This is the part of the computer which performs arithmetic operations

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

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

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

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

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

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

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

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2 Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

Physics 364, Fall 2012, reading due your answers to before the end of Wednesday s lab.

Physics 364, Fall 2012, reading due your answers to before the end of Wednesday s lab. Physics 364, Fall 2012, reading due 2012-11-28. Email your answers to ashmansk@hep.upenn.edu before the end of Wednesday s lab. Course materials and schedule are at http://positron.hep.upenn.edu/p364 Assignment:

More information

University of California, Davis Department of Electrical and Computer Engineering. Lab 1: Implementing Combinational Logic in the MAX10 FPGA

University of California, Davis Department of Electrical and Computer Engineering. Lab 1: Implementing Combinational Logic in the MAX10 FPGA 1 University of California, Davis Department of Electrical and Computer Engineering EEC180B DIGITAL SYSTEMS II Winter Quarter 2018 Lab 1: Implementing Combinational Logic in the MAX10 FPGA Objective: This

More information

ENEE245 Digital Circuits and Systems Lab Manual

ENEE245 Digital Circuits and Systems Lab Manual ENEE245 Digital Circuits and Systems Lab Manual Department of Engineering, Physical & Computer Sciences Montgomery College Modified Fall 2017 Copyright Prof. Lan Xiang (Do not distribute without permission)

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

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2)

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2) EN2911X: Lecture 05: Verilog (2) Prof. Sherief Reda Division of Engineering, Brown University Fall 09 http://scale.engin.brown.edu Dataflow modeling Module is designed by specifying the data flow, where

More information

Introduction to Verilog

Introduction to Verilog 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 of logic gates to a complete system. A module

More information

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 10: Implementing Binary Adders. Name: Date:

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 10: Implementing Binary Adders. Name: Date: EXPERIMENT # 10: Implementing Binary Adders Name: Date: Equipment/Parts Needed: PC (Altera Quartus II V9.1 installed) DE-2 board Objective: Design a half adder by extracting the Boolean equation from a

More information

EET 1131 Lab #7 Arithmetic Circuits

EET 1131 Lab #7 Arithmetic Circuits Name Equipment and Components Safety glasses ETS-7000 Digital-Analog Training System Integrated Circuits: 7483, 74181 Quartus II software and Altera DE2-115 board Multisim simulation software EET 1131

More information

EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE

EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE 1 Logic circuits for digital systems may be combinational or sequential. A combinational circuit consists of input variables, logic gates, and output

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

ENEE245 Digital Circuits and Systems Lab Manual

ENEE245 Digital Circuits and Systems Lab Manual ENEE245 Digital Circuits and Systems Lab Manual Department of Engineering, Physical & Computer Sciences Montgomery College Version 1.1 Copyright Prof. Lan Xiang (Do not distribute without permission) 1

More information

Physics 364, Fall 2014, reading due your answers to by 11pm on Sunday

Physics 364, Fall 2014, reading due your answers to by 11pm on Sunday Physics 364, Fall 2014, reading due 2014-11-23. Email your answers to ashmansk@hep.upenn.edu by 11pm on Sunday Course materials and schedule are at positron.hep.upenn.edu/p364 Assignment: (a) First read

More information

Hardware Description Languages: Verilog. Quick History of HDLs. Verilog/VHDL. Design Methodology. Verilog Introduction. Verilog.

Hardware Description Languages: Verilog. Quick History of HDLs. Verilog/VHDL. Design Methodology. Verilog Introduction. Verilog. Hardware Description Languages: Verilog Quick History of HDLs Verilog Structural Models (Combinational) Behavioral Models Syntax Examples CS 150 - Fall 2005 - Lecture #4: Verilog - 1 ISP (circa 1977) -

More information

Hardware Description Languages: Verilog

Hardware Description Languages: Verilog Hardware Description Languages: Verilog Verilog Structural Models (Combinational) Behavioral Models Syntax Examples CS 150 - Fall 2005 - Lecture #4: Verilog - 1 Quick History of HDLs ISP (circa 1977) -

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

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

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

structure syntax different levels of abstraction

structure syntax different levels of abstraction This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Verilog. Reminder: Lab #1 due tonight! Fall 2008 Lecture 3

Verilog. Reminder: Lab #1 due tonight! Fall 2008 Lecture 3 Verilog Hardware Description Languages Verilog -- structural: modules, instances -- dataflow: continuous assignment -- sequential behavior: always blocks -- pitfalls -- other useful features Reminder:

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

Laboratory Exercise 1

Laboratory Exercise 1 Laboratory Exercise 1 Switches, Lights, and Multiplexers The purpose of this exercise is to learn how to connect simple input and output devices to an FPGA chip and implement a circuit that uses these

More information

271/469 Verilog Tutorial

271/469 Verilog Tutorial 271/469 Verilog Tutorial Prof. Scott Hauck, last revised 8/14/17 Introduction The following tutorial is inted to get you going quickly in circuit design in Verilog. It isn t a comprehensive guide to System

More information

Microcomputers. Outline. Number Systems and Digital Logic Review

Microcomputers. Outline. Number Systems and Digital Logic Review Microcomputers Number Systems and Digital Logic Review Lecture 1-1 Outline Number systems and formats Common number systems Base Conversion Integer representation Signed integer representation Binary coded

More information

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements What is Verilog HDL? Lecture 1: Verilog HDL Introduction Verilog Hardware Description Language(HDL)? A high-level computer language can model, represent and simulate digital design Hardware concurrency

More information

Design of Digital Circuits Lecture 6: Combinational Logic, Hardware Description Lang. & Verilog. Prof. Onur Mutlu ETH Zurich Spring March 2018

Design of Digital Circuits Lecture 6: Combinational Logic, Hardware Description Lang. & Verilog. Prof. Onur Mutlu ETH Zurich Spring March 2018 Design of Digital Circuits Lecture 6: Combinational Logic, Hardware Description Lang. & Verilog Prof. Onur Mutlu ETH Zurich Spring 2018 9 March 2018 Required Lecture Video Why study computer architecture?

More information

L3: Introduction to Verilog (Combinational Logic)

L3: Introduction to Verilog (Combinational Logic) L3: Introduction to Verilog (Combinational Logic) Courtesy of Rex in. Used with permission. Verilog References: Samir Palnitkar, Verilog HDL, Pearson Education (2nd edition). Donald Thomas, Philip oorby,

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

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

ECEN 468 Advanced Logic Design

ECEN 468 Advanced Logic Design ECEN 468 Advanced Logic Design Lecture 26: Verilog Operators ECEN 468 Lecture 26 Operators Operator Number of Operands Result Arithmetic 2 Binary word Bitwise 2 Binary word Reduction 1 Bit Logical 2 Boolean

More information

L3: Introduction to Verilog (Combinational Logic)

L3: Introduction to Verilog (Combinational Logic) L3: Introduction to Verilog (Combinational Logic) Acknowledgements: aterials in this lecture are courtesy of the following sources and are used with permission. Rex in Verilog References: Samir Palnitkar,

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

! ISP (circa 1977) - research project at CMU " Simulation, but no synthesis

! ISP (circa 1977) - research project at CMU  Simulation, but no synthesis Hardware Description Languages: Verilog! Verilog " Structural Models " (Combinational) Behavioral Models " Syntax " Examples Quick History of HDLs! ISP (circa 1977) - research project at CMU " Simulation,

More information

Lab 3: Standard Combinational Components

Lab 3: Standard Combinational Components Lab 3: Standard Combinational Components Purpose In this lab you will implement several combinational circuits on the DE1 development board to test and verify their operations. Introduction Using a high-level

More information

Lab 2 EECE473 Computer Organization & Architecture University of Maine

Lab 2 EECE473 Computer Organization & Architecture University of Maine Lab 2: Verilog Programming Instructor: Yifeng Zhu 50 Points Objectives: 1. Quatus II Programming assignment: PIN assignments, LEDs, switches; 2. Download and test the design on Altera DE2 board 3. Create

More information

Workshop on Digital Circuit Design in FPGA

Workshop on Digital Circuit Design in FPGA Workshop on Digital Circuit Design in FPGA Session-1 Presented By Mohammed Abdul Kader Assistant Professor, Dept. of EEE, IIUC Email:kader05cuet@gmail.com Website: kader05cuet.wordpress.com The field-programmable

More information

ECE 152A LABORATORY 2

ECE 152A LABORATORY 2 ECE 152A LABORATORY 2 Objectives : 1. Understand the trade-off between time- and space-efficiency in the design of adders. In this lab, adders operate on unsigned numbers. 2. Learn how to write Verilog

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

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

1. Mark the correct statement(s)

1. Mark the correct statement(s) 1. Mark the correct statement(s) 1.1 A theorem in Boolean algebra: a) Can easily be proved by e.g. logic induction b) Is a logical statement that is assumed to be true, c) Can be contradicted by another

More information

ECE 4514 Digital Design II. Spring Lecture 7: Dataflow Modeling

ECE 4514 Digital Design II. Spring Lecture 7: Dataflow Modeling ECE 4514 Digital Design II Lecture 7: Dataflow Modeling A language Lecture Today's topic Dataflow Modeling input input input module output output Model with submodules and gates = Structural Model with

More information

HDLs and SystemVerilog. Digital Computer Design

HDLs and SystemVerilog. Digital Computer Design HDLs and SystemVerilog Digital Computer Design Logic Arrays Gates can be organized into regular arrays. If the connections are made programmable, these logic arrays can be configured to perform any function

More information

Advanced Digital Design with the Verilog HDL

Advanced Digital Design with the Verilog HDL Copyright 2001, 2003 MD Ciletti 1 Advanced Digital Design with the Verilog HDL M. D. Ciletti Department of Electrical and Computer Engineering University of Colorado Colorado Springs, Colorado ciletti@vlsic.uccs.edu

More information

Software Engineering 2DA4. Slides 2: Introduction to Logic Circuits

Software Engineering 2DA4. Slides 2: Introduction to Logic Circuits Software Engineering 2DA4 Slides 2: Introduction to Logic Circuits Dr. Ryan Leduc Department of Computing and Software McMaster University Material based on S. Brown and Z. Vranesic, Fundamentals of Digital

More information

SWITCHING THEORY AND LOGIC CIRCUITS

SWITCHING THEORY AND LOGIC CIRCUITS SWITCHING THEORY AND LOGIC CIRCUITS COURSE OBJECTIVES. To understand the concepts and techniques associated with the number systems and codes 2. To understand the simplification methods (Boolean algebra

More information

Tutorial on Verilog HDL

Tutorial on Verilog HDL Tutorial on Verilog HDL HDL Hardware Description Languages Widely used in logic design Verilog and VHDL Describe hardware using code Document logic functions Simulate logic before building Synthesize code

More information

ECE2029: Introduction to Digital Circuit Design. Lab 2 Implementing Combinational Functional Blocks

ECE2029: Introduction to Digital Circuit Design. Lab 2 Implementing Combinational Functional Blocks ECE2029: Introduction to Digital Circuit Design Lab 2 Implementing Combinational Functional Blocks Objective: In this lab exercise you will simulate, test, and download various digital circuits which implement

More information

Advanced Digital Design Using FPGA. Dr. Shahrokh Abadi

Advanced Digital Design Using FPGA. Dr. Shahrokh Abadi Advanced Digital Design Using FPGA Dr. Shahrokh Abadi 1 Venue Computer Lab: Tuesdays 10 12 am (Fixed) Computer Lab: Wednesday 10-12 am (Every other odd weeks) Note: Due to some unpredicted problems with

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

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

EE292: Fundamentals of ECE

EE292: Fundamentals of ECE EE292: Fundamentals of ECE Fall 2012 TTh 10:00-11:15 SEB 1242 Lecture 22 121115 http://www.ee.unlv.edu/~b1morris/ee292/ 2 Outline Review Binary Number Representation Binary Arithmetic Combinatorial Logic

More information

ECE468 Computer Organization & Architecture. The Design Process & ALU Design

ECE468 Computer Organization & Architecture. The Design Process & ALU Design ECE6 Computer Organization & Architecture The Design Process & Design The Design Process "To Design Is To Represent" Design activity yields description/representation of an object -- Traditional craftsman

More information

MPLEMENTATION. Part 1: Implementation of the TOC on the DE2 Board using Verilog - Performed in Lab #1

MPLEMENTATION. Part 1: Implementation of the TOC on the DE2 Board using Verilog - Performed in Lab #1 ERILOG ESCRIPTION AND MPLEMENTATION OF THE ASIC Part 1: Implementation of the TOC on the DE2 Board using Verilog - Performed in Lab #1 Part 2: Extend the TOC to Achieve a 4-Bit Processor - Done in Other

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

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

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

Outline. EECS150 - Digital Design Lecture 5 - Verilog 2. Structural Model: 2-to1 mux. Structural Model - XOR. Verilog Basics Lots of Examples

Outline. EECS150 - Digital Design Lecture 5 - Verilog 2. Structural Model: 2-to1 mux. Structural Model - XOR. Verilog Basics Lots of Examples Outline EECS150 - Digital Design Lecture 5 - Verilog 2 Verilog Basics Lots of Examples February 1, 2005 John Wawrzynek Spring 2005 EECS150 - Lec05-Verilog2 Page 1 Spring 2005 EECS150 - Lec05-Verilog2 Page

More information

VERILOG 2: LANGUAGE BASICS

VERILOG 2: LANGUAGE BASICS VERILOG 2: LANGUAGE BASICS Verilog module Modules are basic building blocks. These are two example module definitions which you should use: // Safer traditional method module abc (in1, in2, out); input

More information

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

N-input EX-NOR gate. N-output inverter. N-input NOR gate 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

More information

Chapter 3: Dataflow Modeling

Chapter 3: Dataflow Modeling Chapter 3: Dataflow Modeling Prof. Soo-Ik Chae Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008, John Wiley 3-1 Objectives After completing this chapter, you will be able to: Describe

More information

ECE Digital System Design & Synthesis Exercise 1 - Logic Values, Data Types & Operators - With Answers

ECE Digital System Design & Synthesis Exercise 1 - Logic Values, Data Types & Operators - With Answers ECE 601 - Digital System Design & Synthesis Exercise 1 - Logic Values, Data Types & Operators - With Answers Fall 2001 Final Version (Important changes from original posted Exercise 1 shown in color) Variables

More information

Veriolog Overview. CS/EE 3710 Fall 2010

Veriolog Overview. CS/EE 3710 Fall 2010 Veriolog Overview CS/EE 3710 Fall 2010 Hardware Description Languages HDL Designed to be an alternative to schematics for describing hardware systems Two main survivors VHDL Commissioned by DOD Based on

More information

ENGIN 241 Digital Systems with Lab

ENGIN 241 Digital Systems with Lab ENGIN 241 Digital Systems with Lab (4) Dr. Honggang Zhang Engineering Department University of Massachusetts Boston 1 Introduction Hardware description language (HDL): Specifies logic function only Computer-aided

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

Arithmetic Operators There are two types of operators: binary and unary Binary operators:

Arithmetic Operators There are two types of operators: binary and unary Binary operators: Verilog operators operate on several data types to produce an output Not all Verilog operators are synthesible (can produce gates) Some operators are similar to those in the C language Remember, you are

More information

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE Lab 1: Introduction to Verilog HDL and Altera IDE Introduction In this lab you will design simple circuits by programming the Field-Programmable Gate Array (FPGA). At the end of the lab you should be able

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

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory

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

Systems Programming. Lecture 2 Review of Computer Architecture I

Systems Programming.   Lecture 2 Review of Computer Architecture I Systems Programming www.atomicrhubarb.com/systems Lecture 2 Review of Computer Architecture I In The Book Patt & Patel Chapter 1,2,3 (review) Outline Binary Bit Numbering Logical operations 2's complement

More information

This podcast will demonstrate a logical approach as to how a computer adds through logical gates.

This podcast will demonstrate a logical approach as to how a computer adds through logical gates. This podcast will demonstrate a logical approach as to how a computer adds through logical gates. A computer is a programmable machine that receives input, stores and manipulates data, and provides output

More information

Combinational Circuits

Combinational Circuits Combinational Circuits Combinational circuit consists of an interconnection of logic gates They react to their inputs and produce their outputs by transforming binary information n input binary variables

More information

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018 University of California, Davis Department of Electrical and Computer Engineering EEC180B DIGITAL SYSTEMS Spring Quarter 2018 LAB 2: FPGA Synthesis and Combinational Logic Design Objective: This lab covers

More information

Release 0.8. Multi-Purpose Light Unit Technical Reference Manual

Release 0.8. Multi-Purpose Light Unit Technical Reference Manual Release 0.8 Multi-Purpose Light Unit Technical Reference Manual INTRODUCTION Introduction The Multi-Purpose Light unit is a multi-function DCC decoder that supports the following: DCC Characteristics 14

More information

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4]

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4] HW 3 Answer Key 1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4] You can build a NAND gate from tri-state buffers and inverters and thus you

More information