Verilog tutorial Hong-Hui Chen 05/17/2002 VLSI Design Course.

Slides:



Advertisements
Similar presentations
Hub The Only Co-Simulation Tool of Its Kind on the Market The Only Co-Simulation Tool of Its Kind on the Market.
Advertisements

Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Simulation executable (simv)
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Supplement on Verilog adder examples
Synchronous Sequential Logic
EE 361 Fall 2003University of Hawaii1 Hardware Design Tips EE 361 University of Hawaii.
Table 7.1 Verilog Operators.
Verilog Intro: Part 1.
16/04/20151 Hardware Descriptive Languages these notes are taken from Mano’s book It can represent: Truth Table Boolean Expression Diagrams of gates and.
Anurag Dwivedi.  Verilog- Hardware Description Language  Modules  Combinational circuits  assign statement  Control statements  Sequential circuits.
Spring 2009W. Rhett DavisNC State UniversityECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 8: Sequential Design Spring 2009 W. Rhett.
1 Verilog Digital Computer Logic Kashif Bashir WWW: http//:
Pulse-Width Modulated DAC
OUTLINE Introduction Basics of the Verilog Language Gate-level modeling Data-flow modeling Behavioral modeling Task and function.
Verilog Sequential Circuits Ibrahim Korpeoglu. Verilog can be used to describe storage elements and sequential circuits as well. So far continuous assignment.
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
2-to-1 Multiplexer: if Statement Discussion D7.1 Example 4.
ENEE 408C Lab Capstone Project: Digital System Design Spring 2006 Class Web Site:
Digital System Design Verilog ® HDL Maziar Goudarzi.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Spring 2002EECS150 - Lec0-intro Page 1 EECS150 - Digital Design Lecture 8 - Hardware Description Languages February 14, 2002 John Wawrzynek.
Today’s Lecture Process model –initial & always statements Assignments –Continuous & procedural assignments Timing Control System tasks.
Advanced FPGA Based System Design Lecture-9 & 10 VHDL Sequential Code By: Dr Imtiaz Hussain 1.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
ECE 2372 Modern Digital System Design
Week Four Design & Simulation Example slides. Agenda Review the tiny example (Minako “logic”)from last week – look at the detailed static timing report.
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani
ECE 551 Digital System Design & Synthesis Fall 2011 Midterm Exam Overview.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
Slide 1 6. VHDL/Verilog Behavioral Description. Slide 2 Verilog for Synthesis: Behavioral description Instead of instantiating components, describe them.
ECE/CS 352 Digital System Fundamentals© 2001 C. Kime 1 ECE/CS 352 Digital Systems Fundamentals Spring 2001 Chapters 3 and 4: Verilog – Part 2 Charles R.
Register Transfer Level & Design with ASM
1 CSE-308 Digital System Design (DSD) N-W.F.P. University of Engineering & Technology, Peshawar.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
3/4/20031 ECE 551: Digital System Design * & Synthesis Lecture Set 3 3.1: Verilog - User-Defined Primitives (UDPs) (In separate file) 3.2: Verilog – Operators,
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
Behavioral Modelling - 1. Verilog Behavioral Modelling Behavioral Models represent functionality of the digital hardware. It describes how the circuit.
Speaker: Tsung-Yi Wu FPGA Design Flow (Part 2) : Simulation.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Introduction to ASIC flow and Verilog HDL
Speaker: Tsung-Yi Wu RTL Coding for FPGA. Verilog Verilog is a HARDWARE DESCRIPTION LANGUAGE (HDL). Verilog is first introduced in 1984 for Gateway Verilog-XL.
Teaching Digital Logic courses with Altera Technology
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part4: Verilog – Part 2.
An Introduction to Verilog: Transitioning from VHDL
Supplement on Verilog FF circuit examples
Final Project Report 64 points FFT
Verilog-HDL Reference: Verilog HDL: a guide to digital design and synthesis, Palnitkar, Samir Some of slides in this lecture are supported by Prof. An-Yeu.
Reg and Wire:.
Hong-Hui Chen 05/17/2002 VLSI Design Course
Verilog Introduction Fall
EMT 351/4 DIGITAL IC DESIGN Week # Synthesis of Sequential Logic 10.
Supplement on Verilog Sequential circuit examples: FSM
Topics The logic design process..
SYNTHESIS OF SEQUENTIAL LOGIC
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
Introduction to Digital System and Microprocessor Design
Supplement on Verilog Sequential circuit examples: FSM
Verilog-HDL Reference: Verilog HDL: a guide to digital design and synthesis, Palnitkar, Samir Some of slides in this lecture are supported by Prof. An-Yeu.
The Verilog Hardware Description Language
CS 153 Logic Design Lab Professor Ian G. Harris
THE ECE 554 XILINX DESIGN PROCESS
Hong-Hui Chen 05/17/2002 VLSI Design Course
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

