Register Transfer Level Design with Verilog

Size: px
Start display at page:

Download "Register Transfer Level Design with Verilog"

Transcription

1 Register Transfer Level Design with Verilog Adapted from Z. Navabi Portions Copyright Z. Navabi, Register Transfer Level Design with Verilog 2.1 RT Level Design Control/data partitioning Data part Control part 2.2 Elements of Verilog Hardware modules Primitive instantiations Assign statements Condition expression Procedural blocks Module instantiations 2 1

2 Register Transfer Level Design with Verilog 2.3 Component Description in Verilog Data components Controllers 2.4 Testbenches A simple tester Tasks and functions 2.5 Summary 3 RT Level Design RT level design: Taking a high level description of a design Partitioning Coming up with an architecture Designing the bussing structure Describing and implementing various components of the architecture Steps in RT level design: Control/Data Partitioning Data Part Design Control Part Design 4 2

3 RT Level Design RT Level Design Control/data Partitioning Data Part Control Part 5 Control/Data Partitioning RT Level Design Control/data Partitioning Data Part Control Part 6 3

4 Control/Data Partitioning RT Level Design Data Inputs DataPath Reg Flags & status Opcode Control Control Outputs Data flow Control signals Data Outputs Control Inputs 7 Data Part RT Level Design Control/data Partitioning Data Part Control Part 8 4

5 Data Part Data Inputs Data Outputs Reg DataPath Flags & status Opcode Data flow Control signals 9 Data Part Output Signals: module DataPath Going to the control (DataInput, DataOutput, Flags, Opcodes, part, provide flags ControlSignals); and status of the data input [15:0] DataInputs; output [15:0] DataOutputs; Control Signals: output Flags,...; Inputs to data part, output Opcodes,...; sent to the data components input ControlSignals,...; and busses // instantiation of data components //... // interconnection of data components // bussing specification Control Signals for the module busses: Select the sources DataPath Module and routing of data from one data component to another 10 5

6 Data Part module DataComponent (DataIn, DataOut,, ControlSignals); Data Component: Shows how the component uses its input control signals to perform various operations on its data inputs input [7:0] DataIn; output [7:0] DataOut; input ControlSignals; // Deping on ControlSignals // Operate on DataIn and // Produce DataOut module Partial Verilog Code of a Data Component 11 Control Part RT Level Design Control/data Partitioning Data Part Control Part 12 6

7 Control Part Control Flags & status Opcode Data flow Control signals Consists of one or more state machines to keep the state of the circuit. Control Outputs Control Inputs Makes decisions as to when and what control signals to issue deping on its state. 13 Control Part module ControlUnit (Flags, Opcodes, ExternalControls, ControlSignals); input Flags,...; Takes control input Opcodes,...; inputs from the input ExternalControls,...; Data Part output ControlSignals; // Based on inputs decide : // What control signals to issue, // and what next state to take module Outline of a Controller 14 7

8 Elements of Verilog We discuss basic constructs of Verilog language for describing a hardware module. 15 Elements of Verilog Hardware Modules Primitive Instantiations Condition Expression Assign Statements Procedural Blocks Module Instantiations 16 8

9 Hardware Modules Hardware Modules Primitive Instantiations Condition Expression Assign Statements Procedural Blocks Module Instantiations 17 Keyword module Hardware Modules module : The Main Component of Verilog module module-name Variables, wires, and List of ports; module parameters Declarations are declared.... Functional specification of module... Keyword module module Module Specifications 18 9

10 Hardware Modules There is more than one way to describe a Module in Verilog. May correspond to descriptions at various levels of abstraction or to various levels of detail of the functionality of a module. Descriptions of the same module need not behave in exactly the same way nor is it required that all descriptions describe a behavior correctly. We discuss basic constructs of Verilog language for a hardware module description. We show a small example and several alternative ways to describe it in Verilog. 19 Primitive Instantiations Hardware Modules Primitive Instantiations Condition Expression Assign Statements Procedural Blocks Module Instantiations 20 10

