Computer Architecture (TT 2012)

Size: px
Start display at page:

Download "Computer Architecture (TT 2012)"

Transcription

1 Computer Architecture (TT 2012) The Register Transfer Level Daniel Kroening Oxford University, Computer Science Department Version 1.0, 2011

2 Outline Reminders Gates Implementations of Gates Latches, Flip-flops and Clocks Timing Analysis Transition Systems A Brief Verilog Primer Four-valued Logic Event-driven Simulation D. Kroening: Computer Architecture (TT 2012) 2

3 Reminders Abstract gates abstract and CMOS gates Flip-flops and clocks D. Kroening: Computer Architecture (TT 2012) 3

4 Logic Gates Basic building block of digital circuitry Implement Boolean functions Gates have multiple inputs, usually one output Inputs/outputs are assigned a logical value 0 or 1 Representation using voltage, for example: 0 0V voltage 1 3.3V voltage D. Kroening: Computer Architecture (TT 2012) 4

5 Abstract Switches x x Closed when x = 1 Closed when x = 0 Idea: switch closed upper and lower port are connected D. Kroening: Computer Architecture (TT 2012) 5

6 Example: Inverter and NOR Inverter logical negation x x (INV PIC) NOR disjunction with negation x y x y (NOR PIC) D. Kroening: Computer Architecture (TT 2012) 6

7 Building an Inverter using Switches x y input output D. Kroening: Computer Architecture (TT 2012) 7

8 Building an Inverter using Switches open x y input output The 1 on the input closes the lower switch. D. Kroening: Computer Architecture (TT 2012) 8

9 Building an Inverter using Switches x y input output The 0 on the input closes the upper switch. D. Kroening: Computer Architecture (TT 2012) 9

10 Building NOR using Switches x y inputs output z = x nor y D. Kroening: Computer Architecture (TT 2012) 10

11 Building NOR using Switches x y inputs output z = x nor y D. Kroening: Computer Architecture (TT 2012) 11

12 Building NOR using Switches x y inputs 2nd switch still open! output z = x nor y D. Kroening: Computer Architecture (TT 2012) 12

13 Building NOR using Switches x y inputs output z = x nor y D. Kroening: Computer Architecture (TT 2012) 13

14 Typical Implementations of Gates Examples: vacuum tube BJT: Bipolar Junction Transistor (used in TTL) FET: Field effect transistor (used in MOS) MOS = Metal Oxide Semiconductor CMOS: Complementary MOS D. Kroening: Computer Architecture (TT 2012) 14

15 NMOS source metal gate metal drain metal insulator SiO2 n doped n doped p doped substrate Implementation of a switch with doped silicon n/p-doping: excess of negative/positive charge carriers PMOS is dual to NMOS. D. Kroening: Computer Architecture (TT 2012) 15

16 NMOS Open source n doped gate p doped substrate n doped drain insulator SiO 2 Voltage gate/source 0 V: switch open (no current) D. Kroening: Computer Architecture (TT 2012) 16

17 NMOS Closed source n doped gate n channel p doped substrate n doped drain insulator SiO 2 Voltage gate/source > 0 V: switch closed (drain/source current possible) D. Kroening: Computer Architecture (TT 2012) 17

18 Schematics Drain Drain Gate Gate Source NMOS Source PMOS D. Kroening: Computer Architecture (TT 2012) 18

19 CMOS Inverter VDD IN PMOS OUT IN is 0: PMOS closed, NMOS open OUT is 1 GND NMOS IN is 1: PMOS open, NMOS closed OUT is 0 D. Kroening: Computer Architecture (TT 2012) 19

20 CMOS NOR VDD y x nor y x GND D. Kroening: Computer Architecture (TT 2012) 20

21 CMOS NAND VDD x y x nand y GND D. Kroening: Computer Architecture (TT 2012) 21

22 VLSI Prescott (2004), 90 nm process, 125 m. transistors on 122mm 2 Poulson (2012): 32 nm process, 3.1 bn transistors on 544mm 2 D. Kroening: Computer Architecture (TT 2012) 22

23 Latches and Flip-flops So far: combinational circuitry Outputs are a function of the inputs But we would like to store data D. Kroening: Computer Architecture (TT 2012) 23

24 Latches and Flip-flops So far: combinational circuitry Outputs are a function of the inputs But we would like to store data Latches store data level-sensitive Flip-flops store data edge-triggered D. Kroening: Computer Architecture (TT 2012) 23

25 D-Flip-Flop input (data) clock D Q C Q state state negated most simplistic sequential building block: stores input for one clock period usually comes with (asynchronous) reset or set input signal D. Kroening: Computer Architecture (TT 2012) 24

26 Positive and Negative Edges raising falling C falling and rising clock edge D. Kroening: Computer Architecture (TT 2012) 25

27 D-Flip-Flop with Positive Edge Triggering Transition table D C Q Q Q Q 0 Q Q 1 Q Q Notation: the prime in Q means value in the next state positive edge, negative edge D. Kroening: Computer Architecture (TT 2012) 26

28 D-Flip-Flop with Positive Edge Triggering D C Q Q Changing D only has an effect on the next (positive) clock edge! D. Kroening: Computer Architecture (TT 2012) 27

29 A High-level, Simplified View inputs combinational logic outputs current state registers next state D. Kroening: Computer Architecture (TT 2012) 28

