Digital Integrated Circuits
|
|
- Ralf Page
- 6 years ago
- Views:
Transcription
1 Digital Integrated Circuits Lecture 5 Jaeyong Chung System-on-Chips (SoC) Laboratory Incheon National University
2 MULTIPLE initial/always In C (single-threaded), a single statement is being executed at a given time initial begin... always begin... always begin... always begin... Each initial/always block is executed concurrently. Multiple statements are being executed at a given time. (Similar to multi-threading and more roughly, multi-tasking) Why does it need? Hardware runs concurrently Each gate operates indepently Chung EPC6055 2
3 HOW MANY always BLOCKS? For sequential gates, we need at least one always block More precisely, we need one to model the output of flip-flops or latches comb. logic always or assign Seq. logic clock) Chung EPC6055 3
4 HOW MANY always BLOCKS? For a combinational network, we use many always blocks (But if possible, use as small as possible) comb. logic always or assign comb. logic always or assign Seq. logic always@(posedge clock) Chung EPC6055 4
5 HOW MANY always BLOCKS? Another good option Chung EPC6055 5
6 HOW MANY always BLOCKS? Note that we don t do below Chung EPC6055 6
7 The mix of structural and behavioral D Q D Q D D Q Q Instance 1 D D Q Q D Q Instance 2 D Q Chung EPC6055 7
8 BCD TO EXCESS-3 CODE CONVERTER //State Encoding `define S0 3'b000 `define S1 3'b100 `define S2 3'b101 `define S3 3'b111 `define S4 3'b110 `define S5 3'b011 `define S6 3'b010 module bcd_to_excess3(rst, clk, x, z); input rst, clk; input x; output z; reg z; reg [3:0] next_state; // State register reg [3:0] state; // Combinational logic or x) begin case(state) `S0: if(x) begin z = 0; next_state = `S2; else begin z = 1; next_state = `S1; Chung EPC6055 8
9 BCD TO EXCESS-3 CODE CONVERTER `S1: if(x) begin z = 0; next_state = `S4; else begin z = 1; next_state = `S3; `S2: begin if(x) z = 1; else z = 0; next_state = `S4; // Complete yourself! default: ; case // Sequential logic always@(posedge clk or negedge rst) begin if(~rst) state <= `S0; else state <= next_state; module Chung EPC6055 9
10 OPERATORS Operator Type Operator Meaning Example + add assign ADD=A + B - subtract assign SUB=A - B Arithmetic Operator * multiply assign MUL=A * B / divide assign DIV=A / B % modulo assign REM=A % B == equal return value = 0, 1, x === equal including x/z return value = 0, 1!= not equal return value = 0, 1, x Relational Operator!== Not equal including x/z return value = 0, 1 < Less than return value = 0, 1, x <= Less than or equal return value = 0, 1, x > Great than return value = 0, 1, x >= Greater than or equal return value = 0, 1, x Chung EPC
11 OPERATORS Operator Type Operator Meaning Example && Logical AND if (A && B) Logical Operator Logical OR if (A B)! Logical NOT if (!A) ~ Bitwise NOT ~(1011) = (0100) & Bitwise AND (1011) & (0011)=(0011) Bitwise Operator Bitwise OR (1011) (0011)=(1011) ^ Bitwise XOR (1011) ^ (0011)=(1000) ^~, ~^ Bitwise XNOR (1011) ~^ (0011)=(0111) & Reduction AND &(0101) = 0 Reduction OR (0101) = 1 Reduction Operator ~& Reduction NAND ~&(0101) = 1 ~ Reduction NOR ~ (0101) = 0 ^ Reduction XOR ^(0101) = 0 ~^, ^~ Reduction XNOR ~^(0101) = 1 Chung EPC
12 OPERATORS Operator Type Operator Meaning Example >> Right Shift 0101_1001=1011_0011>>1 Shift Operator << Left Shift 0110_0110=1011_0011<<1 { } concatenation {0011,{{01},{10}}=0011_0110 Others {{ }} replication A=1 b1; Y={4{A}} = 4 b1111? : Conditional Y=(A==B)? A:B (A==B, Y=A else Y=B) Chung EPC
13 DEBOUNCING AND SYNCHRONIZING Synchronizing External Signal Need to Synchronize External Signal with Internal Clock Avoid Setup Time Violation and Metastability Debouncing Mechanical Switch Contact May Bounce Several Milliseconds Before Settling in Final Value Must Wait for Bounce to Settle Before Reading Chung EPC
14 DEBOUNCING AND SYNCHRONIZING CIRCUIT Chung EPC
15 SINGLE PULSER Human Pressing Button Signal Would Be High for Many Cycles Single Pulser Circuit Convert Human Action to Single Clock Cycle Pulse Chung EPC
16 QUESTION Chung EPC
17 TRAFFIC LIGHT CONTROLLER Street A (Main Street) Has Green Until Car Arrives on Street B Sensors for Streets A and B When Car on B, A changes to Yellow and Red After 50 sec, If Car on A or No Car on B, then B changes to Yellow and then Red When A Turns Green, It Stays Green for at Least 60 sec Chung EPC
18 STATE GRAPH Clock Period = 10sec Chung EPC
19 VERILOG CODE // State Encoding `define S0 4'd0 `define S1 4'd1 `define S2 4'd2 `define S3 4'd3 `define S4 4'd4 `define S5 4'd5 `define S6 4'd6 `define S7 4'd7 `define S8 4'd8 `define S9 4'd9 `define S10 4'd10 `define S11 4'd11 `define S12 4'd12 module traffic(sa,sb,ga,ya,ra,gb,yb,rb,clk,rst); input sa,sb; input clk,rst; output Ga,Ya,Ra,Gb,Yb,Rb; reg Ga,Ya,Ra,Gb,Yb,Rb; reg [3:0] next_state; // State Register reg [3:0] state; // Output Logic (Combinational) begin Ra=0; Ya=0; Ga=0; Rb=0; Yb=0; Gb=0; case (state) `S0,`S1,`S2,`S3,`S4,`S5:begin Ga=1; Rb=1; `S6:begin Ya=1; Rb=1; `S7,`S8,`S9,`S10,`S11:begin Ra=1; Gb=1; `S12:begin Ra=1; Yb=1; default: ;// Do nothing case // Transition Logic (Combinational) or sb or state) begin case (state) `S0: next_state = `S1; `S1: next_state = `S2; `S2: next_state = `S3; Chung EPC
20 VERILOG CODE `S4: next_state = `S5; `S5: if(~sb) next_state = `S5; else next_state = `S6; `S6: next_state = `S7; `S7: next_state = `S8; `S8: next_state = `S9; `S9: next_state = `S10; `S10: next_state = `S11; `S11: if(sa ~sb) next_state = `S12; else next_state = `S11; `S12: next_state = `S0; default: ; // Do nothing case // Sequential Logic always@(posedge clk or negedge rst) begin if(~rst) state <= `S0; else state <= next_state; module Chung EPC
21 SHIFT-AND-ADD MULTIPLIER Need 4-Bit Adder, 4-Bit Multiplicand, 4-Bit Multiplier, and 8-Bit Product Register Chung EPC
22 SHIFT-AND-ADD MULTIPLIER Chung EPC
23 SHIFT-AND-ADD MULTIPLIER Chung EPC
24 SHIFT-AND-ADD MULTIPLIER Chung EPC
25 SHIFT-AND-ADD MULTIPLIER module multiple4 (a,b, clk, z, done ); input clk; input [3:0] a,b; output [8:0] z; output done; reg [8:0] acc; reg [3:0] state; reg done; assign z = acc; (posedge clk) begin if(state==0) begin acc[8:4] <= 5'b0; acc[3:0] <= b[3:0]; done <= 0; state <= state+1; else if(state == 1 state== 3 state==5 state== 7) begin if (acc[0]==1) begin acc[8:4] <= acc[7:4] + a[3:0]; state <= state+1; else begin acc <= {1'b0,acc[8:1]}; state <= state+2; else if(state==2 state==4 state==6 state== 8) begin acc <= {1'b0,acc[8:1]}; state <= state+1; else if(state==9) begin state <= 0; done <= 1; else state <= 0; module Not Good Example Chung EPC
26 SHIFT-AND-ADD MULTIPLIER module multiple4_2 (a,b, clk, rst,st, z, done ); input clk, rst, st; input [3:0] a,b; output [8:0] z; output done; reg [8:0] acc; reg [3:0] state; reg [3:0] next_state; reg sh, ad, load, done; wire m; ////// Datapath assign z = acc; assign m = acc[0]; // To contoller always@(posedge clk) begin if(sh) // From contoller acc <= {1'b0,acc[8:1]}; else if(ad) // From contoller acc[8:4] <= acc[7:4] + a[3:0]; else if(load) begin // From contoller acc[8:4] <= 5'b0; acc[3:0] <= b[3:0]; /////// Controller // Combinational Logic of the Controller (Transition and Output Logic) (state or m or st) begin load = 0; done = 0; ad = 0; sh = 0; next_state = 0; if(state==0) begin if(st) begin load = 1; next_state = state+1; else next_state = 0; else if(state == 1 state== 3 state==5 state== 7) begin if (m==1) begin ad = 1; next_state = state+1; else begin sh = 1; next_state = state+2; else if(state==2 state==4 state==6 state== 8) begin sh = 1; next_state = state+1; else if(state==9) begin next_state = 0; done = 1; Chung EPC
27 SHIFT-AND-ADD MULTIPLIER clk or negedge rst) begin if(!rst) state <= 0; else state <= next_state; module Chung EPC
28 SHIFT-AND-ADD MULTIPLIER Chung EPC
29 (RT-Level) Timing Module A and B communicates Module A ss a request to Module B Module B processes the request and s a response back request A response B It takes P ns to process the request including the communication time Chung EPC
30 (RT-Level) Timing If P is very small (P << T), where T is the clock period, A B reg reg request response Comb. logic CLK Req Res REQ OK CLK Req Res Chung EPC
31 (RT-Level) Timing If P > T, A B reg request response Comb. logic reg reg CLK Req Res REQ CLK Req Res Chung EPC
32 (RT-Level) Timing If P > 2T, A B request reg response reg Comb. logic reg reg CLK Req REQ Res Chung EPC
33 ARRAYS Arrays Variables of the reg, integer, time, and vector register data types can be represented as an array. <Data-Type> [Vector Range] <Variable Name> [Array Range] Multi-dimensional arrays are not supported. A vector is a single object with n-bit range whereas an array consists of m objects with n-bit range. reg xxx [15:0]; reg [3:0] mux [0:7]; // an array of 16 registers // an array of 8 4-bit registers Chung EPC
34 MODELING ROM Style 1 (Using Case) module rom_case(z, a); output [3:0] z; // 4 wide input [2:0] a; // address- 8 deep memory reg [3:0] z; begin case (a) 3'b000: z = 4'b1011; 3'b001: z = 4'b0001; 3'b100: z = 4'b0011; 3'b110: z = 4'b0010; 3'b111: z = 4'b1110; default: z = 4'b0000; case module // rom_case Chung EPC
35 MODELING ROM Style 2 (Using Array, Initialized with initial block) module rom_2dimarray_inital (z, a); output [3:0] z; input [2:0] a; // address- 8 deep memory // declare a memory rom of 8 4-bit registers. The indices are 0 to 7 reg [3:0] rom[0:7]; initial begin rom[0] = 4'b1011; rom[1] = 4'b0001; rom[2] = 4'b0011; rom[3] = 4'b0010; rom[4] = 4'b1110; rom[5] = 4'b0111; rom[6] = 4'b0101; rom[7] = 4'b0100; assign z = rom[a]; module Chung EPC
36 MODELING ROM Style 3 (Using Array, Initialized with $readmemb) module rom_2dimarray_initial_readmem (z, a); output [3:0] z; input [2:0] a; // declares a memory rom of 8 4-bit registers. //The indices are 0 to 7 reg [3:0] rom[0:7]; // NOTE: To infer combinational logic instead of a ROM, use // (* synthesis, logic_block *) initial $readmemb("rom.data", rom); assign z = rom[a]; module Chung EPC
37 MODELING RAM Asynchronous Read, Synchronous Write 0 cycle to read 1 cycle to write Chung EPC
38 MODELING RAM Synchronous Read/Write 1 cycle to read/write module or1200_spram_128x32( // Generic synchronous single-port RAM interface clk, rst, ce, we, oe, addr, di, doq ); // // Default address and data buses width // parameter aw = 7; parameter dw = 32; // // Generic synchronous single-port RAM interface // input clk, rst; input ce; // Chip enable input input we; // Write enable input oe; // Output enable input [aw-1:0] addr; // address bus input [dw-1:0] di; // input data bus output [dw-1:0] doq; // output data bus // // Generic single-port synchronous RAM model // // // Generic RAM's registers and wires // reg [dw-1:0] mem [(1<<aw)-1:0]; // RAM content reg [aw-1:0] addr_reg; // RAM address register // // Data output drivers // assign doq = (oe)? mem[addr_reg] : {dw{1'b0}}; // // RAM address register // clk or posedge rst) if (rst) addr_reg <= #1 {aw{1'b0}}; else if (ce) addr_reg <= #1 addr; // // RAM write // clk) if (ce && we) mem[addr] <= #1 di; module Chung EPC
39 MODELING RAM Dual-Port RAM module or1200_dpram_256x32(clk_a, rst_a, ce_a, oe_a, addr_a, do_a, clk_b, rst_b, ce_b, we_b, addr_b, di_b ); parameter aw = 8; parameter dw = 32; // // Generic synchronous double-port RAM interface // input clk_a, rst_a; input ce_a, oe_a; input [aw-1:0] addr_a; output [dw-1:0] do_a; input clk_b, rst_b; input ce_b; input we_b; input [aw-1:0] addr_b; input [dw-1:0] di_b; reg [dw-1:0] mem [(1<<aw)-1:0]; // RAM content reg [aw-1:0] addr_a_reg; // RAM address registered assign do_a = (oe_a)? mem[addr_a_reg] : {dw{1'b0}}; // RAM read clk_a or posedge rst_a) if (rst_a) addr_a_reg <= #1 {aw{1'b0}}; else if (ce_a) addr_a_reg <= #1 addr_a; // // RAM write // clk_b) if (ce_b && we_b) mem[addr_b] <= #1 di_b; module Chung EPC
Digital Integrated Circuits
Digital Integrated Circuits Lecture 4 Jaeyong Chung System-on-Chips (SoC) Laboratory Incheon National University BCD TO EXCESS-3 CODE CONVERTER 0100 0101 +0011 +0011 0111 1000 LSB received first Chung
More informationDigital 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 informationDigital Integrated Circuits
Digital Integrated Circuits Lecture 3 Jaeyong Chung System-on-Chips (SoC) Laboratory Incheon National University GENERAL MODEL OF MEALY MACHINE Chung EPC6055 2 GENERAL MODEL OF MOORE MACHINE Chung EPC6055
More informationVerilog introduction. Embedded and Ambient Systems Lab
Verilog introduction Embedded and Ambient Systems Lab Purpose of HDL languages Modeling hardware behavior Large part of these languages can only be used for simulation, not for hardware generation (synthesis)
More informationEPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013
EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013 Print Here Student ID Signature This is a closed book exam. The exam is to be completed in one-hundred ten (110) minutes. Don t use scratch
More informationEN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2
EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 Professor Sherief Reda http://scaleenginbrownedu Electrical Sciences and Computer Engineering School of Engineering Brown University
More informationVerilog Tutorial. Introduction. T. A.: Hsueh-Yi Lin. 2008/3/12 VLSI Digital Signal Processing 2
Verilog Tutorial T. A.: Hsueh-Yi Lin Introduction 2008/3/12 VLSI Digital Signal Processing 2 Verilog: A common language for industry HDL is a common way for hardware design Verilog VHDL Verilog is widely
More informationDigital Design with SystemVerilog
Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?
More informationEECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis
EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State
More informationFederal 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 informationECE 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 informationWhy Should I Learn This Language? VLSI HDL. Verilog-2
Verilog Why Should I Learn This Language? VLSI HDL Verilog-2 Different Levels of Abstraction Algorithmic the function of the system RTL the data flow the control signals the storage element and clock Gate
More informationLecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines
Lecture 3 Behavioral Modeling Sequential Circuits Registers Counters Finite State Machines Behavioral Modeling Behavioral Modeling Behavioral descriptions use the keyword always, followed by optional event
More informationSynthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis
Synthesis of Language Constructs 1 Nets Nets declared to be input or output ports are retained Internal nets may be eliminated due to logic optimization User may force a net to exist trireg, tri0, tri1
More informationTopics. 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 informationEECS150 - Digital Design Lecture 16 Memory 1
EECS150 - Digital Design Lecture 16 Memory 1 March 13, 2003 John Wawrzynek Spring 2003 EECS150 - Lec16-mem1 Page 1 Memory Basics Uses: Whenever a large collection of state elements is required. data &
More informationEECS150 - Digital Design Lecture 16 - Memory
EECS150 - Digital Design Lecture 16 - Memory October 17, 2002 John Wawrzynek Fall 2002 EECS150 - Lec16-mem1 Page 1 Memory Basics Uses: data & program storage general purpose registers buffering table lookups
More informationCS6710 Tool Suite. Verilog is the Key Tool
CS6710 Tool Suite Verilog-XL Behavioral Verilog Your Library Cadence SOC Encounter Synopsys Synthesis Structural Verilog Circuit Layout CSI Verilog-XL AutoRouter Cadence Virtuoso Layout LVS Layout-XL Cadence
More informationModeling Synchronous Logic Circuits. Debdeep Mukhopadhyay IIT Madras
Modeling Synchronous Logic Circuits Debdeep Mukhopadhyay IIT Madras Basic Sequential Circuits A combinational circuit produces output solely depending on the current input. But a sequential circuit remembers
More informationTopics. Midterm Finish Chapter 7
Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice
More informationProblem Set 3 Solutions
Problem Set 3 Solutions ECE 551: Digital System Design and Synthesis Fall 2001 Final Version 1) For each of the following always behaviors: a) Does the given always behavior need a default statement as
More informationIntroduction 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 informationFPGA 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 informationDigital 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 informationCMPE 415 Verilog Case-Statement Based State Machines I
Department of Computer Science and Electrical Engineering CMPE 415 Verilog Case-Statement Based State Machines I Prof Ryan Robucci Basic State Machines Mealy Machine a/q0 c/q3 a/q0 a,b,c/q4 S0 S1 S2 b/q2
More informationCS6710 Tool Suite. Verilog is the Key Tool. Verilog as HDL (AHT) Verilog has a Split Personality. Quick Review. Synthesis
CS6710 Tool Suite Verilog is the Key Tool Verilog-XL Behavioral Verilog Your Library AutoRouter Cadence SOC Encounter Cadence Virtuoso Layout Synopsys Synthesis Circuit Layout CSI LVS Layout-XL Structural
More information- 1 of 18 - The Verilog Hardware Description Language - A Behavioural View Overview. The Behavioural Model
The Verilog Hardware Description Language - A Behavioural View Overview In this lesson we will Introduce and explore the Verilog behavioural level model. Introduce the behavioural operators. Study the
More informationEN2911X: 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 informationECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS
ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one
More informationECE 551: Digital System *
ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 Explicit
More informationUnder-Graduate Project Logic Design with Behavioral Models
97-1 1 Under-Graduate Project Logic Design with Behavioral Models Speaker: 吳佳謙 Adviser: Prof. An-Yeu Wu Date: 2008/10/20 ACCESS IC LAB Operation Assignment Outline Blocking and non-blocking Appendix pp.
More informationIntroduction to Verilog HDL. Verilog 1
Introduction to HDL Hardware Description Language (HDL) High-Level Programming Language Special constructs to model microelectronic circuits Describe the operation of a circuit at various levels of abstraction
More informationVerilog. 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 informationDIGITAL 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 informationECEN 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 informationENGN1640: 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 2017 1 Topics 1. Programmable logic
More informationNote: Closed book no notes or other material allowed, no calculators or other electronic devices.
ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Exam Review Note: Closed book no notes or other material allowed, no calculators or other electronic devices. One page
More informationVerilog for High Performance
Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes
More informationSynthesizable Verilog
Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL
More informationLab #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 informationModeling Sequential Circuits in Verilog
Modeling Sequential Circuits in Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals Presentation Outline Modeling Latches and Flip-Flops Blocking versus
More informationContents. 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 informationThe Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science
The Verilog Language COMS W4995-02 Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language Originally a modeling language for a very efficient event-driven
More informationLecture #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 informationDigital Design (VIMIAA01) Introduction to the Verilog HDL
BUDAPEST UNIVERSITY OF TECHNOLOGY AND ECONOMICS FACULTY OF ELECTRICAL ENGINEERING AND INFORMATICS DEPARTMENT OF MEASUREMENT AND INFORMATION SYSTEMS Digital Design (VIMIAA01) Introduction to the Verilog
More informationCSE 140L Final Exam. Prof. Tajana Simunic Rosing. Spring 2008
CSE 140L Final Exam Prof. Tajana Simunic Rosing Spring 2008 Do not start the exam until you are told to. Turn off any cell phones or pagers. Write your name and PID at the top of every page. Do not separate
More informationEN2911X: 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 informationIn this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and
In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and shift registers, which is most useful in conversion between
More informationRegister Transfer Level in Verilog: Part I
Source: M. Morris Mano and Michael D. Ciletti, Digital Design, 4rd Edition, 2007, Prentice Hall. Register Transfer Level in Verilog: Part I Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National
More informationENGN1640: 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 informationDesign 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 informationSpeaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23
98-1 Under-Graduate Project Synthesis of Combinational Logic Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 What is synthesis? Outline Behavior Description for Synthesis Write Efficient HDL
More informationLecture 3: Modeling in VHDL. EE 3610 Digital Systems
EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware
More informationa, 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 informationStudent Name: Student ID: CSE 591: Advanced Hardware Design Professor: Kyle Gilsdorf
SE 59: dvanced Hardware Design Professor: Kyle Gilsdorf (Kyle.Gilsdorf@asu.edu) What: Mid-Term Exam (For Spring 22) Details: Please answer the following questions to the best of your ability. If you need
More informationWriting Circuit Descriptions 8
8 Writing Circuit Descriptions 8 You can write many logically equivalent descriptions in Verilog to describe a circuit design. However, some descriptions are more efficient than others in terms of the
More informationChapter 4 :: Topics. Introduction. SystemVerilog. Hardware description language (HDL): allows designer to specify logic function only.
Chapter 4 :: Hardware Description Languages Digital Design and Computer Architecture David Money Harris and Sarah L. Harris Chapter 4 :: Topics Introduction Combinational Logic Structural Modeling Sequential
More informationVerilog HDL. Gate-Level Modeling
Verilog HDL Verilog is a concurrent programming language unlike C, which is sequential in nature. block - executes once at time 0. If there is more then one block, each execute concurrently always block
More informationVerilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering VERILOG FUNDAMENTALS HDLs HISTORY HOW FPGA & VERILOG ARE RELATED CODING IN VERILOG HDLs HISTORY HDL HARDWARE DESCRIPTION LANGUAGE
More informationGraduate Institute of Electronics Engineering, NTU Design of Datapath Controllers
Design of Datapath Controllers Lecturer: Wein-Tsung Shen Date: 2005.04.01 ACCESS IC LAB Outline Sequential Circuit Model Finite State Machines Useful Modeling Techniques pp. 2 Model of Sequential Circuits
More informationIn 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 informationLecture 12 VHDL Synthesis
CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?
More informationN-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 informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly
More informationECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog
ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7
More informationReview: Timing. EECS Components and Design Techniques for Digital Systems. Lec 13 Storage: Regs, SRAM, ROM. Outline.
Review: Timing EECS 150 - Components and Design Techniques for Digital Systems Lec 13 Storage: Regs,, ROM David Culler Electrical Engineering and Computer Sciences University of California, Berkeley http://www.eecs.berkeley.edu/~culler
More informationDepartment 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 informationVerilog 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 informationELCT 501: Digital System Design
ELCT 501: Digital System Lecture 4: CAD tools (Continued) Dr. Mohamed Abd El Ghany, Basic VHDL Concept Via an Example Problem: write VHDL code for 1-bit adder 4-bit adder 2 1-bit adder Inputs: A (1 bit)
More informationVerilog for Synthesis Ing. Pullini Antonio
Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits
More information1. 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 informationVeriolog 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 informationSequential Logic Design
Sequential Logic Design Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu (Guest starring: Frank K. Gürkaynak and Aanjhan Ranganathan) http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted
More informationMCMASTER UNIVERSITY EMBEDDED SYSTEMS
MCMASTER UNIVERSITY EMBEDDED SYSTEMS Computer Engineering 4DS4 Lecture Revision of Digital Systems Amin Vali January 26 Course material belongs to DrNNicolici Field programmable gate arrays (FPGAs) x x
More informationQuick Introduction to SystemVerilog: Sequental Logic
! Quick Introduction to SystemVerilog: Sequental Logic Lecture L3 8-545 Advanced Digital Design ECE Department Many elements Don Thomas, 24, used with permission with credit to G. Larson Today Quick synopsis
More informationLecture 32: SystemVerilog
Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:
More informationENGN1640: 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 informationFirst Name: Last Name: PID: CSE 140L Exam. Prof. Tajana Simunic Rosing. Winter 2010
CSE 140L Exam Prof. Tajana Simunic Rosing Winter 2010 Do not start the exam until you are told to. Turn off any cell phones or pagers. Write your name and PID at the top of every page. Do not separate
More informationHDL Coding Style Xilinx, Inc. All Rights Reserved
HDL Coding Style Objective After completing this module, you will be able to: Select a proper coding style to create efficient FPGA designs Specify Xilinx resources that need to be instantiated for various
More informationChapter 2 Using Hardware Description Language Verilog. Overview
Chapter 2 Using Hardware Description Language Verilog CSE4210 Winter 2012 Mokhtar Aboelaze based on slides by Dr. Shoab A. Khan Overview Algorithm development isa usually done in MATLAB, C, or C++ Code
More informationCSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8
CSCB58 - Lab 3 Latches, Flip-flops, and Registers Learning Objectives The purpose of this exercise is to investigate the fundamental synchronous logic elements: latches, flip-flops, and registers. Prelab
More informationMealy and Moore examples
CSE 37 Spring 26 Introduction to igital esign ecture 2: uential ogic Technologies ast ecture Moore and Mealy Machines Today uential logic technologies Ving machine: Moore to synch. Mealy OPEN = creates
More informationLogic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis
Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital
More informationCAD for VLSI Design - I. Lecture 21 V. Kamakoti and Shankar Balachandran
CAD for VLSI Design - I Lecture 21 V. Kamakoti and Shankar Balachandran Overview of this Lecture Understanding the process of Logic synthesis Logic Synthesis of HDL constructs Logic Synthesis What is this?
More informationBUILDING BLOCKS OF A BASIC MICROPROCESSOR. Part 1 PowerPoint Format of Lecture 3 of Book
BUILDING BLOCKS OF A BASIC MICROPROCESSOR Part PowerPoint Format of Lecture 3 of Book Decoder Tri-state device Full adder, full subtractor Arithmetic Logic Unit (ALU) Memories Example showing how to write
More informationECE 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 informationproblem maximum score 1 8pts 2 6pts 3 10pts 4 15pts 5 12pts 6 10pts 7 24pts 8 16pts 9 19pts Total 120pts
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences EECS150 J. Wawrzynek Spring 2010 3/31/09 Name: ID number: Midterm Exam This is a closed-book,
More informationThis 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 informationCSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Instructor: Mohsen Imani. Slides from Tajana Simunic Rosing
CSE4L: Components and Design Techniques for Digital Systems La FSMs Instructor: Mohsen Imani Slides from Tajana Simunic Rosing Source: Vahid, Katz Flip-flops Hardware Description Languages and Sequential
More informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but
More informationVLSI Design 13. Introduction to Verilog
Last module: Sequential circuit design Design styles This module Synthesis Brief introduction to Verilog Synthesis in the Design Flow Designer Tasks Tools Architect Logic Designer Circuit Designer Define
More informationA short introduction to SystemVerilog. For those who know VHDL We aim for synthesis
A short introduction to SystemVerilog For those who know VHDL We aim for synthesis 1 Verilog & SystemVerilog 1984 Verilog invented, C-like syntax First standard Verilog 95 Extra features Verilog 2001 A
More informationFinite-State Machine (FSM) Design
1 Finite-State Machine (FSM) Design FSMs, an important category of sequential circuits, are used frequently in designing digital systems. From the daily used electronic machines to the complex digital
More informationECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control
ECE 4514 Digital Design II Lecture 15: FSM-based Control A Design Lecture Overview Finite State Machines Verilog Mapping: one, two, three always blocks State Encoding User-defined or tool-defined State
More informationEEL 4783: HDL in Digital System Design
EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for
More informationEECS150 - Digital Design Lecture 20 - Finite State Machines Revisited
EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited April 2, 2009 John Wawrzynek Spring 2009 EECS150 - Lec20-fsm Page 1 Finite State Machines (FSMs) FSM circuits are a type of sequential
More informationEECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007
EECS 5 - Components and Design Techniques for Digital Systems Lec 2 RTL Design Optimization /6/27 Shauki Elassaad Electrical Engineering and Computer Sciences University of California, Berkeley Slides
More informationCSE140L: Components and Design Techniques for Digital Systems Lab
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check
More informationSynthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1
Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out
More informationCSE 140L Final Exam. Prof. Tajana Simunic Rosing. Spring 2008
CSE 140L Final Exam Prof. Tajana Simunic Rosing Spring 2008 NAME: ID#: Do not start the exam until you are told to. Turn off any cell phones or pagers. Write your name and PID at the top of every page.
More information