11 Primitive Instantiations a a_sel Logic Gates called Primitives s b s_bar b_sel w A Multiplexer Using Basic Logic Gates 21 Primitive Instantiations module MultiplexerA (input a, b, s, output w); wire a_sel, b_sel,, s_bar; not U1 (s_bar, s); and U2 (a_sel( a_sel,, a, s_bar); Instantiation of Primitives and U3 (b_sel( b_sel,, b, s); or U4 (w, a_sel, b_sel); module Primitive Instantiations 22 11

12 Assign Statements Hardware Modules Primitive Instantiations Condition Expression Assign Statements Procedural Blocks Module Instantiations 23 Assign Statements Continuously drives w with the right hand side expression module MultiplexerB (input( a, b, s, output w); assign w = (a & ~s) (b & s); module Using Boolean Assign Statement and Boolean expressions to describe the logic 24 12

13 Condition Expression Hardware Modules Primitive Instantiations Condition Expression Assign Statements Procedural Blocks Module Instantiations 25 Condition Expression Can be used when the operation of a unit is too complex to be described by Boolean expressions module MultiplexerC (input( a, b, s, output w); assign w = s? b : a; module Assign Statement and Condition Operator Useful in describing a behavior in a very compact way Very Effective in describing complex functionalities 26 13

14 Procedural Blocks Hardware Modules Primitive Instantiations Condition Expression Assign Statements Procedural Blocks Module Instantiations 27 Procedural Blocks always statement Sensitivity list module MultiplexerD (input( a, b, s, output w); reg w; b, s) begin if (s) w = b; else w = a; Can if-else be used when the module operation statement of a unit is too complex to be Procedural Statement described by Boolean or conditional expressions 28 14

15 Module Instantiations Hardware Modules Primitive Instantiations Condition Expression Assign Statements Procedural Blocks Module Instantiations 29 Module Instantiations module ANDOR (input( i1, i2, i3, i4, output y); ANDOR assign y = (i1 & i2) (i3 & i4); module is module defined // module MultiplexerE (input( a, b, s, output w); wire s_bar; not U1 (s_bar, s); ANDOR U2 (a, s_bar, s, b, w); ANDOR module module is Module Instantiation instantiated 30 15

16 Module Instantiations a s b i1 i2 i3 i4 ANDOR y w Multiplexer Using ANDOR 31 Component Description in Verilog Component Description Data Components Controllers 32 16

17 Data Components Component Description Data Components Controllers 33 Data Components Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 34 17

18 Multiplexer Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 35 Multiplexer Defines a Time Unit of 1 ns and Time Precision of 100 ps. `timescale 1ns/100ps module Mux8 (input( sel, input [7:0] data1, data0, output [7:0] bus1); assign #6 bus1 = sel? data1 : data0; module Octal 2-to-1 MUX A 6-ns Delay is specified for all values assigned to bus1 Selects its 8-bit data0 or data1 input deping on its sel input

19 Flip-Flop Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 37 Flip-Flop Flip-Flops are A used Software-Like in data part for Procedural flags and data Coding storage Style Synchronous `timescale 1ns/100ps reset inputi Flip-Flop The Body of always triggers on the module Flop (reset, din, clk, qout); statement is falling edge of input reset, din, clk; A executed Signal declared at the as a clk Input reg output qout; to be capable of negative edge of holding the its values reg qout; clk signal between clock edges clk) begin if (reset) qout <= #8 1'b0; else qout <= #8 din; module A Non-blocking An 8-ns Assignment Flip-Flop Description Delay 38 19

20 Counter Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 39 Counter Counters are used in A 4-bit modulo-16 data part for registering Counter data, accessing memory or queues and register `timescale 4-bit 1ns/100ps stacks Register module Counter4 (input( reset, clk, output [3:0] count); reg [3:0] count; clk) begin Constant Definition if (reset) count <= #3 4'b00_00; else count <= #5 count + 1; When count module reaches 1111, Counter Verilog Code the next count taken is

21 Full-Adder Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 41 A combinational circuit All Changes `timescale 1ns/100ps Occur after 5 ns Full-Adder Full-Adders are used in data part for building Carry-Chain adders module fulladder (input a, b, cin, output sum, cout); assign #5 sum = a ^ b ^ cin; assign #3 cout = (a & b) (a & cin) (b & cin); module All Changes Occur after 3 ns One Full-Adder delay for Verilog Code every output: tplh and tphl 42 21

22 Shift-Register Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 43 2 Mode inputs m[1:0] form a `timescale 2-bit number 1ns/100ps Shift-Register An 8-bit Universal Shift Register module ShiftRegister8 (input sl, sr, clk, input Case Statement [7:0] ParIn, input [1:0] m, output With 4 reg case-alternatives [7:0] ParOut); and default Value clk) begin case (m) m=0 : Does Nothing 0: ParOut <= ParOut; 1: ParOut <= {sl{ sl, ParOut [7:1]}; 2: ParOut <= {ParOut{ [6:0], sr}; m=1,2: : Shifts Right 3: ParOut <= ParIn; and Left default: ParOut <= 8'bX; case m=3 : Loads its Parallel input into the register module 44 22

23 Shift-Register (Continued) `timescale 1ns/100ps module ShiftRegister8 (input sl, sr, clk, input [7:0] ParIn, input [1:0] m, output reg [7:0] ParOut); Shift Right: The SL input is clk) begin concatenated to case (m) the left of ParOut 0: ParOut <= ParOut; 1: ParOut <= {sl{ sl, ParOut [7:1]}; 2: ParOut <= {ParOut{ [6:0], sr}; 3: ParOut <= ParIn; default: ParOut <= 8'bX; Shifting the case ParOut to the left module 45 ALU Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 46 23

24 `timescale 1ns/100ps ALU module ALU8 (input( [7:0] left, right, input [1:0] mode, output reg [7:0] ALUout); right, mode) begin case (mode) 0: ALUout = left + right; 1: ALUout = left - right; 2: ALUout = left & right; 3: ALUout = left right; default: ALUout = 8'bX; case module 2-bit mode Input to select one of its 4 functions Add Subtract AND OR An 8-bit ALU 47 ALU (Continued) The Declaration of ALUout both as `timescale 1ns/100ps output and reg: Because of module ALU8 (input( [7:0] left, right, assigning it within input [1:0] mode, a Procedural Block output reg [7:0] ALUout); right, mode) begin case (mode) Blocking 0: ALUout = left + right; Assignments 1: ALUout = left - right; 2: ALUout = left & right; 3: ALUout = left right; default: ALUout = 8'bX; default alternative case puts all Xs on ALUOut if mode containsc module anything but 1s s and 0s An 8-bit ALU 48 24

25 Interconnections Data Components Multiplexer Flip-Flop Counter Full-Adder Shift-Register ALU Interconnections 49 Interconnections Inbus Aside Bside 8 8 select_source Mux8 and ALU examples forming a Partial Hardware 8 8 ABinput Function 8 Outbus Partial Hardware Using MUX8 and ALU 50 25

26 Interconnections Instantiation of ALU8 and MUX8 A Set of parenthesis enclose port connections to the instantiated modules ALU8 U1 (.left(inbus),.right(abinput),.mode(function),.aluout(outbus) ); Mux8 U2 (.sel(select_source),.data1(aside),.data0(bside),.bus1 (ABinput( ABinput)); u1 Verilog and u2 : Code of The Partial Hardware Example Instance Names 51 Interconnections An Alternative format of port connection The actual ports of the instantiated components are excluded ALU8 U1 ( Inbus, ABinput,, function, Outbus ); Mux8 U2 ( select_source,, Aside, Bside, ABinput ); Ordered Port Connection The list of local signals in the same order as their connecting ports 52 26

27 Controllers Component Description Data Components Controllers 53 Controllers Decisions Based on :Inputs, Outputs,State Issue Control Signal Set Next State Controller Outline Go to Next State 54 27

28 Controllers Controller: Is wired into data part to control its flow of data. The inputs to it controller determine its next states and outputs. Monitors its inputs and makes decisions as to when and what output signals to assert. Keeps the history of circuit data by switching to appropriate states. Two examples to illustrate the features of Verilog for describing state machines: Synchronizer Sequence Detector 55 Controllers Controllers Synchronizer Sequence Detector 56 28

29 Synchronizer Controllers Synchronizer Synthesizer Sequence Detector 57 Synchronizer Clk adata synched Synchronizing adata 58 29

30 Synchronizer `timescale 1ns/100ps module Synchronizer (input( clk, adata, output reg synched); clk) if (adata( == 0) synched <= 0; If a 1 is Detected on else synched <= 1; adata on the rising module edge of clock, synched becomes 1 and A Simple Synchronization Circuit remains 1 for at least one clock period 59 Sequence Detector Controllers Synthesizer Sequence Detector 60 30

31 Sequence Detector Searches on it s a input for the 110 Sequence a If 110 is detected on a, then w gets 1, else w gets 0. When the sequence is detected, the w Output becomes 1 and stays 1 for a complete clock cycle w clk State Machine Description 61 A Moore Machine Sequence Detector Initial State reset Sequence Detector Sequence Detector State Machine 0 States are named: s0, s1, s2, s3 1 1 S0 S1 S2 S The State in which the 110 sequence is detected. It Takes at least 3 clock periods to get to the s3 state 62 31

32 Sequence Detector module Detector110 (input( a, clk,, reset, output w); parameter [1:0] s0=2'b00, s1=2'b01, s2=2'b10, s3=2'b11; reg [1:0] current; clk) begin if (reset) current = s0; else case (current) s0: if (a) current <= s1; else current <= s0; s1: if (a) current <= s2; else current <= s0; s2: if (a) current <= s2; else current <= s3; s3: if (a) current <= s1; else current <= s0; case assign w = (current == s3)? 1 : 0; module Verilog Code for 110 Detector 63 Sequence Detector module Detector110 (input( a, clk,, reset, output w); parameter [1:0] s0=2'b00, s1=2'b01, s2=2'b10, s3=2'b11; Behavioral Description of the State Machine reg [1:0] current; A 2-bit Register clk) begin if (reset) current = s0; else Parameter declaration defines constants s0, s1, s2, s3 Verilog Code for 110 Detector 64 32

33 Sequence Detector clk) begin if-else statement if (reset) current = s0; checks for reset else At the case (current) Absence of s0: if (a) current <= s1; else current <= s0; a 1 on reset s1: if (a) current <= s2; else current <= s0; s2: if (a) current <= s2; else current <= s3; s3: if (a) current <= s1; else current <= s0; case The 4 Case-alternatives each correspond to a Verilog Code for 110 Detector state of state machine 65 Sequence Detector s1 0 s1: a=1 if (a) a=0 s0 0 s2 0 else current <= s2; current <= s0; State Transitions on Corresponding Verilog Code 66 33

34 Sequence Detector Outside of the always Block: A combinational circuit assign w = (current == s3)? 1 : 0; module Verilog Code for 110 Detector Assigns a 1 to w output when Machine Reaches to s3 State 67 Testbenches Testbenches A Simple Tester Tasks And Functions 68 34

35 A Simple Tester Testbenches A Simple Tester Tasks And Functions 69 `timescale 1ns/100ps A Simple Tester module Detector110Tester; reg aa,, clock, rst; wire ww; Detector110 UUT (aa( aa,, clock, rst, ww); initial begin aa = 0; clock = 0; rst = 1; initial repeat (44) #7 clock = ~clock; initial repeat (15) #23 aa = ~aa~ aa; initial begin #31 rst = 1; #23 rst = 0; ww) if (ww == 1) $display ("A 1 was detected on w at time = %t", $time); module Testbench for Detector

36 Begins with the module keyword `timescale 1ns/100ps A Simple Tester Unlike other descriptions doesn t t have input or output ports module Detector110Tester; reg aa,, clock, Outputs rst; are Inputs are Declared as reg wire ww; declared as wire Detector110 UUT (aa( aa,, clock, rst, ww); The Instantiation of Detector110 Module Testbench for Detector A Simple Tester initial statement drives test values into the variables connected to the An initial statement: A inputs. sequential statement that... runs once and stops... when it reaches its last initial begin statement aa = 0; clock = 0; rst = 1; initial repeat (44) #7 clock = ~clock; initial repeat (15) #23 aa = ~aa~ aa; All Initial Blocks initial begin Start at Time 0 and #31 rst = 1; Run Concurrently #23 rst = 0; Testbench for Detector

37 A Simple Tester Repeats 44 times of... complementing the For... Initializing clock input with 7ns the Input Signals initial begin delay, generates a periodic aa = 0; clock = 0; rst = 1; signal on clock initial repeat (44) #7 clock = ~clock; initial repeat (15) #23 aa = ~aa~ aa; initial begin #31 rst = 1; Signal aa is also #23 rst = 0; assigned a periodic signal, with a different frequency Testbench for Waits Detector ns before assigning 1 to rst 73 A Simple Tester always Block Wakes up when ww Changes Reports the Times at which... the ww Variable... becomes 1 ww) if (ww == 1) $display ("A 1 was detected on w at time = %t", $time); module This Note Will Appear Testbench for Detector110 in the Simulation A Verilog Environment s System Task Window: Console or Transcript 74 37

38 Tasks And Functions Testbenches A Simple Tester Tasks And Functions 75 Tasks And Functions Verilog Tasks and Functions: System tasks for Input, Output, Display, and Timing Checks User defined tasks and functions Tasks: Can represent a sub module within a Verilog module Begins with a task keyword Its body can only consist of sequential statements like if-else and case Functions: Can be used for corresponding to hardware entities May be used for writing structured codes Applications: Representation of Boolean functions, data and code conversion, and input and output formatting 76 38

39 Funky parallelism Hardware is inherently parallel FPGA = Fine-grained massively parallel computer Verilog = Funky parallel programming language 77 Verilog tips and traps 78 39

40 Constants: 32 bits, decimal wire [7:0] foo = 127; // synthesis warning! wire [7:0] foo = 8 d127; 8 wire [7:0] foo = 8 b ; 8 wire [7:0] foo = 8 hff; 8 wire [7:0] foo = 8 hff; 8 watch out: 1010 looks like 4 b1010! 4 79 Truncation wire [7:0] a = 8 hab; 8 wire b; // oops! forgot width wire [7:0] c; assign b = a; // synthesis warning if lucky. assign c = a; 80 40

41 reg vs.. wire wire f; reg g, h; assign f = a & b; clk) g <= a & b; h = a & b; 81 (blocking) = vs.. <= (non-blocking) Simple rule: If you want sequential logic, use clk) ) with <=. (non-blocking) If you want combinational logic, use with =. (blocking) 82 41

42 (blocking) = vs.. <= (non-blocking) clk) begin f <= a + b; g <= f + c; clk) begin f = a + b; g = f + c; // a + b + c always@(posedge clk) begin f2 <= f1; f3 <= f2; f4 = f3; f5 = f4; // f5 = f3!! f7 = f6; f6 = f5; 83 Verilog Stratified Event Queue [1] Region 1: Active Events Most events except those explicitly in other regions Includes $display system tasks Region 2: Inactive Events Processed after all active events #0 delay events (bad!( bad!) Region 3: Non-blocking Assign Update Events Evaluation previously performed Update is after all active and inactive events complete Region 4: Monitor Events Caused by $monitor and $strobe system tasks Region 5: Future Events Occurs at some future simulation time Includes future events of other regions Other regions only contain events for CURRENT simulation time

43 Verilog Stratified Event Queue [2] within a block, blocking assignments, are in order Incomplete sensitivity lists or b) // it s s or, not f = a & b; f = a & b; always f = a & b; Just use always@(*) for combinational logic 86 43

44 Blocking and non-blocking assignments Blocking assignments (Q = A) Variable is assigned immediately New value is used by subsequent statements Non-blocking assignments (Q <= A) Variable is assigned after all scheduled statements are executed Value to be assigned is computed but saved for later Example: Swap CLK) begin temp = B; B = A; A = temp; CLK) begin A <= B; B <= A; 87 Blocking and non-blocking assignments reg B, C, D; clk) begin B = A; C = B; D = C; reg B, C, D; clk) begin B <= A; C <= B; D <= C; 88 44

45 The following code executes incorrectly One block executes first Loses previous value of variable CLK) begin A = B; Swap Non-blocking assignment fixes this Both blocks are scheduled by posedge CLK CLK) begin B = A; CLK) begin A <= B; CLK) begin B <= A; 89 Parallel versus serial execution assign statements are implicitly parallel = means continuous assignment Example assign E = A & D; assign A = B & C; A and E change if B changes always blocks execute in parallel clock) Procedural block internals not necessarily parallel = is a blocking assignment (sequential) <= <= is a nonblocking assignment (parallel) Examples of procedures: always, function,, etc. B C A D E 90 45

ECE232: Hardware Organization and Design. Part 3: Verilog Tutorial. http://www.ecs.umass.edu/ece/ece232/ Basic Verilog

ECE232: Hardware Organization and Design. Part 3: Verilog Tutorial. http://www.ecs.umass.edu/ece/ece232/ Basic Verilog ECE232: Hardware Organization and Design Part 3: Verilog Tutorial http://www.ecs.umass.edu/ece/ece232/ Basic Verilog module ();

More information

Understanding Verilog Blocking and Non-blocking Assignments

Understanding Verilog Blocking and Non-blocking Assignments Understanding Verilog Blocking and Non-blocking Assignments International Cadence User Group Conference September 11, 1996 presented by Stuart HDL Consulting About the Presenter Stuart has over 8 years

More information

More Verilog. 8-bit Register with Synchronous Reset. Shift Register Example. N-bit Register with Asynchronous Reset.

More Verilog. 8-bit Register with Synchronous Reset. Shift Register Example. N-bit Register with Asynchronous Reset. More Verilog 8-bit Register with Synchronous Reset module reg8 (reset, CLK, D, Q); input reset; input [7:0] D; output [7:0] Q; reg [7:0] Q; if (reset) Q = 0; else Q = D; module // reg8 Verilog - 1 Verilog

More information

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: jimmy@ee.ncu.edu.tw. Sequential Circuit

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: jimmy@ee.ncu.edu.tw. Sequential Circuit Modeling Sequential Elements with Verilog Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: jimmy@ee.ncu.edu.tw 4-1 Sequential Circuit Outputs are functions of inputs and present states of storage elements

More information

Chapter 2 Verilog HDL for Design and Test

Chapter 2 Verilog HDL for Design and Test Chapter 2 Verilog HDL for Design and Test In Chapter 1, we discussed the basics of test and presented ways in which hardware description languages (HDLs) could be used to improve various aspects of digital

More information

ECE 3401 Lecture 7. Concurrent Statements & Sequential Statements (Process)

ECE 3401 Lecture 7. Concurrent Statements & Sequential Statements (Process) ECE 3401 Lecture 7 Concurrent Statements & Sequential Statements (Process) Concurrent Statements VHDL provides four different types of concurrent statements namely: Signal Assignment Statement Simple Assignment

More information

Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17

Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17 Life Cycle of a Memory Request (1) Use AQR or AQW to place address in AQ (2) If A[31]==0, check for hit in DCache Ring (3) Read Hit: place cache word in RQ; Write Hit: replace cache word with WQ RDDest/RDreturn

More information

Modeling Registers and Counters

Modeling Registers and Counters Lab Workbook Introduction When several flip-flops are grouped together, with a common clock, to hold related information the resulting circuit is called a register. Just like flip-flops, registers may

More information

ECE 451 Verilog Exercises. Sept 14, 2007. James Barnes (James.Barnes@colostate.edu)

ECE 451 Verilog Exercises. Sept 14, 2007. James Barnes (James.Barnes@colostate.edu) ECE 451 Verilog Exercises Sept 14, 2007 James Barnes (James.Barnes@colostate.edu) Organization These slides give a series of self-paced exercises. Read the specification of each exercise and write your

More information

A New Paradigm for Synchronous State Machine Design in Verilog

A New Paradigm for Synchronous State Machine Design in Verilog A New Paradigm for Synchronous State Machine Design in Verilog Randy Nuss Copyright 1999 Idea Consulting Introduction Synchronous State Machines are one of the most common building blocks in modern digital

More information

A Verilog HDL Test Bench Primer Application Note

A Verilog HDL Test Bench Primer Application Note A Verilog HDL Test Bench Primer Application Note Table of Contents Introduction...1 Overview...1 The Device Under Test (D.U.T.)...1 The Test Bench...1 Instantiations...2 Figure 1- DUT Instantiation...2

More information

Memory Elements. Combinational logic cannot remember

Memory Elements. Combinational logic cannot remember Memory Elements Combinational logic cannot remember Output logic values are function of inputs only Feedback is needed to be able to remember a logic value Memory elements are needed in most digital logic

More information

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language Chapter 4 Register Transfer and Microoperations Section 4.1 Register Transfer Language Digital systems are composed of modules that are constructed from digital components, such as registers, decoders,

More information

To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC.

To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC. 8.1 Objectives To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC. 8.2 Introduction Circuits for counting events are frequently used in computers and other digital

More information

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts) Dr. Greg Tumbush, gtumbush@uccs.edu Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts) Objective The objective of lab assignments 5 through 9 are to systematically design and implement

More information

Chapter 13: Verification

Chapter 13: Verification Chapter 13: Verification Prof. Ming-Bo Lin Department of Electronic Engineering National Taiwan University of Science and Technology Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010,

More information

Registers & Counters

Registers & Counters Objectives This section deals with some simple and useful sequential circuits. Its objectives are to: Introduce registers as multi-bit storage devices. Introduce counters by adding logic to registers implementing

More information

LAB #4 Sequential Logic, Latches, Flip-Flops, Shift Registers, and Counters

LAB #4 Sequential Logic, Latches, Flip-Flops, Shift Registers, and Counters LAB #4 Sequential Logic, Latches, Flip-Flops, Shift Registers, and Counters LAB OBJECTIVES 1. Introduction to latches and the D type flip-flop 2. Use of actual flip-flops to help you understand sequential

More information

Computer organization

Computer organization Computer organization Computer design an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + datapath Control = finite state machine inputs

More information

Module 3: Floyd, Digital Fundamental

Module 3: Floyd, Digital Fundamental Module 3: Lecturer : Yongsheng Gao Room : Tech - 3.25 Email : yongsheng.gao@griffith.edu.au Structure : 6 lectures 1 Tutorial Assessment: 1 Laboratory (5%) 1 Test (20%) Textbook : Floyd, Digital Fundamental

More information

Modeling Latches and Flip-flops

Modeling Latches and Flip-flops Lab Workbook Introduction Sequential circuits are digital circuits in which the output depends not only on the present input (like combinatorial circuits), but also on the past sequence of inputs. In effect,

More information

The 104 Duke_ACC Machine

The 104 Duke_ACC Machine The 104 Duke_ACC Machine The goal of the next two lessons is to design and simulate a simple accumulator-based processor. The specifications for this processor and some of the QuartusII design components

More information

Lesson 12 Sequential Circuits: Flip-Flops

Lesson 12 Sequential Circuits: Flip-Flops Lesson 12 Sequential Circuits: Flip-Flops 1. Overview of a Synchronous Sequential Circuit We saw from last lesson that the level sensitive latches could cause instability in a sequential system. This instability

More information

Chapter 7: Advanced Modeling Techniques

Chapter 7: Advanced Modeling Techniques Chapter 7: Advanced Modeling Techniques Prof. Ming-Bo Lin Department of Electronic Engineering National Taiwan University of Science and Technology Digital System Designs and Practices Using Verilog HDL

More information

E158 Intro to CMOS VLSI Design. Alarm Clock

E158 Intro to CMOS VLSI Design. Alarm Clock E158 Intro to CMOS VLSI Design Alarm Clock Sarah Yi & Samuel (Tae) Lee 4/19/2010 Introduction The Alarm Clock chip includes the basic functions of an alarm clock such as a running clock time and alarm

More information

150127-Microprocessor & Assembly Language

150127-Microprocessor & Assembly Language Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an

More information

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng Digital Logic Design Basics Combinational Circuits Sequential Circuits Pu-Jen Cheng Adapted from the slides prepared by S. Dandamudi for the book, Fundamentals of Computer Organization and Design. Introduction

More information

Take-Home Exercise. z y x. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas

Take-Home Exercise. z y x. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas Take-Home Exercise Assume you want the counter below to count mod-6 backward. That is, it would count 0-5-4-3-2-1-0, etc. Assume it is reset on startup, and design the wiring to make the counter count

More information

CHAPTER 3 Boolean Algebra and Digital Logic

CHAPTER 3 Boolean Algebra and Digital Logic CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4

More information

Latches, the D Flip-Flop & Counter Design. ECE 152A Winter 2012

Latches, the D Flip-Flop & Counter Design. ECE 152A Winter 2012 Latches, the D Flip-Flop & Counter Design ECE 52A Winter 22 Reading Assignment Brown and Vranesic 7 Flip-Flops, Registers, Counters and a Simple Processor 7. Basic Latch 7.2 Gated SR Latch 7.2. Gated SR

More information

Design Example: Counters. Design Example: Counters. 3-Bit Binary Counter. 3-Bit Binary Counter. Other useful counters:

Design Example: Counters. Design Example: Counters. 3-Bit Binary Counter. 3-Bit Binary Counter. Other useful counters: Design Eample: ers er: a sequential circuit that repeats a specified sequence of output upon clock pulses. A,B,C,, Z. G, O, T, E, R, P, S,!.,,,,,,,7. 7,,,,,,,.,,,,,,,,,,,. Binary counter: follows the binary

More information

ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path

ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path Project Summary This project involves the schematic and layout design of an 8-bit microprocessor data

More information

Sequential Logic. (Materials taken from: Principles of Computer Hardware by Alan Clements )

Sequential Logic. (Materials taken from: Principles of Computer Hardware by Alan Clements ) Sequential Logic (Materials taken from: Principles of Computer Hardware by Alan Clements ) Sequential vs. Combinational Circuits Combinatorial circuits: their outputs are computed entirely from their present

More information

Finite State Machine Design and VHDL Coding Techniques

Finite State Machine Design and VHDL Coding Techniques Finite State Machine Design and VHDL Coding Techniques Iuliana CHIUCHISAN, Alin Dan POTORAC, Adrian GRAUR "Stefan cel Mare" University of Suceava str.universitatii nr.13, RO-720229 Suceava iulia@eed.usv.ro,

More information

Counters and Decoders

Counters and Decoders Physics 3330 Experiment #10 Fall 1999 Purpose Counters and Decoders In this experiment, you will design and construct a 4-bit ripple-through decade counter with a decimal read-out display. Such a counter

More information

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa Experiment # 9 Clock generator circuits & Counters Eng. Waleed Y. Mousa 1. Objectives: 1. Understanding the principles and construction of Clock generator. 2. To be familiar with clock pulse generation

More information

DEPARTMENT OF INFORMATION TECHNLOGY

DEPARTMENT OF INFORMATION TECHNLOGY DRONACHARYA GROUP OF INSTITUTIONS, GREATER NOIDA Affiliated to Mahamaya Technical University, Noida Approved by AICTE DEPARTMENT OF INFORMATION TECHNLOGY Lab Manual for Computer Organization Lab ECS-453

More information

CHAPTER 11: Flip Flops

CHAPTER 11: Flip Flops CHAPTER 11: Flip Flops In this chapter, you will be building the part of the circuit that controls the command sequencing. The required circuit must operate the counter and the memory chip. When the teach

More information

Verilog: always @ Blocks

Verilog: always @ Blocks Verilog: always @ Blocks hris Fletcher U Berkeley Version 0.2008.9.4 September 5, 2008 Introduction Sections. to.6 discuss always@ blocks in Verilog, and when to use the two major flavors of always@ block,

More information

Digital Electronics Detailed Outline

Digital Electronics Detailed Outline Digital Electronics Detailed Outline Unit 1: Fundamentals of Analog and Digital Electronics (32 Total Days) Lesson 1.1: Foundations and the Board Game Counter (9 days) 1. Safety is an important concept

More information

WEEK 8.1 Registers and Counters. ECE124 Digital Circuits and Systems Page 1

WEEK 8.1 Registers and Counters. ECE124 Digital Circuits and Systems Page 1 WEEK 8.1 egisters and Counters ECE124 igital Circuits and Systems Page 1 Additional schematic FF symbols Active low set and reset signals. S Active high set and reset signals. S ECE124 igital Circuits

More information

Digital Circuit Design Using Xilinx ISE Tools

Digital Circuit Design Using Xilinx ISE Tools Digital Circuit Design Using Xilinx ISE Tools Contents 1. Introduction... 1 2. Programmable Logic Device: FPGA... 2 3. Creating a New Project... 2 4. Synthesis and Implementation of the Design... 11 5.

More information

Asynchronous & Synchronous Reset Design Techniques - Part Deux

Asynchronous & Synchronous Reset Design Techniques - Part Deux Clifford E. Cummings Don Mills Steve Golson Sunburst Design, Inc. LCDM Engineering Trilobyte Systems cliffc@sunburst-design.com mills@lcdm-eng.com sgolson@trilobyte.com ABSTRACT This paper will investigate

More information

VHDL Test Bench Tutorial

VHDL Test Bench Tutorial University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory VHDL Test Bench Tutorial Purpose The goal of this tutorial is to demonstrate how to automate

More information

(Refer Slide Time: 00:01:16 min)

(Refer Slide Time: 00:01:16 min) Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control

More information

BINARY CODED DECIMAL: B.C.D.

BINARY CODED DECIMAL: B.C.D. BINARY CODED DECIMAL: B.C.D. ANOTHER METHOD TO REPRESENT DECIMAL NUMBERS USEFUL BECAUSE MANY DIGITAL DEVICES PROCESS + DISPLAY NUMBERS IN TENS IN BCD EACH NUMBER IS DEFINED BY A BINARY CODE OF 4 BITS.

More information

Sequential Logic Design Principles.Latches and Flip-Flops

Sequential Logic Design Principles.Latches and Flip-Flops Sequential Logic Design Principles.Latches and Flip-Flops Doru Todinca Department of Computers Politehnica University of Timisoara Outline Introduction Bistable Elements Latches and Flip-Flops S-R Latch

More information

Lab1 : 2-1 MUX. 1. Change to Lab1 directory. It contains the mux.v and mux_text.v files. use this command : cd Lab1

Lab1 : 2-1 MUX. 1. Change to Lab1 directory. It contains the mux.v and mux_text.v files. use this command : cd Lab1 Please design a 2-1MUX Specifications Module name : mux Input pins : a, b, sel Output pins : out Function : Lab1 : 2-1 MUX 1. Change to Lab1 directory. It contains the mux.v and mux_text.v files. use this

More information

Manchester Encoder-Decoder for Xilinx CPLDs

Manchester Encoder-Decoder for Xilinx CPLDs Application Note: CoolRunner CPLDs R XAPP339 (v.3) October, 22 Manchester Encoder-Decoder for Xilinx CPLDs Summary This application note provides a functional description of VHDL and Verilog source code

More information

An Integer Square Root Algorithm

An Integer Square Root Algorithm An Integer Square Root Algorithm 71 Example 24 An Integer Square Root Algorithm The C algorithm shown in Fig. 2.8 performs an integer square root of the input a as shown in Table 2.1. Note from Table 2.1

More information

Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill

Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill Objectives: Analyze the operation of sequential logic circuits. Understand the operation of digital counters.

More information

Chapter 2 Ensuring RTL Intent

Chapter 2 Ensuring RTL Intent Chapter 2 Ensuring RTL Intent A user starts the design of his block, by describing the functionality of the block in the form of RTL. The RTL code is then synthesized to realize the gate level connectivity

More information

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies ETEC 2301 Programmable Logic Devices Chapter 10 Counters Shawnee State University Department of Industrial and Engineering Technologies Copyright 2007 by Janna B. Gallaher Asynchronous Counter Operation

More information

Introduction to Programmable Logic Devices. John Coughlan RAL Technology Department Detector & Electronics Division

Introduction to Programmable Logic Devices. John Coughlan RAL Technology Department Detector & Electronics Division Introduction to Programmable Logic Devices John Coughlan RAL Technology Department Detector & Electronics Division PPD Lectures Programmable Logic is Key Underlying Technology. First-Level and High-Level

More information

Wiki Lab Book. This week is practice for wiki usage during the project.

Wiki Lab Book. This week is practice for wiki usage during the project. Wiki Lab Book Use a wiki as a lab book. Wikis are excellent tools for collaborative work (i.e. where you need to efficiently share lots of information and files with multiple people). This week is practice

More information

L4: Sequential Building Blocks (Flip-flops, Latches and Registers)

L4: Sequential Building Blocks (Flip-flops, Latches and Registers) L4: Sequential Building Blocks (Flip-flops, Latches and Registers) Acknowledgements: Materials in this lecture are courtesy of the following sources and are used with permission. Prof. Randy Katz (Unified

More information

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad A. M. Niknejad University of California, Berkeley EE 100 / 42 Lecture 24 p. 1/20 EE 42/100 Lecture 24: Latches and Flip Flops ELECTRONICS Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad University of California,

More information

State Machines in VHDL

State Machines in VHDL State Machines in VHDL Implementing state machines in VHDL is fun and easy provided you stick to some fairly well established forms. These styles for state machine coding given here is not intended to

More information

DIGITAL COUNTERS. Q B Q A = 00 initially. Q B Q A = 01 after the first clock pulse.

DIGITAL COUNTERS. Q B Q A = 00 initially. Q B Q A = 01 after the first clock pulse. DIGITAL COUNTERS http://www.tutorialspoint.com/computer_logical_organization/digital_counters.htm Copyright tutorialspoint.com Counter is a sequential circuit. A digital circuit which is used for a counting

More information

VHDL GUIDELINES FOR SYNTHESIS

VHDL GUIDELINES FOR SYNTHESIS VHDL GUIDELINES FOR SYNTHESIS Claudio Talarico For internal use only 1/19 BASICS VHDL VHDL (Very high speed integrated circuit Hardware Description Language) is a hardware description language that allows

More information

MICROPROCESSOR AND MICROCOMPUTER BASICS

MICROPROCESSOR AND MICROCOMPUTER BASICS Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit

More information

7. Latches and Flip-Flops

7. Latches and Flip-Flops Chapter 7 Latches and Flip-Flops Page 1 of 18 7. Latches and Flip-Flops Latches and flip-flops are the basic elements for storing information. One latch or flip-flop can store one bit of information. The

More information

COMBINATIONAL CIRCUITS

COMBINATIONAL CIRCUITS COMBINATIONAL CIRCUITS http://www.tutorialspoint.com/computer_logical_organization/combinational_circuits.htm Copyright tutorialspoint.com Combinational circuit is a circuit in which we combine the different

More information

Gates, Circuits, and Boolean Algebra

Gates, Circuits, and Boolean Algebra Gates, Circuits, and Boolean Algebra Computers and Electricity A gate is a device that performs a basic operation on electrical signals Gates are combined into circuits to perform more complicated tasks

More information

EXPERIMENT 8. Flip-Flops and Sequential Circuits

EXPERIMENT 8. Flip-Flops and Sequential Circuits EXPERIMENT 8. Flip-Flops and Sequential Circuits I. Introduction I.a. Objectives The objective of this experiment is to become familiar with the basic operational principles of flip-flops and counters.

More information

Lab 1: Introduction to Xilinx ISE Tutorial

Lab 1: Introduction to Xilinx ISE Tutorial Lab 1: Introduction to Xilinx ISE Tutorial This tutorial will introduce the reader to the Xilinx ISE software. Stepby-step instructions will be given to guide the reader through generating a project, creating

More information

Systems I: Computer Organization and Architecture

Systems I: Computer Organization and Architecture Systems I: omputer Organization and Architecture Lecture 8: Registers and ounters Registers A register is a group of flip-flops. Each flip-flop stores one bit of data; n flip-flops are required to store

More information

ASYNCHRONOUS COUNTERS

ASYNCHRONOUS COUNTERS LB no.. SYNCHONOUS COUNTES. Introduction Counters are sequential logic circuits that counts the pulses applied at their clock input. They usually have 4 bits, delivering at the outputs the corresponding

More information

Multiplexers Two Types + Verilog

Multiplexers Two Types + Verilog Multiplexers Two Types + Verilog ENEE 245: Digital Circuits and ystems Laboratory Lab 7 Objectives The objectives of this laboratory are the following: To become familiar with continuous ments and procedural

More information

Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems

Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems Harris Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems David Harris Harvey Mudd College David_Harris@hmc.edu Based on EE271 developed by Mark Horowitz, Stanford University MAH

More information

Chapter 2 Logic Gates and Introduction to Computer Architecture

Chapter 2 Logic Gates and Introduction to Computer Architecture Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are

More information

Digital Logic Design Sequential circuits

Digital Logic Design Sequential circuits Digital Logic Design Sequential circuits Dr. Eng. Ahmed H. Madian E-mail: ahmed.madian@guc.edu.eg Dr. Eng. Rania.Swief E-mail: rania.swief@guc.edu.eg Dr. Eng. Ahmed H. Madian Registers An n-bit register

More information

MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1

MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1 MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable

More information

COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design PH-315 COMINATIONAL and SEUENTIAL LOGIC CIRCUITS Hardware implementation and software design A La Rosa I PURPOSE: To familiarize with combinational and sequential logic circuits Combinational circuits

More information

CS311 Lecture: Sequential Circuits

CS311 Lecture: Sequential Circuits CS311 Lecture: Sequential Circuits Last revised 8/15/2007 Objectives: 1. To introduce asynchronous and synchronous flip-flops (latches and pulsetriggered, plus asynchronous preset/clear) 2. To introduce

More information

The components. E3: Digital electronics. Goals:

The components. E3: Digital electronics. Goals: E3: Digital electronics Goals: Basic understanding of logic circuits. Become familiar with the most common digital components and their use. Equipment: 1 st. LED bridge 1 st. 7-segment display. 2 st. IC

More information

Lecture 8: Synchronous Digital Systems

Lecture 8: Synchronous Digital Systems Lecture 8: Synchronous Digital Systems The distinguishing feature of a synchronous digital system is that the circuit only changes in response to a system clock. For example, consider the edge triggered

More information

Traffic Light Controller. Digital Systems Design. Dr. Ted Shaneyfelt

Traffic Light Controller. Digital Systems Design. Dr. Ted Shaneyfelt Traffic Light Controller Digital Systems Design Dr. Ted Shaneyfelt December 3, 2008 Table of Contents I. Introduction 3 A. Problem Statement 3 B. Illustration 3 C. State Machine 3 II. Procedure 4 A. State

More information

Flip-Flops and Sequential Circuit Design. ECE 152A Winter 2012

Flip-Flops and Sequential Circuit Design. ECE 152A Winter 2012 Flip-Flops and Sequential Circuit Design ECE 52 Winter 22 Reading ssignment Brown and Vranesic 7 Flip-Flops, Registers, Counters and a Simple Processor 7.5 T Flip-Flop 7.5. Configurable Flip-Flops 7.6

More information

Flip-Flops and Sequential Circuit Design

Flip-Flops and Sequential Circuit Design Flip-Flops and Sequential Circuit Design ECE 52 Winter 22 Reading ssignment Brown and Vranesic 7 Flip-Flops, Registers, Counters and a Simple Processor 7.5 T Flip-Flop 7.5. Configurable Flip-Flops 7.6

More information

Getting the Most Out of Synthesis

Getting the Most Out of Synthesis Outline Getting the Most Out of Synthesis Dr. Paul D. Franzon 1. Timing Optimization Approaches 2. Area Optimization Approaches 3. Design Partitioning References 1. Smith and Franzon, Chapter 11 2. D.Smith,

More information

case Statement //8-wide, 4:1 multiplexer module case1 ( input [7:0] a_in, b_in, c_in, d_in, input [1:0] sel, output logic [7:0] d_out);

case Statement //8-wide, 4:1 multiplexer module case1 ( input [7:0] a_in, b_in, c_in, d_in, input [1:0] sel, output logic [7:0] d_out); Nesting if past two levels is error prone and possibly inefficient. case excels when many tests are performed on the same expression. case works well for muxes, decoders, and next state logic. SVerilog

More information

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition A Tutorial Approach James O. Hamblen Georgia Institute of Technology Michael D. Furman Georgia Institute of Technology KLUWER ACADEMIC PUBLISHERS Boston

More information

Upon completion of unit 1.1, students will be able to

Upon completion of unit 1.1, students will be able to Upon completion of unit 1.1, students will be able to 1. Demonstrate safety of the individual, class, and overall environment of the classroom/laboratory, and understand that electricity, even at the nominal

More information

Sequential Logic: Clocks, Registers, etc.

Sequential Logic: Clocks, Registers, etc. ENEE 245: igital Circuits & Systems Lab Lab 2 : Clocks, Registers, etc. ENEE 245: igital Circuits and Systems Laboratory Lab 2 Objectives The objectives of this laboratory are the following: To design

More information

INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE

INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE INTRODUCTION TO DIGITAL SYSTEMS 1 DESCRIPTION AND DESIGN OF DIGITAL SYSTEMS FORMAL BASIS: SWITCHING ALGEBRA IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE COURSE EMPHASIS:

More information

MAX II ISP Update with I/O Control & Register Data Retention

MAX II ISP Update with I/O Control & Register Data Retention MAX II ISP Update with I/O Control & Register Data Retention March 2006, ver 1.0 Application Note 410 Introduction MAX II devices support the real-time in-system mability (ISP) feature that allows you

More information

16-bit ALU, Register File and Memory Write Interface

16-bit ALU, Register File and Memory Write Interface CS M152B Fall 2002 Project 2 16-bit ALU, Register File and Memory Write Interface Suggested Due Date: Monday, October 21, 2002 Actual Due Date determined by your Lab TA This project will take much longer

More information

University of Toronto Faculty of Applied Science and Engineering

University of Toronto Faculty of Applied Science and Engineering Print : First Name :............................. Last Name :............................. Student Number:............................................... University of Toronto Faculty of Applied Science

More information

CS 61C: Great Ideas in Computer Architecture Finite State Machines. Machine Interpreta4on

CS 61C: Great Ideas in Computer Architecture Finite State Machines. Machine Interpreta4on CS 61C: Great Ideas in Computer Architecture Finite State Machines Instructors: Krste Asanovic & Vladimir Stojanovic hbp://inst.eecs.berkeley.edu/~cs61c/sp15 1 Levels of RepresentaKon/ InterpretaKon High

More information

Asynchronous Counters. Asynchronous Counters

Asynchronous Counters. Asynchronous Counters Counters and State Machine Design November 25 Asynchronous Counters ENGI 25 ELEC 24 Asynchronous Counters The term Asynchronous refers to events that do not occur at the same time With respect to counter

More information

TIMING DIAGRAM O 8085

TIMING DIAGRAM O 8085 5 TIMING DIAGRAM O 8085 5.1 INTRODUCTION Timing diagram is the display of initiation of read/write and transfer of data operations under the control of 3-status signals IO / M, S 1, and S 0. As the heartbeat

More information

PART B QUESTIONS AND ANSWERS UNIT I

PART B QUESTIONS AND ANSWERS UNIT I PART B QUESTIONS AND ANSWERS UNIT I 1. Explain the architecture of 8085 microprocessor? Logic pin out of 8085 microprocessor Address bus: unidirectional bus, used as high order bus Data bus: bi-directional

More information

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter Description: The NTE2053 is a CMOS 8 bit successive approximation Analog to Digital converter in a 20 Lead DIP type package which uses a differential

More information

Building a computer. Electronic Numerical Integrator and Computer (ENIAC)

Building a computer. Electronic Numerical Integrator and Computer (ENIAC) Building a computer Electronic Numerical Integrator and Computer (ENIAC) CSCI 255: Introduc/on to Embedded Systems Keith Vertanen Copyright 2011 Layers of abstrac

More information

Combinational Logic Design Process

Combinational Logic Design Process Combinational Logic Design Process Create truth table from specification Generate K-maps & obtain logic equations Draw logic diagram (sharing common gates) Simulate circuit for design verification Debug

More information

Let s put together a Manual Processor

Let s put together a Manual Processor Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce

More information

Sistemas Digitais I LESI - 2º ano

Sistemas Digitais I LESI - 2º ano Sistemas Digitais I LESI - 2º ano Lesson 6 - Combinational Design Practices Prof. João Miguel Fernandes (miguel@di.uminho.pt) Dept. Informática UNIVERSIDADE DO MINHO ESCOLA DE ENGENHARIA - PLDs (1) - The

More information

Chapter 7. Registers & Register Transfers. J.J. Shann. J. J. Shann

Chapter 7. Registers & Register Transfers. J.J. Shann. J. J. Shann Chapter 7 Registers & Register Transfers J. J. Shann J.J. Shann Chapter Overview 7- Registers and Load Enable 7-2 Register Transfers 7-3 Register Transfer Operations 7-4 A Note for VHDL and Verilog Users

More information

Lecture 7: Clocking of VLSI Systems

Lecture 7: Clocking of VLSI Systems Lecture 7: Clocking of VLSI Systems MAH, AEN EE271 Lecture 7 1 Overview Reading Wolf 5.3 Two-Phase Clocking (good description) W&E 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.9, 5.5.10 - Clocking Note: The analysis

More information