30 A High-level, Simplified View This ignores (fails to model) techniques such as multi-cycle paths asynchronous sub-circuits multiple clock domains But: somewhat suitable to model clock multipliers D. Kroening: Computer Architecture (TT 2012) 29

31 Timing Analysis How much can we crank up the clock? D. Kroening: Computer Architecture (TT 2012) 30

32 Timing Analysis How much can we crank up the clock? What happens if we overdo it? D. Kroening: Computer Architecture (TT 2012) 30

33 Timing Requirements of a D-Flip-Flop t w t phl clk t plh t s t h t s t h Input stable during setup phase t s before the edge Input stable during hold phase t h after the edge Output is stable after propagation phase t plh or t phl, resp., after the edge minimal clock period (width) t w D. Kroening: Computer Architecture (TT 2012) 31

34 Timing Example t s t h t s t h D t w t w clk t plh Q t phl D. Kroening: Computer Architecture (TT 2012) 32

35 Maximal Clock Frequency setup + hold time + propagation delay of the flip-flops + delay of the combinational circuitry (longest path!) = cycle time The maximal clock frequency is the inverse of the cycle time D. Kroening: Computer Architecture (TT 2012) 33

36 Example D Q Q D Q Q D Q Q D Q Q Component t p t s AND 7 ns - NAND 6 ns - OR 6 ns - Component t p t s NOR 5 ns - XOR 9 ns - D-Flipflop 11 ns 3 ns D. Kroening: Computer Architecture (TT 2012) 34

37 Example D Q Q D Q Q D Q Q D Q Q Component t p t s AND 7 ns - NAND 6 ns - OR 6 ns - Component t p t s NOR 5 ns - XOR 9 ns - D-Flipflop 11 ns 3 ns D. Kroening: Computer Architecture (TT 2012) 34

38 Example D Q Q D Q Q D Q Q D Q Q Component t p t s AND 7 ns - NAND 6 ns - OR 6 ns - Component t p t s NOR 5 ns - XOR 9 ns - D-Flipflop 11 ns 3 ns D. Kroening: Computer Architecture (TT 2012) 34

39 Example 3 ns Setup + hold time + 11 ns propagation Delay of the flip-flops + 27 ns longest path = 41 ns cycle time Maximum clock frequency: 1 41ns Hz 24.4 MHz D. Kroening: Computer Architecture (TT 2012) 35

40 Pipelining Q: How can we increase the clock frequency? (will please marketing department) Reminder: the clock frequency is determined by the longest path between two D-flip-flops. D. Kroening: Computer Architecture (TT 2012) 36

41 Pipelining Q: How can we increase the clock frequency? (will please marketing department) Reminder: the clock frequency is determined by the longest path between two D-flip-flops. Idea: put a D-flip-flop into that path! D. Kroening: Computer Architecture (TT 2012) 36

42 Example Pipelining D Q Q D Q Q D Q Q D Q Q D. Kroening: Computer Architecture (TT 2012) 37

43 Example Pipelining D D Q Q Q Q D D D Q Q Q Q Q Q D D Q Q Q Q D. Kroening: Computer Architecture (TT 2012) 37

44 Example Pipelining D D Q Q Q Q D D D Q Q Q Q Q Q D D Q Q Q Q D. Kroening: Computer Architecture (TT 2012) 37

45 Example Pipelining 3 ns setup + hold time + 11 ns propagation delay of the flip-flops + 18 ns longest path = 32 ns cycle time Maximum clock frequency: 1 32ns Hz 31.3 MHz D. Kroening: Computer Architecture (TT 2012) 38

46 Modelling Sequential Circuits combinational no state think of functional programming (Lisp, ML): no side effects! Outputs are fully determined by the current inputs sequential with state think of programming with state variables and assignment current inputs and past behaviour determine outputs D. Kroening: Computer Architecture (TT 2012) 39

47 Formalisation of Sequential Circuitry Definition (transition system) A transition system is a triple S, I, T with S: set of states I S: initial states T : S S: transition relation D. Kroening: Computer Architecture (TT 2012) 40

48 Formalisation of Sequential Circuitry Definition (transition system) A transition system is a triple S, I, T with S: set of states I S: initial states T : S S: transition relation Definition (computation) A computation is a sequence s 0,..., s n with s i S and s 0 I i : (s i, s i+1 ) T D. Kroening: Computer Architecture (TT 2012) 40

49 Example: Modulo 4 Counter set of states S: the numbers 0 to 3 one initial state: I = {0} transition relation: the counter is incremented modulo 4 T = {(0, 1), (1, 2), (2, 3), (3, 0)} D. Kroening: Computer Architecture (TT 2012) 41

50 Determinism A state machine may, in general, be non-deterministic 1. deadends: states without successor 2. states with more than one successor D. Kroening: Computer Architecture (TT 2012) 42

51 Determinism A state machine may, in general, be non-deterministic 1. deadends: states without successor 2. states with more than one successor Hardware is usually deterministic: every state has exactly one successor D. Kroening: Computer Architecture (TT 2012) 42

52 Transition Functions What about the inputs of our device? We introduce an input alphabet E Transition function δ : (S E) S Initial states: I : (S E) This is a special case of a transition relation: (x, y) T e E.δ(x, e) = y D. Kroening: Computer Architecture (TT 2012) 43

