Levels in computer design

Slides:



Advertisements
Similar presentations
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Advertisements

ENEL111 Digital Electronics
Verilog.
Simulation executable (simv)
The Verilog Hardware Description Language
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Combinational Logic.
CPEN Digital System Design
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.
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part3: Verilog – Part 1.
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 
 HDLs – Verilog and Very High Speed Integrated Circuit (VHSIC) HDL  „ Widely used in logic design  „ Describe hardware  „ Document logic functions.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Verilog Sequential Circuits Ibrahim Korpeoglu. Verilog can be used to describe storage elements and sequential circuits as well. So far continuous assignment.
ECE 353 Computer Systems Lab I Verilog Hardware Description Language.
Verilog Lab This presentation includes some material that is selected from BUCKNELL VERILOG HANDBOOK. Instructor: Dr. Charles Liu Prepared by John Ren.
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
CSE241 R1 Verilog.1Kahng & Cichy, UCSD ©2003 CSE241 VLSI Digital Circuits Winter 2003 Recitation 1: Verilog Introduction.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
O VERVIEW OF DIGITAL SYSTEMS Hardware Description Language 1.
Overview Logistics Last lecture Today HW5 due today
CSET 4650 Field Programmable Logic Devices
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
ECE 2372 Modern Digital System Design
Introduction Verilog is a HARDWARE DESCRIPTION LANGUAGE (HDL) A hardware description language is a language or means used to describe or model a digital.
CS 3850 Lecture 3 The Verilog Language. 3.1 Lexical Conventions The lexical conventions are close to the programming language C++. Comments are designated.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
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
1 CSE-308 Digital System Design (DSD) N-W.F.P. University of Engineering & Technology, Peshawar.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
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
Multiplexers Section Topics Multiplexers – Definition – Examples – Verilog Modeling.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
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.
Exp#5 & 6 Introduction to Verilog COE203 Digital Logic Laboratory Dr. Ahmad Almulhem KFUPM Spring 2009.
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.
Structural Description
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
Adapted from Krste Asanovic
Reg and Wire:.
Discussion 2: More to discuss
Verilog Introduction Fall
Verilog-HDL-1 by Dr. Amin Danial Asham.
KARTHIK.S Lecturer/ECE S.N.G.C.E
Verilog-HDL-3 by Dr. Amin Danial Asham.
Hardware Description Languages: Verilog
Hardware Description Languages
Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-I]
Hardware Descriptive Languages these notes are taken from Mano’s book
Introduction to Verilog
Basic Logic Gates and Truth Tables
Hardware Descriptive Languages these notes are taken from Mano’s book
Supplement on Verilog adder examples
CS 153 Logic Design Lab Professor Ian G. Harris
Levels in Processor Design
Introduction to Digital IC Design
COE 202 Introduction to Verilog
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:

Levels in computer design Circuit design (transistors, resistors, etc) Result is in terms of gates, flip-flops etc. Logical design Put gates and f-f’s together to build larger blocks (registers,adders, multiplexers etc.) Register Transfer Design of the datapath by linking together building blocks under the control of the control unit Processor chip description Includes datapath, control unit, on-chip caches, TLB’s etc. System description 11/30/2018 CSE471 Verilog intro

HDL’s (Hardware Description Languages) Motivation: Chip densities increase hence design complexity increases Schematics become insufficient HLL’s and, for us, HDL’s allow to express Functionality (behavior of a design) Structure (description in terms of basic components and their interconnections) Data flow HDL’s part of larger system allowing Simulation (debugging of the design; discrete event simulator) Synthesis (not in this course) 11/30/2018 CSE471 Verilog intro

Verilog Includes capabilities to describe a design’s Syntax Behavioral nature (use procedural constructs) Structural composition (use of built-in gate and user-defined primitives) Data flow nature (using “continuous assignments”) Mixed (i.e. combination of the above) Syntax C-like Has capabilities to access the internals of a design during simulation 11/30/2018 CSE471 Verilog intro

Verilog capabilities (overview) Hierarchical design using instantation of modules A module, like a procedure in a C-like language, has a name, input/output ports, and a body A module is not called like a procedure. It is instantiated. Inputs are monitored. Upon change, the output is changed. Can be done continuously, or under some conditions Output can be instantaneous, or after some delay The module stays around for the lifetime of the program 11/30/2018 CSE471 Verilog intro