Verilog tutorial Hong-Hui Chen 05/17/2002 VLSI Design Course

Outline What is Verilog? Register transfer level (RTL) Up_counter example Test_bench for Up_counter Get a simulator Simulation and verification Synthesis Back end flow and a real CHIP Recommended books

What is Verilog Verilog is first introduced in 1984 for Gateway Verilog-XL digital simulator In 1989, Gateway acquired by Cadence. Then in 1990, Cadence release the Verilog language and Verilog PLI to public. Open Verilog International(OVI) was formed to maintain the Verilog standard, in 1993, OVI releases the Verilog 2.0 Reference Manual, then becomes the IEEE (Verilog-1995)

Register transfer level (RTL) Elements with memorial ability -> flip-flops -> sequential circuit Combinational circuit is used to calculate the next state of the flip-flops

Up_counter example Four sample designs for up_counter: up_counter_hello_world.v up_counter_max.v up_counter_max_freeze.v up_counter_max_freeze_pre_load.v

Up_counter: in out declaration module UP_COUNTER_hello_world(clock,reset,value_now); input clock,reset; output [7:0]value_now; reg [7:0]value_now; // Q value for filp-flops …… endmodule

Up_counter: combinational ckt `ifdef WAY_NO1 // 指定 D 的方法 -> Combinational circuit wire [7:0]value_now_d; // D values for flip-flops assign value_now_d=reset?8'b0:(value_now+1'b1); `else // 指定 D 的方法 -> Combinational circuit reg [7:0]value_now_d; // D values for flip-flops or value_now) // sensitivity list begin if(reset) vaule_now_d=8'd0; else value_now_d=value_now+1'b1; end `endif

Up_counter: sequential ckt A edge triggered always block will infer real flip-flops clock) begin value_now<= value_now_d; end Above statement will use 8 flip-flops

Up_counter: max module UP_COUNTER_max(clock,reset,max,value_now); input clock,reset,max; or value_now or max) begin if(reset) value_now_d=8'd0; else if(max) value_now_d=8'd255; else value_now_d=value_now+1'b1; end

Up_counter: freeze input clock,reset,max,freeze; or value_now or max or freeze) begin if(reset) value_now_d=8'd0; else if(freeze) value_now_d=value_now; // 把 Q 又 assign 給 D else if(max) value_now_d=8'd255; else value_now_d=value_now+1'b1; end

Up_counter: pre_load input clock,reset,max,freeze,pre_load; input [7:0]pre_load_val; or value_now or max or freeze or pre_load or pre_load_val) begin if(reset) value_now_d=8'd0; else if(freeze) value_now_d=value_now; // 把 Q 又 assign 給 D else if(max) value_now_d=8'd255; else if(pre_load) value_now_d=pre_load_val; else value_now_d=value_now+1'b1; end

Test_bench for Up_counter How can we ensure our design is right?

Test_bench for Up_counter (1) `timescale 1ns/1ps module test_up_counter; // test bench module reg clock,reset,max,freeze,pre_load; reg [7:0]pre_load_val; wire [7:0]value_now; UP_COUNTER_max_freeze_pre_load MY_COUNTER(clock,reset,max,freeze,pre_load,pre_load_val,val ue_now);

Test_bench for Up_counter (2) initial begin clock=1; reset=1; max=0; freeze=0; pre_load=0; pre_load_val=0; #81 reset=0; end always #10 clock=~clock; clock) begin #5 $display("Present valur of the up counter=%d",value_now); end

The outputs/responses # Present valur of the up counter= x # Present valur of the up counter= 0 # Present valur of the up counter= 1 # Present valur of the up counter= 2 # Present valur of the up counter= 3 # Present valur of the up counter= 4

Get a simulator (1) Go to the web as figure at right side Register a new account

Get a simulator (2) Put “ Download ISE WebPACK ” button ID and password required Select “ Custom ” download configuration

Get a simulator (3) Select “ MXE Simulator ” only -> Download -> Install In the installation course, It will remind you to get a license!

Get a simulator (4) Fill the form and submit!

Get a simulator (5) Please setup the license correctly!

Simulation and verification (1) File -> New -> Project Copy: 1) Test_up_counter.v 2) Up_counter_max_freeze_pre_load.v to

Simulation and verification (2) Design -> Compile Select all the sources Compile them!

Simulation and verification (3) Design -> Load Design … Select the test bench module

Simulation and verification (4) Execute run 10000ns -> Simulation result is outputted to screen cause $dsiplay() is used in the test bench!

Synthesis Design compiler, Synopsys Inc.

Back end flow and a real CHIP Automatic routing, cell placement, timing analysis CHIP photo!

Recommended books (1) Synthesis issues Beginner’s choice Chinese copy available Advanced book Chinese copy available

Recommended books (2) For CAD designer CS students