53 Transition Functions What about the inputs of our device? We introduce an input alphabet E Transition function δ : (S E) S Initial states: I : (S E) This is a special case of a transition relation: (x, y) T e E.δ(x, e) = y for a given e this is deterministic, and there are no deadends D. Kroening: Computer Architecture (TT 2012) 43

54 Example: Modulo 4 Counter with Synchronous Reset rst rst 0 1 rst rst rst S = {0,..., 3} E = {rst, rst} 3 rst 2 The counter is reset to 0 when rst = 1, otherwise is incremented modulo 4: { 0 : rst δ(s, rst) = (s + 1) mod 4 : otherwise D. Kroening: Computer Architecture (TT 2012) 44

55 Example: Modulo 4 Counter with Synchronous Reset rst rst 0 1 rst rst rst S = {0,..., 3} E = {rst, rst} 3 rst 2 The counter is reset to 0 when rst = 1, otherwise is incremented modulo 4: { 0 : rst δ(s, rst) = (s + 1) mod 4 : otherwise In hardware, there would usually be bits and bytes. D. Kroening: Computer Architecture (TT 2012) 44

56 Modulo 4 Counter: Binary Encoding rst 00 rst 01 rst rst rst rst States ab are valuations of D-flip-flops with a, b {0, 1} Binary encoding: 0 00, 1 01, 2 10, 3 11 A transition ab c a b current state ab, a next state a b and a condition c is a triple of a D. Kroening: Computer Architecture (TT 2012) 45

57 Modulo 4 Counter: Transition Function δ = { (00, 0, 01), (00, 1, 00), (01, 0, 10), (01, 1, 00), (10, 0, 11), (10, 1, 00), (11, 0, 00), (11, 1, 00) } Examples: δ(00, 0) = 01, δ(10, 1) = 00 D. Kroening: Computer Architecture (TT 2012) 46

58 Modulo 4 Counter: Transition Table state a b rst a b This can be encoded using the following next-state functions: a rst (a b) b rst b D. Kroening: Computer Architecture (TT 2012) 47

59 Some Computations of the Modulo 4 Counter Transition # rst a b D. Kroening: Computer Architecture (TT 2012) 48

60 Some Computations of the Modulo 4 Counter Transition # rst a b Transition # rst a b D. Kroening: Computer Architecture (TT 2012) 48

61 Modulo 4 Counter with Synchronous Reset rst b a clk global clock: clk (we omit this from the model) just one input: rst next-state logic: as marked in blue no output logic in this example D. Kroening: Computer Architecture (TT 2012) 49

62 Summary: Register-transfer Level 1. Set of registers R i with i {1,..., n} with domain D i = {0, 1} wi for some w i 2. S = D 1 D 2... D n 3. Input e E (possibly partitioned) 4. Next-state function f i (s, e) for each register T (s, s ) e. s = (f 1 (s, e),..., f n (s, e)) D. Kroening: Computer Architecture (TT 2012) 50

63 Real-world Models of Hardware Old days: schematics Verilog or VHDL plain C C++ or SystemC (functional programming languages practicals) D. Kroening: Computer Architecture (TT 2012) 51

64 A Brief Verilog Primer Verilog was designed for circuit simulation Now also used for synthesis Procedural, event-driven semantics Circuits are composed of modules, which are connected via ports. D. Kroening: Computer Architecture (TT 2012) 52

65 Simulation with Four-valued Logic Verilog uses a four-valued logic A wire in the high impedance state has value Z In addition, we have X for unknown (e.g., at the beginning of the simulation) There is also a weak 1 and a weak 0 (we ll ignore these) D. Kroening: Computer Architecture (TT 2012) 53

66 Semantics of the Four-valued Logic & 0 1 X Z X X X 0 X X X Z 0 X X X ˆ 0 1 X Z X X X X X X X X X Z X X X X 0 1 X Z X X X X 1 X X Z X 1 X X ˆ 0 1 X Z X X X X X X X X X Z X X X X X X Z X D. Kroening: Computer Architecture (TT 2012) 54

67 Combinational Logic in Verilog timescale 1 ns / 1 ns module gate delay(input a, output b, c, z); assign #10 b =!a; 5 assign #10 c =!b; assign #10 z =!c; endmodule a b c z D. Kroening: Computer Architecture (TT 2012) 55

68 Delays and Time in Verilog module gate delay tb; wire b, c, z; reg a; 5 gate delay M(a, b, c, z); initial begin a=0; #50; a=1; #10; a=0; end 10 endmodule D. Kroening: Computer Architecture (TT 2012) 56

69 Example 2-Bit Adder module add2impl(input [1:0] a, input [1:0] b, output [2:0] sum); wire carry1; 5 assign sum[0] = a[0] ˆ b [0]; assign carry1 = a[0] & b [0]; assign sum[1] = a[1] ˆ b[1] ˆ carry1; assign sum[2] = (a[1]&b[1]) (a[1]&carry1) ( b[1]&carry1); 10 endmodule D. Kroening: Computer Architecture (TT 2012) 57

70 2-Bit Adder: Testbench module add2 tb(); reg [1:0] a, b; wire [2:0] s; 5 add2impl add(a, b, s); initial begin a=0; b=0; #1; assert(s==0); 10 a=1; b=0; #1; assert(s==1); a=0; b=1; #1; assert(s==1); a=1; b=1; #1; assert(s==2); a=2; b=1; #1; assert(s==3); end 15 endmodule The test vectors contain the expected result as assertions D. Kroening: Computer Architecture (TT 2012) 58

71 Word-level Descriptions in Verilog module my ALU( input [31:0] a, input [31:0] b, input op, output [31:0] out ); 5 assign out = op? a b : a+b; endmodule This actually generates an adder and a multiplier Verilog s expression syntax more or less matches that of Java and C D. Kroening: Computer Architecture (TT 2012) 59

72 2-Bit Adder: Word-level Specification module main(input [1:0] a, input [1:0] b, input clk, output reg [2:0] x); wire [2:0] s; 5 add2impl add(a, b, s); clk) begin x=s; 10 assert(s==a+b); end endmodule Separates test-vectors and specification D. Kroening: Computer Architecture (TT 2012) 60

73 Latch in Verilog reg q; c) if (c) q <= d; assign q <= c? d : q; assign q <= (d && c) (q &&!c); standard-compliant not compliant Synthesis maps compliant descriptions to a latch from the library non-compliant descriptions may result in asynchronous logic, and hazards D. Kroening: Computer Architecture (TT 2012) 61

