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

Slides:



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

Tutorial 2 Sequential Logic. Registers A register is basically a D Flip-Flop A D Flip Flop has 3 basic ports. D, Q, and Clock.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Simulation executable (simv)
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Synchronous Sequential Logic
EE 361 Fall 2003University of Hawaii1 Hardware Design Tips EE 361 University of Hawaii.
Verilog Modules for Common Digital Functions
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.
1 Verilog Digital Computer Logic Kashif Bashir WWW: http//:
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.
Digital System Design Verilog ® HDL Maziar Goudarzi.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
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
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.
Register Transfer Level & Design with ASM
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.
Behavioral Modelling - 1. Verilog Behavioral Modelling Behavioral Models represent functionality of the digital hardware. It describes how the circuit.
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.
Verilog tutorial Hong-Hui Chen 05/17/2002 VLSI Design Course.
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
1 Lecture 3: Modeling Sequential Logic in Verilog HDL.
Modern VLSI Design 3e: Chapter 8 Copyright  1998, 2002 Prentice Hall PTR Topics n Verilog register-transfer modeling: –basics using traffic light controller;
Overview Logistics Last lecture Today HW5 due today
An Introduction to Verilog: Transitioning from VHDL
EECE6017C - Lab 0 Introduction to Altera tools and Basic Digital Logic
Lecture 10 Flip-Flops/Latches
Supplement on Verilog FF circuit examples
Adapted from Krste Asanovic
Figure 8.1. The general form of a sequential circuit.
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.
‘if-else’ & ‘case’ Statements
Supplement on Verilog Sequential circuit examples: FSM
Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-I]
Topics The logic design process..
SYNTHESIS OF SEQUENTIAL LOGIC
Levels in computer design
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
332:437 Lecture 8 Verilog and Finite State Machines
Introduction to Digital System and Microprocessor Design
Hayri Uğur UYANIK Very Large Scale Integration II - VLSI II
Supplement on Verilog Sequential circuit examples: FSM
Register-Transfer Level Components in Verilog
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.
Dr. Tassadaq Hussain Introduction to Verilog – Part-3 Expressing Sequential Circuits and FSM.
The Verilog Hardware Description Language
CS 153 Logic Design Lab Professor Ian G. Harris
THE ECE 554 XILINX DESIGN PROCESS
332:437 Lecture 8 Verilog and Finite State Machines
Introduction to Digital IC Design
Sequntial-Circuit Building Blocks
THE ECE 554 XILINX DESIGN PROCESS
Dept of ECM Verilog HDL Verilog Evolution Verilog Attributes The verilog language Verilog Evolution  Verilog was designed in early 1984 by Gateway Design.
Presentation transcript:

Hong-Hui Chen 05/17/2002 VLSI Design Course 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 1364-1995 (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的方法<1> -> 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的方法<2> -> Combinational circuit reg [7:0]value_now_d; // D values for flip-flops always@(reset 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 always@(posedge 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; always@(reset 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; always@(reset 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; always@(reset 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,value_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; always@(posedge clock) #5 $display("Present valur of the up counter=%d",value_now);

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!

Fill the form and submit! 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