Spring 2002EECS150 - Lec0-intro Page 1 EECS150 - Digital Design Lecture 8 - Hardware Description Languages February 14, 2002 John Wawrzynek.

Slides:



Advertisements
Similar presentations
Verilog HDL -Introduction
Advertisements

ENEL111 Digital Electronics
Verilog.
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Verilog Intro: Part 1.
Hardware Description Language (HDL)
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part3: Verilog – Part 1.
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
1 Brief Introduction to Verilog Weiping Shi. 2 What is Verilog? It is a hardware description language Originally designed to model and verify a design.
CSE 341 Verilog HDL An Introduction. Hardware Specification Languages Verilog  Similar syntax to C  Commonly used in  Industry (USA & Japan) VHDL 
Digital Design with VHDL Presented by: Amir Masoud Gharehbaghi
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
© UC Berkeley EECS Components and Design Techniques for Digital Systems Lec 04 – Hardware Description Languages / Verilog 9/6/2007 David Culler Electrical.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Verilog and VeriWell Bo Cheng.
ECE 353 Computer Systems Lab I Verilog Hardware Description Language.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
CSE241 R1 Verilog.1Kahng & Cichy, UCSD ©2003 CSE241 VLSI Digital Circuits Winter 2003 Recitation 1: Verilog Introduction.
1 EECS Components and Design Techniques for Digital Systems Lec 04 – Hardware Description Languages / Verilog 9/9-04 David Culler Electrical Engineering.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI System Design Lecture 4 - Advanced Verilog.
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
Digital System Design Verilog ® HDL Maziar Goudarzi.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
O VERVIEW OF DIGITAL SYSTEMS Hardware Description Language 1.
CSET 4650 Field Programmable Logic Devices
Electronic Design Automation. Course Outline 1.Digital circuit design flow 2.Verilog Hardware Description Language 3.Logic Synthesis –Multilevel logic.
Verilog Digital System Design Z. Navabi, McGraw-Hill, 2005
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
ECE 2372 Modern Digital System Design
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
Hardware Design Environment Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
CS 61C L4.2.2 Verilog II (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture Verilog II Kurt Meinz inst.eecs.berkeley.edu/~cs61c.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
CPEN Digital System Design
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.
Module 1.2 Introduction to Verilog
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
ELEN 468 Lecture 131 ELEN 468 Advanced Logic Design Lecture 13 Synthesis of Combinational Logic II.
Verilog A Hardware Description Language (HDL ) is a machine readable and human readable language for describing hardware. Verilog and VHDL are HDLs.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
Introduction to ASIC flow and Verilog HDL
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Chapter1: Introduction Digital System Designs and Practices Using Verilog HDL and 2008~2010, John Wiley 1-1 Chapter 1: Introduction Prof. Ming-Bo.
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
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.
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.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
EECE 320 L8: Combinational Logic design Principles 1Chehab, AUB, 2003 EECE 320 Digital Systems Design Lecture 8: Combinational Logic Design Principles.
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals.
Hardware Description Languages: Verilog
Topics Modeling with hardware description languages (HDLs).
KARTHIK.S Lecturer/ECE S.N.G.C.E
Hardware Description Languages: Verilog
Topics Modeling with hardware description languages (HDLs).
Introduction To Verilog-HDL
Introduction to Verilog
Lecture 1.3 Hardware Description Languages (HDLs)
Review Advancing technology changes the trade-offs and design techniques 2x transistors per chip every 18 months ASIC, Programmable Logic, Microprocessor.
COE 202 Introduction to Verilog
Presentation transcript:

Spring 2002EECS150 - Lec0-intro Page 1 EECS150 - Digital Design Lecture 8 - Hardware Description Languages February 14, 2002 John Wawrzynek

Spring 2002EECS150 - Lec0-intro Page 2 Outline Netlists Design flow What is a HDL? Verilog –history –examples

Spring 2002EECS150 - Lec0-intro Page 3 Netlist A key data structure (or representation) in the design process is the “netlist”: –Network List Netlist lists components and connects them with nodes: ex: g1 "and" n1 n2 n5 g2 "and" n3 n4 n6 g3 "or" n5 n6 n7 Alternative format: n1 g1.in1 n2 g1.in2 n3 g2.in1 n4 g2.in2 n5 g1.out g3.in1 n6 g2.out g3.in2 n7 g3.out g1 "and" g2 "and" g3 "or" Netlist is what is needed for simulation and implementation. Could be at the transistor level, gate level,... Could be hierarchical or flat. How do we generate a netlist?

Spring 2002EECS150 - Lec0-intro Page 4 Design Flow Design Entry High-level Analysis Technology Mapping Low-level Analysis

Spring 2002EECS150 - Lec0-intro Page 5 Design Flow Circuit is described and represented: –Graphically (Schematics) –Textually (HDL) Result of circuit specification is a netlist of: –generic primitives - logic gates, flip-flops, or –technology specific primitives - LUTs/CLBs, transistors, discrete gates, or –higher level library elements - adders, ALUs, register files, decoders, etc. Design Entry High-level Analysis Technology Mapping Low-level Analysis

Spring 2002EECS150 - Lec0-intro Page 6 Design Flow High-level Analysis is used to verify: –correct function –rough: timing power cost Common tools used are: –simulator - check functional correctness, and –static timing analyzer estimates circuit delays based on timing model and delay parameters for library elements (or primitives). Design Entry High-level Analysis Technology Mapping Low-level Analysis

Spring 2002EECS150 - Lec0-intro Page 7 Design Flow Technology Mapping: –Converts netlist to implementation technology dependent details Expands library elements, performs: –partitioning, –placement, –routing Low-level Analysis –Simulation and Static Tools perform low-level checks with: accurate timing models, wire delay –For FPGAs this step could use the actual device. Design Entry High-level Analysis Technology Mapping Low-level Analysis

Spring 2002EECS150 - Lec0-intro Page 8 Design Flow Netlist: used between and internally for all steps. Design Entry High-level Analysis Technology Mapping Low-level Analysis

Spring 2002EECS150 - Lec0-intro Page 9 Design Entry Schematic entry/editing was the standard method in industry Used in EECS150 last semester Schematics are intuitive. They match our use of gate-level or block diagrams. Somewhat physical. They imply a physical implementation.  Require a special tool (editor).  Unless hierarchy is carefully designed, schematics can be confusing and difficult to follow. Hardware Description Languages are the new standard –except for PC boards

Spring 2002EECS150 - Lec0-intro Page 10 HDLs Basic Idea: –Language constructs describe circuit structure –Structural descriptions similar to hierarchical netlist. –Behavioral descriptions use higher-level constructs (similar to conventional programming). Originally designed to help in abstraction and simulation. –Now “logic synthesis” tools exist to automatically convert from behavioral descriptions to gate netlist. –This may lead you to falsely believe that hardware design can be reduced to writing programs! “Structural” example: Decoder(output x0,x1,x2,x3; inputs a,b) { wire abar, bbar; inv(bbar, b); inv(abar, a); nand(x0, abar, bbar); nand(x1, abar, b ); nand(x2, a, bbar); nand(x3, a, b ); } “Behavioral” example: Decoder(output x0,x1,x2,x3; inputs a,b) { case [a b] 00: [x0 x1 x2 x3] = 0x0; 01: [x0 x1 x2 x3] = 0x2; 10: [x0 x1 x2 x3] = 0x4; 11: [x0 x1 x2 x3] = 0x8; endcase; }

Spring 2002EECS150 - Lec0-intro Page 11 Verilog A brief history: –Originated at Automated Integrated Design Systems (renamed Gateway) in Acquired by Cadence in –Invented as simulation language. Synthesis was an afterthought. Many of the basic techniques for synthesis were developed at Berkeley in the 80’s and applied commercially in the 90’s. –Around the same time as the origin of Verilog, the US Department of Defense developed VHDL. Because it was in the public domain it began to grow in popularity. –Afraid of losing market share, Cadence opened Verilog to the public in –An IEEE working group was established in 1993, and ratified IEEE Standard 1394 in –Verilog is the language of choice of Silicon Valley companies, initially because of high-quality tool support and its similarity to C-language syntax. –VHDL is still popular within the government, in Europe and Japan, and some Universities. –Most major CAD frameworks now support both. –Latest HDL. C++ based. OSCI (Open System C Initiative).

Spring 2002EECS150 - Lec0-intro Page 12 Basic Example //2-input multiplexor in gates module mux2 (in0, in1, select, out); input in0,in1,select; output out; wire s0,w0,w1; not (s0, select); and (w0, s0, in0), (w1, select, in1); or (out, w0, w1); endmodule // mux2 Notes: –comments –“module” –port list –declarations –wire type –primitive gates

Spring 2002EECS150 - Lec0-intro Page 13 Hierarchy & Bit Vectors Notes: –instantiation similar to primitives –select is 2-bits wide –named port assignment //2-input mux in gates module mux2 (in0, in1, select, out);. endmodule // mux2 //4-input mux built from 3 2-input muxes module mux4 (in0, in1, in2, in3, select, out); input in0,in1,in2,in3; input [1:0] select; output out; wire w0,w1; mux2 m0 (.select(select[0]),.in0(in0),.in1(in1),.out(w0)), m1 (.select(select[0]),.in0(in2),.in1(in3),.out(w1)), m3 (.select(select[1]),.in0(w0),.in1(w1),.out(out)); endmodule // mux4

Spring 2002EECS150 - Lec0-intro Page 14 Behavioral with Bit Vectors Notes: –inputs, outputs 32-bits wide –behavioral descriptions use the keyword always followed by procedural assignments –Target output of procedural assignments must of of type reg –Unlike wire types where the target output of an assignment may be continuously updated, a reg type retains it value until a new value is assigned (the assigning statement is executed). //Behavioral model of 32-bit // wide 2-to-1 multiplexor. module mux32 (in0,in1,select,out); input [31:0] in0,in1; input select; output [31:0] out; // reg [31:0] out; (in0 or in1 or select) if (select) out=in1; else out=in0; endmodule // Mux

Spring 2002EECS150 - Lec0-intro Page 15 “Dataflow” Descriptions of Logic //Dataflow description of mux module mux2 in0, in1, select, out); input in0,in1,select; output out; assign out = (~select & in0) | (select & in1); endmodule // mux2 Alternative: assign out = select ? in1 : in0; Notes: –dataflow modeling provides a way to describe combinational logic by its function rather than gate structure. –The assign keyword is used to indicate a continuous assignment. Whenever anything on the RHS changes the LHS is updated.

Spring 2002EECS150 - Lec0-intro Page 16 Testbench module testmux; reg a, b, s; wire f; reg expected; mux2 myMux (.select(s),.in0(a),.in1(b),.out(f)); initial begin s=0; a=0; b=1; expected=0; #10 a=1; b=0; expected=1; #10 s=1; a=0; b=1; expected=1; end initial $monitor( "select=%b in0=%b in1=%b out=%b, expected out=%b time=%d", s, a, b, f, expected, $time); endmodule // testmux Notes: –initial block similar to always except only executes once (at beginning of simulation) –#n’s needed to advance time –$monitor - prints output