74 D-Flip-flop in Verilog Flip-flops are meant to be implemented as follows: reg q; c) q <= d; Caveat: The contents of the sensitivity list are clock) There need not be an assignment to q on all paths D. Kroening: Computer Architecture (TT 2012) 62

75 Verilog: combinational vs. sequential module combinational( input a, b, sel, output reg out); 5 (a or b or sel) begin if (sel) out = a; else out = b; end 10 endmodule module sequential( input a, b, sel, clk, output reg out); 5 (posedge clk) begin if (sel) out = a; else out = b; end 10 endmodule a b 1 0 out a b 1 0 D Q out sel sel reg may be combinational! clk D. Kroening: Computer Architecture (TT 2012) 63

76 A Verilog Template for State Machines 1. Define state-holding elements 2. Define next-state function 3. Define output function D. Kroening: Computer Architecture (TT 2012) 64

77 Verilog Module module statemachine(input clk, rst,... // inputs output reg out,...);... 5 endmodule As usual, one clock for everything Inputs and outputs as required D. Kroening: Computer Architecture (TT 2012) 65

78 State localparam [2:0] OFF = b000, RED = b001, YELLOW= b010, 5 GREEN = b011; reg [2:0] state ; localparam defines module-local constants reg defines the state-holding variables state is usually split into multiple variables D. Kroening: Computer Architecture (TT 2012) 66

79 Next-State Logic clk) begin if ( rst ) state=init; // synchronous reset else case(state) 5 INIT: if (input1) state=q2; else state=q1; 10 Q1:... Q2: default: next state=init; endcase end D. Kroening: Computer Architecture (TT 2012) 67

80 Output Logic // note the dependency on the inputs! or rst or...) begin out1 = state [1] input1; out2 = state [1] & state [2]; 5 end May contain case(state) to implement a case-split D. Kroening: Computer Architecture (TT 2012) 68

81 File Operations Verilog has commands for reading files This is usually used to apply externally-generated test data E.g., read an assembler program into a CPU model Output can be saved in a file as well Checker does not have to be Verilog code (e.g., use Perl instead) D. Kroening: Computer Architecture (TT 2012) 69

82 Event-driven Simulation Goal: maximise simulation speed Exploit causal ordering of events Changing an input may result in a new output value Considers delays Event: signal and value and timestamp D. Kroening: Computer Architecture (TT 2012) 70

83 Event Queue events current t 1 time t 2 t 3 t 4 D. Kroening: Computer Architecture (TT 2012) 71

84 Single-pass Event Scheduler 1: for e = each event at current time do 2: UPDATE NODE(e); 3: 4: for j = each gate on the fanout list of e do 5: update input values of j; 6: EVALUATE(j); 7: if new value(j) last scheduled value(j) then 8: schedule new value(j) at (current time + delay(j)); 9: last scheduled value(j) := new value(j); 10: end if 11: end for 12: end for D. Kroening: Computer Architecture (TT 2012) 72

85 Example (1) x b a c z wire x, a, b, c, z; assign a =!x; assign b =!x; assign c =!b; 5 assign z = a c; D. Kroening: Computer Architecture (TT 2012) 73

86 Example (2) Suppose we just grab any event off the queue: time (x, a, b, c, z) event queue t (0,1,1,0,1) (x,1,t) external event for x D. Kroening: Computer Architecture (TT 2012) 74

87 Example (2) Suppose we just grab any event off the queue: time (x, a, b, c, z) event queue t (0,1,1,0,1) (x,1,t) external event for x t (1,1,1,0,1) (a,0,t)(b,0,t) yields two new events D. Kroening: Computer Architecture (TT 2012) 74

88 Example (2) Suppose we just grab any event off the queue: time (x, a, b, c, z) event queue t (0,1,1,0,1) (x,1,t) external event for x t (1,1,1,0,1) (a,0,t)(b,0,t) yields two new events t (1,1,0,0,1) (a,0,t)(c,1,t) pick b event t (1,1,0,1,1) (a,0,t) pick c event D. Kroening: Computer Architecture (TT 2012) 74