Module - Behaviorial //behaviorial module AND2 (in1,in2,out); Name Port list //behaviorial module AND2 (in1,in2,out); input in1, in2; output out; wire in1,in2; reg out; always @ (in1 or in2) out = in1 & in2; endmodule Required key word “infinite-loop-like” assignment; output, necessarily a register, changes every time input changes; Wire: connection between structural elements Reg: Data Storage element 11/30/2018 CSE471 Verilog intro

Module -- Data Flow //data flow module AND2 (in1,in2,out); input in1, in2; output out; wire in1,in2, out; assign out = in1 & in2; endmodule Continuous assignment. input continuously monitored; Can be used for combinational circuits (note that “out” is a wire not a register) 11/30/2018 CSE471 Verilog intro

Module -- Structural //structural module AND2 (in1,in2,out); input in1, in2; output out; wire in1,in2, out; and u1 (out,in1,in2); endmodule Primitive logic gate 11/30/2018 CSE471 Verilog intro

Testing a module with $monitor //test for behaviorial AND2 module module tester; reg in1,in2; wire out; AND2 a2(in1,in2,out); //instantiate AND2 module initial begin //Generate test data in1 = 0; in2 = 0; #1 in2 = 1; #1 in2 = 0; in1 =1; #1 in2 = 1; #1 $finish; end initial begin // header $monitor("Time=%0d in1=%b in2=%b out=%b",$time, in1, in2, out); endmodule Need to use registers here for stable monitoring initial and always used to model sequential logic Constantly monitors input. Will display info at change in one of the variables 11/30/2018 CSE471 Verilog intro

calvin% verilog tand2beh.v and2beh.v VERILOG-XL 2.5 Dec28, 1999 10:14:28 Copyright (c) 1995 Cadence Design Systems, Inc. All Rights Reserved. Unpublished -- rights reserved under the copyright laws of the United States. …………………….. Compiling source file "tand2beh.v" Compiling source file "and2beh.v" Highest level modules: tester Time=0 in1=0 in2=0 out=0 Time=1 in1=0 in2=1 out=0 Time=2 in1=1 in2=0 out=0 Time=3 in1=1 in2=1 out=1 L11 "tand2beh.v”: $finish at simulation time 4 Names of the files with modules “tester” and “and2” 11/30/2018 CSE471 Verilog intro

Testing a module with $strobe //test for data flow AND2 module module tester; reg in1,in2; wire out; AND2 a2(in1,in2,out); //instantiate AND2 module initial begin //Generate test data #1 in1 = 0; in2 = 0; $strobe("in1=%b in2=%b out=%b",in1, in2, out); #1 in2 = 1; #1 in2 = 0; in1 =1; # 1 in2 = 1; #1 $finish; end endmodule Displays data at the end of time step 11/30/2018 CSE471 Verilog intro

calvin% verilog tand2dat.v and2dat.v VERILOG-XL 2.5 Dec 28, 1999 10:36:54 Compiling source file "tand2dat.v" Compiling source file ”and2dat.v" Highest level modules: tester Time=0 in1=0 in2=0 out=0 Time=1 in1=0 in2=1 out=0 Time=2 in1=1 in2=0 out=0 Time=3 in1=1 in2=1 out=1 L15 "tand2dat.v": $finish at simulation time 5 11/30/2018 CSE471 Verilog intro

Module Hierarchy (Basic idea) Connect modules together to form larger modules Example: Build an AND gate by 2 NAND gates in series Use same tester program as before 11/30/2018 CSE471 Verilog intro

//data flow NAND module module NAND2 (in1, in2, out); input in1, in2; output out; assign out = ~(in1 & in2); endmodule By default not specifying the type of a variable means it’s a “wire” // AND made up of 2 consecutive NAND's module AND2(in1,in2,out); input in1,in2; output out; wire w1; // to connect the 2 NAND's NAND2 nand1(in1,in2,w1); NAND2 nand2(w1,w1,out); endmodule 11/30/2018 CSE471 Verilog intro

calvin% verilog tand2beh.v nand.v and2beh.v VERILOG-XL 2.5 Dec 28, 1999 10:49:18 Compiling source file "tand2beh.v" Compiling source file "nand.v" Compiling source file "and2beh.v" Highest level modules: tester Time=0 in1=0 in2=0 out=0 Time=1 in1=0 in2=1 out=0 Time=2 in1=1 in2=0 out=0 Time=3 in1=1 in2=1 out=1 L11 "tand2beh.v": $finish at simulation time 4 11/30/2018 CSE471 Verilog intro