89 Example (2) Suppose we just grab any event off the queue: time (x, a, b, c, z) event queue t (0,1,1,0,1) (x,1,t) external event for x t (1,1,1,0,1) (a,0,t)(b,0,t) yields two new events t (1,1,0,0,1) (a,0,t)(c,1,t) pick b event t (1,1,0,1,1) (a,0,t) pick c event t (1,0,0,1,1) Finally do a event (note that the value of z never changes, and we thus don t have any event for it) D. Kroening: Computer Architecture (TT 2012) 74

90 Event Ordering Which event do we pick? The result will heavily depend on the ordering! Solution: introduce (artificial) delta delays along the cause-effect chain (this does not correspond to any notion of real time) Goal: standardise behaviour of simulators D. Kroening: Computer Architecture (TT 2012) 75

91 Using Delta Delays We always pick the event with the smallest delta delay: time (x, a, b, c, z) event queue t (0,1,1,0,1) (x,1,t) external event for x D. Kroening: Computer Architecture (TT 2012) 76

92 Using Delta Delays We always pick the event with the smallest delta delay: time (x, a, b, c, z) event queue t (0,1,1,0,1) (x,1,t) external event for x t (1,1,1,0,1) (a,0,t + δ)(b,0,t + δ) yields two events D. Kroening: Computer Architecture (TT 2012) 76

93 Using Delta Delays We always pick the event with the smallest delta delay: time (x, a, b, c, z) event queue t (0,1,1,0,1) (x,1,t) external event for x t (1,1,1,0,1) (a,0,t + δ)(b,0,t + δ) yields two events t + δ (1,0,1,0,1) (b,0,t + δ)(z,0,t + 2δ) t + δ (1,0,0,0,1) (z,0,t + 2δ)(c,1,t + 2δ) t + 2δ (1,0,0,0,0) (c,1,t + 2δ) t + 2δ (1,0,0,1,0) (z,1,t + 3δ) t + 3δ (1,0,0,1,1) Result: 0-impulse on output z D. Kroening: Computer Architecture (TT 2012) 76

94 Event Queue with Delta Delays current t 1 timeframe delta event t + δ 1 delta event t 1 + 2δ delta event t 1 + 3δ next timeframe t 2 D. Kroening: Computer Architecture (TT 2012) 77

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 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 information

Microcomputers. Outline. Number Systems and Digital Logic Review

Microcomputers. Outline. Number Systems and Digital Logic Review Microcomputers Number Systems and Digital Logic Review Lecture 1-1 Outline Number systems and formats Common number systems Base Conversion Integer representation Signed integer representation Binary coded

More information

Digital Design with SystemVerilog

Digital 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 information

Digital Design with FPGAs. By Neeraj Kulkarni

Digital 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 information

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture)

This 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 information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA 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 information

Lecture 32: SystemVerilog

Lecture 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 information

DIGITAL SYSTEM DESIGN

DIGITAL 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 information

CS429: Computer Organization and Architecture

CS429: Computer Organization and Architecture CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: January 2, 2018 at 11:23 CS429 Slideset 5: 1 Topics of this Slideset

More information

EECS 151/251A: SRPING 2017 MIDTERM 1

EECS 151/251A: SRPING 2017 MIDTERM 1 University of California College of Engineering Department of Electrical Engineering and Computer Sciences E. Alon Thursday, Mar 2 nd, 2017 7:00-8:30pm EECS 151/251A: SRPING 2017 MIDTERM 1 NAME Last First

More information

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification. 1-4.1 1-4.2 Spiral 1 / Unit 4 Verilog HDL Mark Redekopp OVERVIEW 1-4.3 1-4.4 Digital Circuit Design Steps Digital Circuit Design Description Design and computer-entry of circuit Verification Input Stimulus

More information

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

The 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 information

6. Latches and Memories

6. Latches and Memories 6 Latches and Memories This chapter . RS Latch The RS Latch, also called Set-Reset Flip Flop (SR FF), transforms a pulse into a continuous state. The RS latch can be made up of two interconnected

More information

A Brief Introduction to Verilog Hardware Definition Language (HDL)

A Brief Introduction to Verilog Hardware Definition Language (HDL) www.realdigital.org A Brief Introduction to Verilog Hardware Definition Language (HDL) Forward Verilog is a Hardware Description language (HDL) that is used to define the structure and/or behavior of digital

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences Introductory Digital Systems Lab (6.111) uiz - Spring 2004 Prof. Anantha Chandrakasan Student Name: Problem

More information

(ii) Simplify and implement the following SOP function using NOR gates:

(ii) Simplify and implement the following SOP function using NOR gates: DHANALAKSHMI COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EE6301 DIGITAL LOGIC CIRCUITS UNIT I NUMBER SYSTEMS AND DIGITAL LOGIC FAMILIES PART A 1. How can an OR gate be

More information

Mark Redekopp, All rights reserved. EE 352 Unit 8. HW Constructs

Mark Redekopp, All rights reserved. EE 352 Unit 8. HW Constructs EE 352 Unit 8 HW Constructs Logic Circuits Combinational logic Perform a specific function (mapping of 2 n input combinations to desired output combinations) No internal state or feedback Given a set of

More information

Synthesizable Verilog

Synthesizable 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 information

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1] FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language Reference: [] FIELD PROGRAMMABLE GATE ARRAY FPGA is a hardware logic device that is programmable Logic functions may be programmed

More information

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified.

In 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 information

Lab. Course Goals. Topics. What is VLSI design? What is an integrated circuit? VLSI Design Cycle. VLSI Design Automation

Lab. Course Goals. Topics. What is VLSI design? What is an integrated circuit? VLSI Design Cycle. VLSI Design Automation Course Goals Lab Understand key components in VLSI designs Become familiar with design tools (Cadence) Understand design flows Understand behavioral, structural, and physical specifications Be able to

More information

CSE 140L Final Exam. Prof. Tajana Simunic Rosing. Spring 2008

CSE 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

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. 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 information

Sequential Logic Design

Sequential 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 information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3 Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog

More information

ARM 64-bit Register File

ARM 64-bit Register File ARM 64-bit Register File Introduction: In this class we will develop and simulate a simple, pipelined ARM microprocessor. Labs #1 & #2 build some basic components of the processor, then labs #3 and #4

More information

Verilog 1 - Fundamentals

Verilog 1 - Fundamentals Verilog 1 - Fundamentals FA FA FA FA module adder( input [3:0] A, B, output cout, output [3:0] S ); wire c0, c1, c2; FA fa0( A[0], B[0], 1 b0, c0, S[0] ); FA fa1( A[1], B[1], c0, c1, S[1] ); FA fa2( A[2],

More information

Chapter 6. CMOS Functional Cells

Chapter 6. CMOS Functional Cells Chapter 6 CMOS Functional Cells In the previous chapter we discussed methods of designing layout of logic gates and building blocks like transmission gates, multiplexers and tri-state inverters. In this

More information

Federal Urdu University of Arts, Science and Technology, Islamabad VLSI SYSTEM DESIGN. Prepared By: Engr. Yousaf Hameed.

Federal 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 information

Verilog introduction. Embedded and Ambient Systems Lab

Verilog 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 information

Verilog Tutorial (Structure, Test)

Verilog Tutorial (Structure, Test) Digital Circuit Design and Language Verilog Tutorial (Structure, Test) Chang, Ik Joon Kyunghee University Hierarchical Design Top-down Design Methodology Bottom-up Design Methodology Module START Example)

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

ECE 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 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 information

EE178 Lecture Verilog FSM Examples. Eric Crabill SJSU / Xilinx Fall 2007

EE178 Lecture Verilog FSM Examples. Eric Crabill SJSU / Xilinx Fall 2007 EE178 Lecture Verilog FSM Examples Eric Crabill SJSU / Xilinx Fall 2007 In Real-time Object-oriented Modeling, Bran Selic and Garth Gullekson view a state machine as: A set of input events A set of output

More information

END-TERM EXAMINATION

END-TERM EXAMINATION (Please Write your Exam Roll No. immediately) END-TERM EXAMINATION DECEMBER 2006 Exam. Roll No... Exam Series code: 100919DEC06200963 Paper Code: MCA-103 Subject: Digital Electronics Time: 3 Hours Maximum

More information

N-input EX-NOR gate. N-output inverter. N-input NOR gate

N-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 information

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2 Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

Lecture 15: System Modeling and Verilog

Lecture 15: System Modeling and Verilog Lecture 15: System Modeling and Verilog Slides courtesy of Deming Chen Intro. VLSI System Design Outline Outline Modeling Digital Systems Introduction to Verilog HDL Use of Verilog HDL in Synthesis Reading

More information

VLSI Test Technology and Reliability (ET4076)

VLSI Test Technology and Reliability (ET4076) VLSI Test Technology and Reliability (ET4076) Lecture 4(part 2) Testability Measurements (Chapter 6) Said Hamdioui Computer Engineering Lab Delft University of Technology 2009-2010 1 Previous lecture What

More information

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

Speaker: 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 information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

Quick Introduction to SystemVerilog: Sequental Logic

Quick 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 information

Topics of this Slideset. CS429: Computer Organization and Architecture. Digital Signals. Truth Tables. Logic Design

Topics of this Slideset. CS429: Computer Organization and Architecture. Digital Signals. Truth Tables. Logic Design Topics of this Slideset CS429: Computer Organization and rchitecture Dr. Bill Young Department of Computer Science University of Texas at ustin Last updated: July 5, 2018 at 11:55 To execute a program

More information

Introduction to Verilog design. Design flow (from the book)

Introduction to Verilog design. Design flow (from the book) Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 1 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Verilog 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 information

ECEN 468 Advanced Logic Design

ECEN 468 Advanced Logic Design ECEN 468 Advanced Logic Design Lecture 28: Synthesis of Language Constructs Synthesis of Nets v An explicitly declared net may be eliminated in synthesis v Primary input and output (ports) are always retained

More information

3. The high voltage level of a digital signal in positive logic is : a) 1 b) 0 c) either 1 or 0

3. The high voltage level of a digital signal in positive logic is : a) 1 b) 0 c) either 1 or 0 1. The number of level in a digital signal is: a) one b) two c) four d) ten 2. A pure sine wave is : a) a digital signal b) analog signal c) can be digital or analog signal d) neither digital nor analog

More information

ECE 4514 Digital Design II. Spring Lecture 2: Hierarchical Design

ECE 4514 Digital Design II. Spring Lecture 2: Hierarchical Design ECE 4514 Digital Design II Spring 2007 Abstraction in Hardware Design Remember from last lecture that HDLs offer a textual description of a netlist. Through abstraction in the HDL, we can capture more

More information

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx

CSE140L: Components and Design Techniques for Digital Systems Lab. Verilog HDL. Instructor: Mohsen Imani UC San Diego. Source: Eric Crabill, Xilinx CSE140L: Components and Design Techniques for Digital Systems Lab Verilog HDL Instructor: Mohsen Imani UC San Diego Source: Eric Crabill, Xilinx 1 Hardware description languages Used to describe & model

More information

3. Implementing Logic in CMOS

3. Implementing Logic in CMOS 3. Implementing Logic in CMOS 3. Implementing Logic in CMOS Jacob Abraham Department of Electrical and Computer Engineering The University of Texas at Austin VLSI Design Fall 27 September, 27 ECE Department,

More information

VLSI DESIGN (ELECTIVE-I) Question Bank Unit I

VLSI DESIGN (ELECTIVE-I) Question Bank Unit I VLSI DESIGN (ELECTIVE-I) Question Bank Unit I B.E (E&C) NOV-DEC 2008 1) If A & B are two unsigned variables, with A = 1100 and B = 1001, find the values of following expressions. i. (A and B) ii. (A ^

More information

Why Should I Learn This Language? VLSI HDL. Verilog-2

Why 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 information

CSE 140L Final Exam. Prof. Tajana Simunic Rosing. Spring 2008

CSE 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 information

Modeling Sequential Circuits in Verilog

Modeling 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 information

problem maximum score 1 8pts 2 6pts 3 10pts 4 15pts 5 12pts 6 10pts 7 24pts 8 16pts 9 19pts Total 120pts

problem 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 information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

Digital Design (VIMIAA01) Introduction to the Verilog HDL

Digital 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 information

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date: Design of Datapath Controllers and Sequential Logic Lecturer: Date: 2009.03.18 ACCESS IC LAB Sequential Circuit Model & Timing Parameters ACCESS IC LAB Combinational Logic Review Combinational logic circuits

More information

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now? Outline EECS 5 - Components and Design Techniques for Digital Systems Lec Putting it all together -5-4 David Culler Electrical Engineering and Computer Sciences University of California Berkeley Top-to-bottom

More information

LECTURE 4. Logic Design

LECTURE 4. Logic Design LECTURE 4 Logic Design LOGIC DESIGN The language of the machine is binary that is, sequences of 1 s and 0 s. But why? At the hardware level, computers are streams of signals. These signals only have two

More information

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation A Verilog Primer An Overview of Verilog for Digital Design and Simulation John Wright Vighnesh Iyer Department of Electrical Engineering and Computer Sciences College of Engineering, University of California,

More information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis of Combinational and Sequential Circuits with Verilog Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two

More information

Chapter 10. case studies in sequential logic design

Chapter 10. case studies in sequential logic design Chapter. case studies in sequential logic design This is the last chapter of this course. So far, we have designed several sequential systems. What is the general procedure? The most difficult part would

More information

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog Verilog Radek Pelánek and Šimon Řeřucha Contents 1 Computer Aided Design 2 Basic Syntax 3 Gate Level Modeling 4 Behavioral Modeling Computer Aided Design Hardware Description Languages (HDL) Verilog C

More information

Verilog 1 - Fundamentals

Verilog 1 - Fundamentals Verilog 1 - Fundamentals FA FA FA FA module adder( input [3:0] A, B, output cout, output [3:0] S ); wire c0, c1, c2; FA fa0( A[0], B[0], 1 b0, c0, S[0] ); FA fa1( A[1], B[1], c0, c1, S[1] ); FA fa2( A[2],

More information

Verilog for Synthesis Ing. Pullini Antonio

Verilog 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 information

Systems Programming. Lecture 2 Review of Computer Architecture I

Systems Programming.   Lecture 2 Review of Computer Architecture I Systems Programming www.atomicrhubarb.com/systems Lecture 2 Review of Computer Architecture I In The Book Patt & Patel Chapter 1,2,3 (review) Outline Binary Bit Numbering Logical operations 2's complement

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Acknowledgements: Nathan Ickes and Rex Min Key Points from L4 (Sequential Blocks) Classification: Latch: level sensitive (positive latch passes input to output

More information

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 1.1.2: Introduction (Digital VLSI Systems) Liang Liu liang.liu@eit.lth.se 1 Outline Why Digital? History & Roadmap Device Technology & Platforms System

More information

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013

EPC6055 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 information

Introduction to Verilog. Garrison W. Greenwood, Ph.D, P.E.

Introduction to Verilog. Garrison W. Greenwood, Ph.D, P.E. Introduction to Verilog Garrison W. Greenwood, Ph.D, P.E. November 11, 2002 1 Digital Design Flow Specification Functional Design Register Transfer Level Design Circuit Design Physical Layout Production

More information

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur-603 203 DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS YEAR / SEMESTER: II / III ACADEMIC YEAR: 2015-2016 (ODD

More information

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering Final Eamination ECE 4F - Digital Systems Eaminers: S. Brown, J.

More information

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

Introduction to ICs and Transistor Fundamentals

Introduction to ICs and Transistor Fundamentals Introduction to ICs and Transistor Fundamentals A Brief History 1958: First integrated circuit Flip-flop using two transistors Built by Jack Kilby at Texas Instruments 2003 Intel Pentium 4 mprocessor (55

More information

Chapter 5 Registers & Counters

Chapter 5 Registers & Counters University of Wisconsin - Madison ECE/Comp Sci 352 Digital Systems Fundamentals Kewal K. Saluja and Yu Hen Hu Spring 2002 Chapter 5 Registers & Counters Originals by: Charles R. Kime Modified for course

More information

ECE 331: N0. Professor Andrew Mason Michigan State University. Opening Remarks

ECE 331: N0. Professor Andrew Mason Michigan State University. Opening Remarks ECE 331: N0 ECE230 Review Professor Andrew Mason Michigan State University Spring 2013 1.1 Announcements Opening Remarks HW1 due next Mon Labs begin in week 4 No class next-next Mon MLK Day ECE230 Review

More information

Online Verilog Resources

Online Verilog Resources EECS 427 Discussion 6: Verilog HDL Reading: Many references EECS 427 F08 Discussion 6 1 Online Verilog Resources ASICs the book, Ch. 11: http://www.ge.infn.it/~pratolo/verilog/verilogtutorial.pdf it/ pratolo/verilog/verilogtutorial

More information

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it. MODELING LANGUAGES AND ABSTRACT MODELS Giovanni De Micheli Stanford University Chapter 3 in book, please read it. Outline Hardware modeling issues: Representations and models. Issues in hardware languages.

More information

Topics. Midterm Finish Chapter 7

Topics. 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 information

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function. 1.b. Show that a 2-to-1 MUX is universal (i.e. that any Boolean expression can be implemented with

More information

Digital Integrated Circuits

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 information

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign

a, 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 information

ELCT 501: Digital System Design

ELCT 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 information

CS 261 Fall Mike Lam, Professor. Combinational Circuits

CS 261 Fall Mike Lam, Professor. Combinational Circuits CS 261 Fall 2017 Mike Lam, Professor Combinational Circuits The final frontier Java programs running on Java VM C programs compiled on Linux Assembly / machine code on CPU + memory??? Switches and electric

More information

Writing Circuit Descriptions 8

Writing 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 information

register:a group of binary cells suitable for holding binary information flip-flops + gates

register:a group of binary cells suitable for holding binary information flip-flops + gates 9 차시 1 Ch. 6 Registers and Counters 6.1 Registers register:a group of binary cells suitable for holding binary information flip-flops + gates control when and how new information is transferred into the

More information

Digital Integrated Circuits A Design Perspective. Jan M. Rabaey

Digital Integrated Circuits A Design Perspective. Jan M. Rabaey Digital Integrated Circuits A Design Perspective Jan M. Rabaey Outline (approximate) Introduction and Motivation The VLSI Design Process Details of the MOS Transistor Device Fabrication Design Rules CMOS

More information

Micro transductors 08

Micro transductors 08 Micro transductors 8 CMOS Basics Dr.-Ing. Frank Sill Department of Electrical Engineering, Federal University of Minas Gerais, Av. Antônio Carlos 6627, CEP: 327-, Belo Horizonte (MG), Brazil franksill@ufmg.br

More information

Topics. Midterm Finish Chapter 7

Topics. 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 information

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8

CSCB58 - 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 information

Sequential Circuit Design: Principle

Sequential Circuit Design: Principle Sequential Circuit Design: Principle Chapter 8 1 Outline 1. Overview on sequential circuits 2. Synchronous circuits 3. Danger of synthesizing asynchronous circuit 4. Inference of basic memory elements

More information

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016 CS 31: Intro to Systems Digital Logic Kevin Webb Swarthmore College February 2, 2016 Reading Quiz Today Hardware basics Machine memory models Digital signals Logic gates Circuits: Borrow some paper if

More information

CS6710 Tool Suite. Verilog is the Key Tool

CS6710 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 information

Advanced Digital Design Using FPGA. Dr. Shahrokh Abadi

Advanced Digital Design Using FPGA. Dr. Shahrokh Abadi Advanced Digital Design Using FPGA Dr. Shahrokh Abadi 1 Venue Computer Lab: Tuesdays 10 12 am (Fixed) Computer Lab: Wednesday 10-12 am (Every other odd weeks) Note: Due to some unpredicted problems with

More information

OUTLINE Introduction Power Components Dynamic Power Optimization Conclusions

OUTLINE Introduction Power Components Dynamic Power Optimization Conclusions OUTLINE Introduction Power Components Dynamic Power Optimization Conclusions 04/15/14 1 Introduction: Low Power Technology Process Hardware Architecture Software Multi VTH Low-power circuits Parallelism

More information

- 1 of 18 - The Verilog Hardware Description Language - A Behavioural View Overview. The Behavioural Model

- 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 information

PAGE NO: EXP NO: 1A SIMULATION OF HALF ADDER AND FULL ADDER. DATE: AIM: To design, simulate and synthesize the Half adder and Full adder. TOOLS REQUIRED: SOFTWARE: XILINX ISE 9.1i ALGORITHM: 1. Start the

More information

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 Recall What You Will Do Design and implement a serial MIDI receiver Hardware in

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information