Signed integers: 2 s complement. Adder: a circuit that does addition. Sign extension 42 = = Arithmetic Circuits & Multipliers

Size: px
Start display at page:

Download "Signed integers: 2 s complement. Adder: a circuit that does addition. Sign extension 42 = = Arithmetic Circuits & Multipliers"

Transcription

1 Signed integers: 2 s complement N bits -2 N- 2 N Arithmetic Circuits & Multipliers Addition, subtraction Performance issues -- ripple carry -- carry bypass -- carry skip -- carry lookahead Multipliers Reminder: Lab #3 due tonight! sign bit Range: 2 N- to 2 N- 8-bit 2 s complement example: decimal point = = = 42 If we use a two s complement representation for signed integers, the same binary addition mod 2 n procedure will work for adding positive and negative numbers (don t need separate subtraction rules). The same procedure will also handle unsigned numbers! By moving the implicit location of decimal point, we can represent fractions too:. = = = Sign extension Consider the 8-bit 2 s complement representation of: 42 = -5 = ~ + = + = What is their 6-bit 2 s complement representation? 42 = -5 = Extend the MSB (aka the sign bit ) into the higher-order bit positions Adder: a circuit that does addition Here s an example of binary addition as one might do it by hand : Adding two N-bit numbers produces an (N+)-bit result + Carries from previous column If we build a circuit that implements one column: we can quickly build a circuit to add two 4-bit numbers Ripplecarry adder 3 4

2 Full Adder building block Subtraction: A-B = A + (-B) The half adder circuit has only the A and B inputs S A B C A B C S CO CO ABC ABC ABC ABC (A A)BC (B B)AC AB(C C) BC AC AB 5 Using 2 s complement representation: B = ~B + ~ = bit-wise complement So let s build an arithmetic unit that does both addition and subtraction. Operation selected by control input: But what about the +? 6 Condition Codes Condition Codes in Verilog Besides the sum, one often wants four other bits of information from an arithmetic unit: To compare A and B, perform A B and use Z (zero): result is = big NOR gate condition codes: N (negative): result is < S N- C (carry): indicates an add in the most significant position produced a carry, e.g., + from last V (overflow): indicates that the answer has too many bits to be represented correctly by the result width, e.g., + V A B S A B S N N N N N N V COUT CIN N N Signed comparison: LT N V LE Z+(N V) EQ Z NE ~Z GE ~(N V) GT ~(Z+(N V)) Unsigned comparison: LTU C LEU C+Z GEU ~C GTU ~(C+Z) Z (zero): result is = N (negative): result is < C (carry): indicates an add in the most significant position produced a carry, e.g., + V (overflow): indicates that the answer has too many bits to be represented correctly by the result width, e.g., + wire signed [3:] a,b,s; wire z,n,v,c; assign {c,s} = a + b; assign z = ~ s; assign n = s[3]; assign v = a[3]^b[3]^s[3]^c; Might be better to use sum-ofproducts formula for V from previous slide if using LUT implementation (only 3 variables instead of 4). 7 8

3 Modular Arithmetic The Verilog arithmetic operators (+,-,*) all produce full-precision results, e.g., adding two 8-bit numbers produces a 9-bit result. Speed: t PD of Ripple-carry Adder C O = AB + AC I + BC I In many designs one chooses a word size (many computers use 32 or 64 bits) and all arithmetic results are truncated to that number of bits, i.e., arithmetic is performed modulo 2 word size. Using a fixed word size can lead to overflow, e.g., when the operation produces a result that s too large to fit in the word size. One can Avoid overflow: choose a sufficiently large word size Detect overflow: have the hardware remember if an operation produced an overflow trap or check status at end Embrace overflow: sometimes this is exactly what you want, e.g., when doing index arithmetic for circular buffers of size 2 N. Correct overflow: replace result with most positive or most negative number as appropriate, aka saturating arithmetic. Good for digital signal processing. Worst-case path: carry propagation from LSB to MSB, e.g., when adding to. t PD = (N-)*(t PD,OR + t PD,AND ) + t PD,XOR (N) CI to CO CI N- to S N- (N) is read order N : means that the latency of our adder grows at worst in proportion to the number of bits in the operands. 9 How about the t PD of this circuit? Alternate Adder Logic Formulation How to Speed up the Critical (Carry) Path? (How to Build a Fast Adder?) A B Cn- Cn-2 C2 C C C in Full Adder C o Is the t PD of this circuit = 2 * t PD,N-BIT RIPPLE? S Generate (G) = AB Propagate (P) = A B Nope! t PD of this circuit = t PD,N-BIT RIPPLE + t PD,!!! Timing analysis is tricky! Note: can also use P = A + B for C o

4 Faster carry logic Let s see if we can improve the speed by rewriting the equations for C OUT : Virtex II Adder Implementation LUT: A B Cout A B C OUT = AB + AC IN + BC IN C OUT S C IN = AB + (A + B)C IN where G = AB = G + P C IN P = A + B generate propagate A B G P Y = A B Cin module fa(input a,b,cin, output s,cout); wire g = a & b; wire p = a ^ b; assign s = p ^ cin; assign cout = g (p & cin); endmodule Actually, P is usually defined as P = A^B which won t change C OUT but will allow us to express S as a simple function : S = P^C IN Cin Dedicated adder logic half-slice = -bit adder 3 4 Virtex II Carry Chain Carry Bypass Adder CLB = 4 Slices = 2, 4-bit adders 64-bit Adder: 6 CLBs A[63:] B[63:] + Y[63:] C i, A B A B A 2 B 2 A 3 B 3 P G P G P 2 G 2 P 3 G 3 C/S C o, C/S C o, C/S C o,2 C/S C o,3 Can compute P, G in parallel for all bits A[63:6] B[63:6] A[7:4] B[7:4] CLB5 CLB Y[64] Y[63:6] Y[7:4] P G C i, C/S C/S Co, P G P 2 G 2 P 3 G 3 C o, C/S C o,2 C/S BP= P P P 2 P 3 C o,3 A[3:] B[3:] CLB Y[3:] CLBs must be in same column 5 Key Idea: if (P P P 2 P 3 ) then C o,3 = C i, 6

5 This image cannot currently be This displayed. image cannot currentl y be This image cannot currently be displayed This image cannot image currently cannot be displayed. currentl y be 6-bit Carry Bypass Adder Critical Path Analysis BP= P P P 2 P 3 BP= P 4 P 5 P 6 P 7 BP= P 8 P 9 P P BP= P 2 P 3 P 4 P 5 BP= P P P 2 P 3 BP2= P 4 P 5 P 6 P 7 BP3= P 8 P 9 P P BP4= P 2 P 3 P 4 P 5 C i, C/S C/S C/S C/S C/S C/S C/S C/S C o, C o, C o,2 C o,4 C o,3 C o,5 C o,6 C o,7 C o, C/S C/S C/S C/S C/S C/S C/S C/S C o,8 C o,9 C o, C o,2 C o,3 C o,4 C i, C/S C/S C/S C/S C/S C/S C/S C/S C o, C o, C o,2 C o,4 C o,3 C o,5 C o,6 C o,7 C o, C/S C/S C/S C/S C/S C/S C/S C/S C o,8 C o,9 C o, C o,2 C o,3 C o,4 C o,5 C o,5 What is the worst case propagation delay for the 6-bit adder? Assume the following for delay each gate: P, G from A, B: delay unit P, G, C i to C o or Sum for a C/S: delay unit 2: mux delay: delay unit For the second stage, is the critical path: BP2 = or BP2 =? Message: Timing analysis is very tricky Must carefully consider data dependencies for false paths 7 8 Carry Bypass vs Ripple Carry Carry Lookahead Adder (CLA) Ripple Carry: t adder = (N-) t carry + t sum Carry Bypass: t adder = 2(M-) t carry + t sum + (N/M-) t bypass Recall that C OUT = G + P C IN where G = A&B and P = A^B For adding two N-bit numbers: t adder ripple adder M = bypass word size N = number of bits being added C N = G N- + P N- C N- = G N- + P N- G N-2 + P N- P N-2 C N-2 = G N- + P N- G N-2 + P N- P N-2 G N P N-...P C IN bypass adder C N in only 3 gate delays* : for P/G generation, for ANDs, for final OR *assuming gates with N inputs 4..8 N Idea: pre-compute all carry bits as f(gs,ps,c IN ) 9 2

6 Carry Lookahead Circuits The 7482 Carry Lookahead Unit 2 22 Block Generate and Propagate G and P can be computed for groups of bits (instead of just for individual bits). This allows us to choose the maximum fan-in we want for our logic gates and then build a hierarchical carry chain using these equations: C J+ = G IJ + P IJ C I G IK = G J+,K + P J+,K G IJ P IK = P IJ P J+,K where I < J and J+ < K generate a carry from bits I thru K if it is generated in the high-order (J+,K) part of the block or if it is generated in the low-order (I,J) part of the block and then propagated thru the high part Log 2 (N) 8-bit CLA (P/G generation) P/G generation st level of lookahead Hierarchical building block 23 From Hennessy & Patterson, Appendix A 24

7 8-bit CLA (carry generation) 8-bit CLA (complete) Log 2 (N) t PD = Θ(log(N)) Unsigned Multiplication Combinational Multiplier (unsigned) AB i called a partial product x A 2 B 2 A B A A 3 B B 3 A 3 B A 2 B A B A 2 B A B A B AB X3 X2 X X * Y3 Y2 Y Y X3Y X2Y XY XY + X3Y X2Y XY XY + X3Y2 X2Y2 XY2 XY2 + X3Y3 X2Y3 XY3 XY Z7 Z6 Z5 Z4 Z3 Z2 Z Z multiplicand multiplier Partial products, one for each bit in multiplier (each bit needs just one AND gate) x x x x y z y + A 3 B A B 2 A 3 B 2 A 2 B 2 A B 2 A 3 B 3 A 2 B 3 A B 3 A B 3 Propagation delay ~2N x x y2 z Multiplying N-bit number by M-bit number gives (N+M)-bit result Easy part: forming partial products (just an AND gate since B I is either or ) Hard part: adding M N-bit partial products z7 z6 z5 x z4 x z3 y3 z

8 Combinational Multiplier (signed!) X3 X2 X X * Y3 Y2 Y Y X3Y X3Y X3Y X3Y X3Y X2Y XY XY + X3Y X3Y X3Y X3Y X2Y XY XY + X3Y2 X3Y2 X3Y2 X2Y2 XY2 XY2 - X3Y3 X3Y3 X2Y3 XY3 XY Z7 Z6 Z5 Z4 Z3 Z2 Z Z x x x x y z y 2 s Complement Multiplication Step : two s complement operands so high order bit is 2 N-. Must sign extend partial products and subtract the last one X3 X2 X X * Y3 Y2 Y Y X3Y X3Y X3Y X3Y X3Y X2Y XY XY + X3Y X3Y X3Y X3Y X2Y XY XY + X3Y2 X3Y2 X3Y2 X2Y2 XY2 XY2 - X3Y3 X3Y3 X2Y3 XY3 XY Z7 Z6 Z5 Z4 Z3 Z2 Z Z (Baugh-Wooley) Step 3: add the ones to the partial products and propagate the carries. All the sign extension bits go away! X3Y X2Y XY XY + X3Y X2Y XY XY + X2Y2 XY2 XY2 XY2 + X3Y3 X2Y3 XY3 XY3 + - z7 z6 z5 x z4 x x z3 y3 x z2 y2 z NB: There are tricks we can use to eliminate the extra circuitry we added 29 Step 2: don t want all those extra additions, so add a carefully chosen constant, remembering to subtract it at the end. Convert subtraction into add of (complement + ). X3Y X3Y X3Y X3Y X3Y X2Y XY XY + + X3Y X3Y X3Y X3Y X2Y XY XY + + X3Y2 X3Y2 X3Y2 X2Y2 XY2 XY2 + + X3Y3 X3Y3 X2Y3 XY3 XY3 B = ~B Step 4: finish computing the constants X3Y X2Y XY XY + X3Y X2Y XY XY + X2Y2 XY2 XY2 XY2 + X3Y3 X2Y3 XY3 XY3 + Result: multiplying 2 s complement operands takes just about same amount of hardware as multiplying unsigned operands! 3 Baugh Wooley Formulation The Math no insight required Assuming X and Y are 4-bit twos complement numbers: X = -2 3 x 3 + Σ x i 2 i Y = -2 3 y 3 + Σ y i 2 i i= i= The product of X and Y is: XY = x 3 y Σ x i y 3 2 i Σ x 3 y j 2 j Σ Σ x i y j 2 i+j i= j= i= j= For twos complement, the following is true: 3 -Σ x i 2 i = Σ x i 2 i + i= i= 2 2 The product then becomes: XY = x 3 y Σ x i y 3 2 i Σ x 3 y j 2 j ΣΣx i y j 2 i+j i= j= i= j= = x 3 y Σ x i y 3 2 i+3 + Σ x 3 y j 2 j+3 + Σ Σx i y j 2 i+j i= j= i= j= = x 3 y (x 2 y 3 + x 3 y 2 )2 5 + (x y 3 + x 3 y + x 2 y 2 +)2 4 + (x y 3 + x 3 y + x y 2 + x 2 y )2 3 + (x y 2 + x y + x 2 y )2 2 + (x y + x y )2 +(x y )2 2 s Complement Multiplication X3Y X2Y XY XY + X3Y X2Y XY XY + X2Y2 XY2 XY2 XY2 + X3Y3 X2Y3 XY3 XY3 + z 7 x 3 z 6 x 3 z 5 x 2 x 3 x 2 x z 4 x 3 x 2 x x 32 x 2 x x z 3 y 3 x x z 2 y 2 x z y z y

9 Multiplication in Verilog You can use the * operator to multiply two numbers: Multiplication on the FPGA Hardware multiplier block: two 8-bit twos complement (signed) operands wire [9:] a,b; wire [9:] result = a*b; // unsigned multiplication! If you want Verilog to treat your operands as signed two s complement numbers, add the keyword signed to your wire or reg declaration: wire signed [9:] a,b; wire signed [9:] result = a*b; // signed multiplication! t PD ns In the XC2V6: 6 columns of mults, 24 in each column = 44 mults Remember: unlike addition and subtraction, you need different circuitry if your multiplication operands are signed vs. unsigned. Same is true of the >>> (arithmetic right shift) operator. To get signed operations all operands must be signed. To make a signed constant: sh37c Sequential Multiplier Bit-Serial Multiplication S N Assume the multiplicand (A) has N bits and the multiplier (B) has M bits. If we only want to invest in a single N-bit adder, we can build a sequential circuit that processes a single partial product at a time and then cycle the circuit M times: P S N- S N B M bits + LSB N+ NC xn A N Init: P, load A and B Repeat M times { P P + (B LSB ==? A : ) shift P/B right one bit } Done: (N+M)-bit result in P/B C P B A Init: P = ; Load A,B Repeat M times { Repeat N times { shift A,P: Amsb = Alsb Pmsb = Plsb + Alsb*Blsb + C/ } shift P,B: Pmsb = C, Bmsb = Plsb } (N+M)-bit result in P/B 35 36

10 Combinational Multiplier (unsigned) Useful building block: Carry-Save Adder X3 X2 X X * Y3 Y2 Y Y X3Y X2Y XY XY + X3Y X2Y XY XY + X3Y2 X2Y2 XY2 XY2 + X3Y3 X2Y3 XY3 XY Z7 Z6 Z5 Z4 Z3 Z2 Z Z multiplicand multiplier Partial products, one for each bit in multiplier (each bit needs just one AND gate) x x x x y z y Good for pipelining: delay through each partial product (except the last) is just t PD,AND + t PD,. No carry propagation time! Propagation delay ~2N x x y2 z x x y3 z2 z7 z6 z5 37 z4 z3 Last stage is still a carry-propagate adder (CPA) 38 This is called a 3:2 counter by multiplier hackers: counts number of s on the 3 inputs, outputs 2- bit result. Wallace Tree Multiplier... Wallace Tree * Four Bit Multiplier Wallace Tree: Combine groups of three bits at a time O(log.5 M) Higher fan-in adders can be used to further reduce delays for large M. CPA 4:2 compressors and 5:3 counters are popular building blocks. 39 *Digital Integrated Circuits J Rabaey, A Chandrakasan, B Nikolic 4

11 Multiplication by a constant If one of the operands is a constant, make it the multiplier (B in the earlier examples). For each bit in the constant we get a partial product (PP) may be noticeably fewer PPs than in the general case. For example, in general multiplying two 4-bit operands generates four PPs (3 rows of full adders). If the multiplier is say, 2 (4 b), then there are only two PPs: 8*A+4*A (only row of full adders). But lots of s means lots of PPs can we improve on this? If we allow ourselves to subtract PPs as well as adding them (the hardware cost is virtually the same), we can re-encode arbitrarily long contiguous runs of bits in the multiplier to produce just two PPs. Booth Recoding: Higher-radix mult. Idea: If we could use, say, 2 bits of the multiplier in generating each partial product we would halve the number of columns and halve the latency of the multiplier! M/2 x A N- A N-2 A 4 A 3 A 2 A A B M- B M-2 B 3 B 2 B B... 2 = - = where indicates subtracting a PP instead of adding it. Thus we ve reencoded the multiplier using,,- digits aka canonical signed digit greatly reducing the number of additions required. 4 Booth s insight: rewrite 2*A and 3*A cases, leave 4A for next partial B K+,K *A = *A = *A A = 2*A 4A 2A = 3*A 4A A product to do! 42 Booth recoding On-the-fly canonical signed digit encoding! current bit pair from previous bit pair B K+ B K B K- action add add A add A add 2*A sub 2*A sub A sub A add A in this bit means the previous stage needed to add 4*A. Since this stage is shifted by 2 bits with respect to the previous stage, adding 4*A in the previous stage is like adding A in this stage! -2*A+A -A+A 43 Summary Performance of arithmetic blocks dictate the performance of a digital system Architectural and logic transformations can enable significant speed up (e.g., adder delay from O(N) to O(log 2 (N)) Similar concepts and formulation can be applied at the system level Timing analysis is tricky: watch out for false paths! Area-Delay trade-offs (serial vs. parallel implementations) 44

12 Lab 4 Car Alarm - Design Approach Read lab/specifications carefully, use reasonable interpretation Use modular design don t put everything into labkit.v Design the FSM! Define the inputs Define the outputs Transition rules Logical modules: fsm.v timer.v // the hardest module!! siren.v fuel_pump.v Run simulation on each module! Use hex display: show state and time Use logic analyzer in Vivado Car Alarm Inputs & Outputs Inputs: passenger door switch driver door switch ignition switch hidden switch brake pedal switch Outputs: fuel pump power status indicator siren Figure : System diagram showing sensors (inputs) and actuators (outputs) 6. Fall 23 Lecture Car Alarm CMOS Implementation Debugging Hints Lab 4 Cloaking device Fuel pump relay Design Specs Operating voltage 8-8VDC Operating temp: -4C +65C Attitude: sea level Shock/Vibration Implement a warp speed debug mode for the one hz clock. This will allow for viewing signals on the logic analyzer or Modelsim without waiting for 27/25 million clock cycles. Avoids recomplilations. Notes Protected against 24V power surges CMOS implementation CMOS inputs protected against 2V noise spikes On state DC current <ma Include T_PASSENGER_DELAY and Fuel Pump Disable System disabled (cloaked) when being serviced. assign warp_speed = sw[6]; (posedge clk) begin if (count == (warp_speed? 3 : 26_999_999)) count <= ; else count <= count +; end assign one_hz = (count == (warp_speed? 3 : 26_999_999)) ; Fall 23 Lecture 8 48

13 always #5 clk=!clk; always begin #5 tick = ; # tick = ; #5; end initial begin // Initialize Inputs clk = ; tick = ;... One Hz Ticks in Modelsim To create a one hz tick, use the following in the Verilog test fixture: For Loops, Repeat Loops in Simulation integer i; // index must be declared as integer integer irepeat; // this will just wait ns, repeated 32x. // simulation only! Cannot implement # in hardware! irepeat =; repeat(32) begin #; irepeat = irepeat + ; end // this will wait #ns before incrementing the for loop for (i=; i<6; i=i+) begin #; // wait # before increment. clk); // add to index on posedge end // other loops: forever, while 6. Fall 23 Lecture Fall 23 Lecture 8 5 Edge Detection Student Comments All very reasonable except for lab 4, Car Alarm. Total pain in the ass. The labs were incredibly useful, interesting, and helpful for learning. Lab 4 (car alarm) is long and difficult, but overall the labs are not unreasonable. reg signal_delayed; clk) signal_delayed <= signal; assign rising_edge = signal &&!signal_delayed; assign falling_edge =!signal && signal_delayed; 6. Fall 23 Lecture

Arithmetic Circuits & Multipliers

Arithmetic Circuits & Multipliers Arithmetic Circuits & Multipliers Addition, subtraction Performance issues -- ripple carry -- carry bypass -- carry skip -- carry lookahead Multipliers Reminder: Lab #3 due tonight! Pizza Wed 6p 1 Signed

More information

Pipelining & Verilog. Sequential Divider. Verilog divider.v. Math Functions in Coregen. Lab #3 due tonight, LPSet 8 Thurs 10/11

Pipelining & Verilog. Sequential Divider. Verilog divider.v. Math Functions in Coregen. Lab #3 due tonight, LPSet 8 Thurs 10/11 Lab #3 due tonight, LPSet 8 Thurs 0/ Pipelining & Verilog Latency & Throughput Pipelining to increase throughput Retiming Verilog Math Functions Debugging Hints Sequential Divider Assume the Divid (A)

More information

Binary Arithmetic. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T.

Binary Arithmetic. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. Binary Arithmetic Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. MIT 6.004 Fall 2018 Reminder: Encoding Positive Integers Bit i in a binary representation (in right-to-left order)

More information

Binary Multiplication

Binary Multiplication inary Multiplication The key to multiplication was memorizing a digit-by-digit table Everything else was just adding 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 2 4 6 8 2 4 6 8 3 3 6 9 2 5 8 2 24 27 + You ve got

More information

Lecture 5. Other Adder Issues

Lecture 5. Other Adder Issues Lecture 5 Other Adder Issues Mark Horowitz Computer Systems Laboratory Stanford University horowitz@stanford.edu Copyright 24 by Mark Horowitz with information from Brucek Khailany 1 Overview Reading There

More information

Boolean Unit (The obvious way)

Boolean Unit (The obvious way) oolean Unit (The obvious way) It is simple to build up a oolean unit using primitive gates and a mux to select the function. Since there is no interconnection between bits, this unit can be simply replicated

More information

Partial product generation. Multiplication. TSTE18 Digital Arithmetic. Seminar 4. Multiplication. yj2 j = xi2 i M

Partial product generation. Multiplication. TSTE18 Digital Arithmetic. Seminar 4. Multiplication. yj2 j = xi2 i M TSTE8 igital Arithmetic Seminar 4 Oscar Gustafsson Multiplication Multiplication can typically be separated into three sub-problems Generating partial products Adding the partial products using a redundant

More information

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010 Digital Logic & Computer Design CS 434 Professor Dan Moldovan Spring 2 Copyright 27 Elsevier 5- Chapter 5 :: Digital Building Blocks Digital Design and Computer Architecture David Money Harris and Sarah

More information

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1> Chapter 5 Digital Design and Computer Architecture, 2 nd Edition David Money Harris and Sarah L. Harris Chapter 5 Chapter 5 :: Topics Introduction Arithmetic Circuits umber Systems Sequential Building

More information

CPE300: Digital System Architecture and Design

CPE300: Digital System Architecture and Design CPE300: Digital System Architecture and Design Fall 2011 MW 17:30-18:45 CBC C316 Arithmetic Unit 10122011 http://www.egr.unlv.edu/~b1morris/cpe300/ 2 Outline Recap Fixed Point Arithmetic Addition/Subtraction

More information

ECE 341 Midterm Exam

ECE 341 Midterm Exam ECE 341 Midterm Exam Time allowed: 90 minutes Total Points: 75 Points Scored: Name: Problem No. 1 (10 points) For each of the following statements, indicate whether the statement is TRUE or FALSE: (a)

More information

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University Digital Circuit Design and Language Datapath Design Chang, Ik Joon Kyunghee University Typical Synchronous Design + Control Section : Finite State Machine + Data Section: Adder, Multiplier, Shift Register

More information

Arithmetic Logic Unit. Digital Computer Design

Arithmetic Logic Unit. Digital Computer Design Arithmetic Logic Unit Digital Computer Design Arithmetic Circuits Arithmetic circuits are the central building blocks of computers. Computers and digital logic perform many arithmetic functions: addition,

More information

6.004 Computation Structures Spring 2009

6.004 Computation Structures Spring 2009 MIT OpenCourseWare http://ocw.mit.edu 6.004 Computation Structures Spring 009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. M A S S A C H U S E T T

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

At the ith stage: Input: ci is the carry-in Output: si is the sum ci+1 carry-out to (i+1)st state

At the ith stage: Input: ci is the carry-in Output: si is the sum ci+1 carry-out to (i+1)st state Chapter 4 xi yi Carry in ci Sum s i Carry out c i+ At the ith stage: Input: ci is the carry-in Output: si is the sum ci+ carry-out to (i+)st state si = xi yi ci + xi yi ci + xi yi ci + xi yi ci = x i yi

More information

Area Efficient, Low Power Array Multiplier for Signed and Unsigned Number. Chapter 3

Area Efficient, Low Power Array Multiplier for Signed and Unsigned Number. Chapter 3 Area Efficient, Low Power Array Multiplier for Signed and Unsigned Number Chapter 3 Area Efficient, Low Power Array Multiplier for Signed and Unsigned Number Chapter 3 3.1 Introduction The various sections

More information

By, Ajinkya Karande Adarsh Yoga

By, Ajinkya Karande Adarsh Yoga By, Ajinkya Karande Adarsh Yoga Introduction Early computer designers believed saving computer time and memory were more important than programmer time. Bug in the divide algorithm used in Intel chips.

More information

Computer Organization EE 3755 Midterm Examination

Computer Organization EE 3755 Midterm Examination Name Computer Organization EE 3755 Midterm Examination Wednesday, 30 October 2013, 8:30 9:20 CDT Alias Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Problem 6 Problem 7 Exam Total (21 pts) (15 pts)

More information

CS/COE 0447 Example Problems for Exam 2 Spring 2011

CS/COE 0447 Example Problems for Exam 2 Spring 2011 CS/COE 0447 Example Problems for Exam 2 Spring 2011 1) Show the steps to multiply the 4-bit numbers 3 and 5 with the fast shift-add multipler. Use the table below. List the multiplicand (M) and product

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

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

Jan Rabaey Homework # 7 Solutions EECS141

Jan Rabaey Homework # 7 Solutions EECS141 UNIVERSITY OF CALIFORNIA College of Engineering Department of Electrical Engineering and Computer Sciences Last modified on March 30, 2004 by Gang Zhou (zgang@eecs.berkeley.edu) Jan Rabaey Homework # 7

More information

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS 2-2. 2-2.2 Learning Outcomes piral 2 2 Arithmetic Components and Their Efficient Implementations I know how to combine overflow and subtraction results to determine comparison results of both signed and

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

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS 2-2. 2-2.2 Learning Outcomes piral 2 2 Arithmetic Components and Their Efficient Implementations I know how to combine overflow and subtraction results to determine comparison results of both signed and

More information

ECE 645: Lecture 1. Basic Adders and Counters. Implementation of Adders in FPGAs

ECE 645: Lecture 1. Basic Adders and Counters. Implementation of Adders in FPGAs ECE 645: Lecture Basic Adders and Counters Implementation of Adders in FPGAs Required Reading Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design Chapter 5, Basic Addition and Counting,

More information

CAD4 The ALU Fall 2009 Assignment. Description

CAD4 The ALU Fall 2009 Assignment. Description CAD4 The ALU Fall 2009 Assignment To design a 16-bit ALU which will be used in the datapath of the microprocessor. This ALU must support two s complement arithmetic and the instructions in the baseline

More information

Learning Outcomes. Spiral 2-2. Digital System Design DATAPATH COMPONENTS

Learning Outcomes. Spiral 2-2. Digital System Design DATAPATH COMPONENTS 2-2. 2-2.2 Learning Outcomes piral 2-2 Arithmetic Components and Their Efficient Implementations I understand the control inputs to counters I can design logic to control the inputs of counters to create

More information

Addition and multiplication

Addition and multiplication Addition and multiplication Arithmetic is the most basic thing you can do with a computer, but it s not as easy as you might expect! These next few lectures focus on addition, subtraction, multiplication

More information

Combinational Circuit Design

Combinational Circuit Design Modeling Combinational Circuits with Verilog Prof. Chien-Nan Liu TEL: 3-42275 ext:34534 Email: jimmy@ee.ncu.edu.tw 3- Combinational Circuit Design Outputs are functions of inputs inputs Combinational Circuit

More information

ECE331: Hardware Organization and Design

ECE331: Hardware Organization and Design ECE331: Hardware Organization and Design Lecture 9: Binary Addition & Multiplication Adapted from Computer Organization and Design, Patterson & Hennessy, UCB Pop Quiz! Using 4 bits signed integer notation:

More information

Overview. EECS Components and Design Techniques for Digital Systems. Lec 16 Arithmetic II (Multiplication) Computer Number Systems.

Overview. EECS Components and Design Techniques for Digital Systems. Lec 16 Arithmetic II (Multiplication) Computer Number Systems. Overview EE 15 - omponents and Design Techniques for Digital ystems Lec 16 Arithmetic II (Multiplication) Review of Addition Overflow Multiplication Further adder optimizations for multiplication LA in

More information

ECE468 Computer Organization & Architecture. The Design Process & ALU Design

ECE468 Computer Organization & Architecture. The Design Process & ALU Design ECE6 Computer Organization & Architecture The Design Process & Design The Design Process "To Design Is To Represent" Design activity yields description/representation of an object -- Traditional craftsman

More information

Week 7: Assignment Solutions

Week 7: Assignment Solutions Week 7: Assignment Solutions 1. In 6-bit 2 s complement representation, when we subtract the decimal number +6 from +3, the result (in binary) will be: a. 111101 b. 000011 c. 100011 d. 111110 Correct answer

More information

Chapter 3 Arithmetic for Computers. ELEC 5200/ From P-H slides

Chapter 3 Arithmetic for Computers. ELEC 5200/ From P-H slides Chapter 3 Arithmetic for Computers 1 Arithmetic for Computers Operations on integers Addition and subtraction Multiplication and division Dealing with overflow Floating-point real numbers Representation

More information

ECE 30 Introduction to Computer Engineering

ECE 30 Introduction to Computer Engineering ECE 30 Introduction to Computer Engineering Study Problems, Set #6 Spring 2015 1. With x = 1111 1111 1111 1111 1011 0011 0101 0011 2 and y = 0000 0000 0000 0000 0000 0010 1101 0111 2 representing two s

More information

EECS150 - Digital Design Lecture 13 - Combinational Logic & Arithmetic Circuits Part 3

EECS150 - Digital Design Lecture 13 - Combinational Logic & Arithmetic Circuits Part 3 EECS15 - Digital Design Lecture 13 - Combinational Logic & Arithmetic Circuits Part 3 October 8, 22 John Wawrzynek Fall 22 EECS15 - Lec13-cla3 Page 1 Multiplication a 3 a 2 a 1 a Multiplicand b 3 b 2 b

More information

Lecture 19: Arithmetic Modules 14-1

Lecture 19: Arithmetic Modules 14-1 Lecture 19: Arithmetic Modules 14-1 Syllabus Objectives Addition and subtraction Multiplication Division Arithmetic and logic unit 14-2 Objectives After completing this chapter, you will be able to: Describe

More information

VARUN AGGARWAL

VARUN AGGARWAL ECE 645 PROJECT SPECIFICATION -------------- Design A Microprocessor Functional Unit Able To Perform Multiplication & Division Professor: Students: KRIS GAJ LUU PHAM VARUN AGGARWAL GMU Mar. 2002 CONTENTS

More information

VTU NOTES QUESTION PAPERS NEWS RESULTS FORUMS Arithmetic (a) The four possible cases Carry (b) Truth table x y

VTU NOTES QUESTION PAPERS NEWS RESULTS FORUMS Arithmetic (a) The four possible cases Carry (b) Truth table x y Arithmetic A basic operation in all digital computers is the addition and subtraction of two numbers They are implemented, along with the basic logic functions such as AND,OR, NOT,EX- OR in the ALU subsystem

More information

EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE

EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE 1 Logic circuits for digital systems may be combinational or sequential. A combinational circuit consists of input variables, logic gates, and output

More information

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4]

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4] HW 3 Answer Key 1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4] You can build a NAND gate from tri-state buffers and inverters and thus you

More 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

PESIT Bangalore South Campus

PESIT Bangalore South Campus INTERNAL ASSESSMENT TEST III Date : 21/11/2017 Max Marks : 40 Subject & Code : Computer Organization (15CS34) Semester : III (A & B) Name of the faculty: Mrs. Sharmila Banu Time : 11.30 am 1.00 pm Answer

More information

EE878 Special Topics in VLSI. Computer Arithmetic for Digital Signal Processing

EE878 Special Topics in VLSI. Computer Arithmetic for Digital Signal Processing EE878 Special Topics in VLSI Computer Arithmetic for Digital Signal Processing Part 6b High-Speed Multiplication - II Spring 2017 Koren Part.6b.1 Accumulating the Partial Products After generating partial

More information

ECE 341. Lecture # 6

ECE 341. Lecture # 6 ECE 34 Lecture # 6 Instructor: Zeshan Chishti zeshan@pdx.edu October 5, 24 Portland State University Lecture Topics Design of Fast Adders Carry Looakahead Adders (CLA) Blocked Carry-Lookahead Adders Multiplication

More information

ECE 341. Lecture # 7

ECE 341. Lecture # 7 ECE 34 Lecture # 7 Instructor: Zeshan Chishti zeshan@pdx.edu October 2, 24 Portland State University Lecture Topics Multiplication of Unsigned Numbers Sequential Circuit Multiplier Multiplication of Signed

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

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

Computer Organization EE 3755 Midterm Examination

Computer Organization EE 3755 Midterm Examination Name Solution Computer Organization EE 3755 Midterm Examination Wednesday, 24 October 2012, 9:30 10:20 CDT Alias A Century of Turing Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Problem 6 Problem

More information

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Digital Computer Arithmetic ECE 666 Part 6b High-Speed Multiplication - II Israel Koren ECE666/Koren Part.6b.1 Accumulating the Partial

More information

CS6303 COMPUTER ARCHITECTURE LESSION NOTES UNIT II ARITHMETIC OPERATIONS ALU In computing an arithmetic logic unit (ALU) is a digital circuit that performs arithmetic and logical operations. The ALU is

More information

EC2303-COMPUTER ARCHITECTURE AND ORGANIZATION

EC2303-COMPUTER ARCHITECTURE AND ORGANIZATION EC2303-COMPUTER ARCHITECTURE AND ORGANIZATION QUESTION BANK UNIT-II 1. What are the disadvantages in using a ripple carry adder? (NOV/DEC 2006) The main disadvantage using ripple carry adder is time delay.

More information

problem maximum score 1 10pts 2 8pts 3 10pts 4 12pts 5 7pts 6 7pts 7 7pts 8 17pts 9 22pts total 100pts

problem maximum score 1 10pts 2 8pts 3 10pts 4 12pts 5 7pts 6 7pts 7 7pts 8 17pts 9 22pts total 100pts University of California at Berkeley College of Engineering epartment of Electrical Engineering and Computer Sciences EECS150 J. Wawrzynek Spring 2003 2/21/03 Exam I Solutions Name: I number: This is a

More information

Review from last time. CS152 Computer Architecture and Engineering Lecture 6. Verilog (finish) Multiply, Divide, Shift

Review from last time. CS152 Computer Architecture and Engineering Lecture 6. Verilog (finish) Multiply, Divide, Shift Review from last time CS152 Computer Architecture and Engineering Lecture 6 Verilog (finish) Multiply, Divide, Shift February 11, 2004 John Kubiatowicz (www.cs.berkeley.edu/~kubitron) lecture slides: http://www-inst.eecs.berkeley.edu/~cs152/

More information

Principles of Computer Architecture. Chapter 3: Arithmetic

Principles of Computer Architecture. Chapter 3: Arithmetic 3-1 Chapter 3 - Arithmetic Principles of Computer Architecture Miles Murdocca and Vincent Heuring Chapter 3: Arithmetic 3-2 Chapter 3 - Arithmetic 3.1 Overview Chapter Contents 3.2 Fixed Point Addition

More information

*Instruction Matters: Purdue Academic Course Transformation. Introduction to Digital System Design. Module 4 Arithmetic and Computer Logic Circuits

*Instruction Matters: Purdue Academic Course Transformation. Introduction to Digital System Design. Module 4 Arithmetic and Computer Logic Circuits Purdue IM:PACT* Fall 2018 Edition *Instruction Matters: Purdue Academic Course Transformation Introduction to Digital System Design Module 4 Arithmetic and Computer Logic Circuits Glossary of Common Terms

More information

MULTIPLE OPERAND ADDITION. Multioperand Addition

MULTIPLE OPERAND ADDITION. Multioperand Addition MULTIPLE OPERAND ADDITION Chapter 3 Multioperand Addition Add up a bunch of numbers Used in several algorithms Multiplication, recurrences, transforms, and filters Signed (two s comp) and unsigned Don

More information

COMP 303 Computer Architecture Lecture 6

COMP 303 Computer Architecture Lecture 6 COMP 303 Computer Architecture Lecture 6 MULTIPLY (unsigned) Paper and pencil example (unsigned): Multiplicand 1000 = 8 Multiplier x 1001 = 9 1000 0000 0000 1000 Product 01001000 = 72 n bits x n bits =

More information

MULTIPLICATION TECHNIQUES

MULTIPLICATION TECHNIQUES Learning Objectives EE 357 Unit 2a Multiplication Techniques Perform by hand the different methods for unsigned and signed multiplication Understand the various digital implementations of a multiplier

More information

Introduction to Verilog/System Verilog

Introduction to Verilog/System Verilog NTUEE DCLAB Feb. 27, 2018 Introduction to Verilog/System Verilog Presenter: Yao-Pin Wang 王耀斌 Advisor: Prof. Chia-Hsiang Yang 楊家驤 Dept. of Electrical Engineering, NTU National Taiwan University What is

More information

Digital Computer Arithmetic

Digital Computer Arithmetic Digital Computer Arithmetic Part 6 High-Speed Multiplication Soo-Ik Chae Spring 2010 Koren Chap.6.1 Speeding Up Multiplication Multiplication involves 2 basic operations generation of partial products

More information

Chapter 4. Combinational Logic

Chapter 4. Combinational Logic Chapter 4. Combinational Logic Tong In Oh 1 4.1 Introduction Combinational logic: Logic gates Output determined from only the present combination of inputs Specified by a set of Boolean functions Sequential

More information

Introduction to Field Programmable Gate Arrays

Introduction to Field Programmable Gate Arrays Introduction to Field Programmable Gate Arrays Lecture 2/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May 9 June 2007 Javier Serrano, CERN AB-CO-HT Outline Digital Signal

More information

University of Illinois at Chicago. Lecture Notes # 10

University of Illinois at Chicago. Lecture Notes # 10 ECE 366 Computer Architecture Instructor: Shantanu Dutt Department of Electrical and Computer Engineering University of Illinois at Chicago Lecture otes # 0 COMPUTER ARITHMETIC: Integer Addition and Multiplication

More information

Number Systems and Computer Arithmetic

Number Systems and Computer Arithmetic Number Systems and Computer Arithmetic Counting to four billion two fingers at a time What do all those bits mean now? bits (011011011100010...01) instruction R-format I-format... integer data number text

More information

Computer Architecture Set Four. Arithmetic

Computer Architecture Set Four. Arithmetic Computer Architecture Set Four Arithmetic Arithmetic Where we ve been: Performance (seconds, cycles, instructions) Abstractions: Instruction Set Architecture Assembly Language and Machine Language What

More information

Binary Adders. Ripple-Carry Adder

Binary Adders. Ripple-Carry Adder Ripple-Carry Adder Binary Adders x n y n x y x y c n FA c n - c 2 FA c FA c s n MSB position Longest delay (Critical-path delay): d c(n) = n d carry = 2n gate delays d s(n-) = (n-) d carry +d sum = 2n

More information

CARLETON UNIVERSITY. Laboratory 2.0

CARLETON UNIVERSITY. Laboratory 2.0 CARLETON UNIVERSITY Department of Electronics ELEC 267 Switching Circuits Jan 3, 28 Overview Laboratory 2. A 3-Bit Binary Sign-Extended Adder/Subtracter A binary adder sums two binary numbers for example

More information

ECE 341 Midterm Exam

ECE 341 Midterm Exam ECE 341 Midterm Exam Time allowed: 75 minutes Total Points: 75 Points Scored: Name: Problem No. 1 (8 points) For each of the following statements, indicate whether the statement is TRUE or FALSE: (a) A

More information

Binary Adders: Half Adders and Full Adders

Binary Adders: Half Adders and Full Adders Binary Adders: Half Adders and Full Adders In this set of slides, we present the two basic types of adders: 1. Half adders, and 2. Full adders. Each type of adder functions to add two binary bits. In order

More information

Chapter 3: part 3 Binary Subtraction

Chapter 3: part 3 Binary Subtraction Chapter 3: part 3 Binary Subtraction Iterative combinational circuits Binary adders Half and full adders Ripple carry and carry lookahead adders Binary subtraction Binary adder-subtractors Signed binary

More information

Arithmetic Circuits. Design of Digital Circuits 2014 Srdjan Capkun Frank K. Gürkaynak.

Arithmetic Circuits. Design of Digital Circuits 2014 Srdjan Capkun Frank K. Gürkaynak. Arithmetic Circuits Design of Digital Circuits 2014 Srdjan Capkun Frank K. Gürkaynak http://www.syssec.ethz.ch/education/digitaltechnik_14 Adapted from Digital Design and Computer Architecture, David Money

More information

Computer Architecture and Organization

Computer Architecture and Organization 3-1 Chapter 3 - Arithmetic Computer Architecture and Organization Miles Murdocca and Vincent Heuring Chapter 3 Arithmetic 3-2 Chapter 3 - Arithmetic Chapter Contents 3.1 Fixed Point Addition and Subtraction

More information

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Website is up

More information

CS 5803 Introduction to High Performance Computer Architecture: Arithmetic Logic Unit. A.R. Hurson 323 CS Building, Missouri S&T

CS 5803 Introduction to High Performance Computer Architecture: Arithmetic Logic Unit. A.R. Hurson 323 CS Building, Missouri S&T CS 5803 Introduction to High Performance Computer Architecture: Arithmetic Logic Unit A.R. Hurson 323 CS Building, Missouri S&T hurson@mst.edu 1 Outline Motivation Design of a simple ALU How to design

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 Examination ECE 241F - Digital Systems Examiners: S. Brown,

More information

Topics. 6.1 Number Systems and Radix Conversion 6.2 Fixed-Point Arithmetic 6.3 Seminumeric Aspects of ALU Design 6.4 Floating-Point Arithmetic

Topics. 6.1 Number Systems and Radix Conversion 6.2 Fixed-Point Arithmetic 6.3 Seminumeric Aspects of ALU Design 6.4 Floating-Point Arithmetic 6-1 Chapter 6 Computer Arithmetic and the Arithmetic Unit Chapter 6: Computer Arithmetic and the Arithmetic Unit Topics 6.1 Number Systems and Radix Conversion 6.2 Fixed-Point Arithmetic 6.3 Seminumeric

More information

An Efficient Fused Add Multiplier With MWT Multiplier And Spanning Tree Adder

An Efficient Fused Add Multiplier With MWT Multiplier And Spanning Tree Adder An Efficient Fused Add Multiplier With MWT Multiplier And Spanning Tree Adder 1.M.Megha,M.Tech (VLSI&ES),2. Nataraj, M.Tech (VLSI&ES), Assistant Professor, 1,2. ECE Department,ST.MARY S College of Engineering

More information

TSEA44 - Design for FPGAs

TSEA44 - Design for FPGAs 2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency

More information

Computer Organization EE 3755 Midterm Examination

Computer Organization EE 3755 Midterm Examination Name Computer Organization EE 3755 Midterm Examination Wednesday, 24 October 2012, 9:30 10:20 CDT Alias Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Problem 6 Problem 7 Exam Total (15 pts) (14 pts)

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

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

Tailoring the 32-Bit ALU to MIPS

Tailoring the 32-Bit ALU to MIPS Tailoring the 32-Bit ALU to MIPS MIPS ALU extensions Overflow detection: Carry into MSB XOR Carry out of MSB Branch instructions Shift instructions Slt instruction Immediate instructions ALU performance

More information

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 3. Arithmetic for Computers Implementation

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 3. Arithmetic for Computers Implementation COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 3 Arithmetic for Computers Implementation Today Review representations (252/352 recap) Floating point Addition: Ripple

More information

L11: Major/Minor FSMs

L11: Major/Minor FSMs L11: Major/Minor FSMs Acknowledgements: Materials in this lecture are courtesy of the following sources and are used with permission. Rex Min 1 Quiz Quiz will be Closed Book Tuesday, March 21, 2006, 7:30pm-9:30pm

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

Memory Controller. System Integration Issues. Encoding numbers 1GB RAM FSM. Communicating FSMs Clocking, theory and practice. Combinational Logic

Memory Controller. System Integration Issues. Encoding numbers 1GB RAM FSM. Communicating FSMs Clocking, theory and practice. Combinational Logic Memory Controller System Integration Issues Communicating FSMs Clocking, theory and practice Encoding numbers 0 1 0 4 2 3 1 2 1GB RAM FSM Clock D Current Combinational Logic Next Input Output always @(posedge

More information

2015 Paper E2.1: Digital Electronics II

2015 Paper E2.1: Digital Electronics II s 2015 Paper E2.1: Digital Electronics II Answer ALL questions. There are THREE questions on the paper. Question ONE counts for 40% of the marks, other questions 30% Time allowed: 2 hours (Not to be removed

More information

Chapter 3 Arithmetic for Computers

Chapter 3 Arithmetic for Computers Chapter 3 Arithmetic for Computers 1 Arithmetic Where we've been: Abstractions: Instruction Set Architecture Assembly Language and Machine Language What's up ahead: Implementing the Architecture operation

More information

10.1. Unit 10. Signed Representation Systems Binary Arithmetic

10.1. Unit 10. Signed Representation Systems Binary Arithmetic 0. Unit 0 Signed Representation Systems Binary Arithmetic 0.2 BINARY REPRESENTATION SYSTEMS REVIEW 0.3 Interpreting Binary Strings Given a string of s and 0 s, you need to know the representation system

More information

Real Digital Problem Set #6

Real Digital Problem Set #6 Real igital Problem et #6. (2 points) ketch a block diagram for a magnitude comparator bit-slice circuit. Create K-maps to define the bit-slice circuit, and use them to find optimal logic equations. ketch

More information

CS 64 Week 1 Lecture 1. Kyle Dewey

CS 64 Week 1 Lecture 1. Kyle Dewey CS 64 Week 1 Lecture 1 Kyle Dewey Overview Bitwise operation wrap-up Two s complement Addition Subtraction Multiplication (if time) Bitwise Operation Wrap-up Shift Left Move all the bits N positions to

More information

ENEE245 Digital Circuits and Systems Lab Manual

ENEE245 Digital Circuits and Systems Lab Manual ENEE245 Digital Circuits and Systems Lab Manual Department of Engineering, Physical & Computer Sciences Montgomery College Version 1.1 Copyright Prof. Lan Xiang (Do not distribute without permission) 1

More information

Chapter 3 Part 2 Combinational Logic Design

Chapter 3 Part 2 Combinational Logic Design University of Wisconsin - Madison ECE/Comp Sci 352 Digital Systems Fundamentals Kewal K. Saluja and Yu Hen Hu Spring 2002 Chapter 3 Part 2 Combinational Logic Design Originals by: Charles R. Kime and Tom

More information

Slide Set 1. for ENEL 339 Fall 2014 Lecture Section 02. Steve Norman, PhD, PEng

Slide Set 1. for ENEL 339 Fall 2014 Lecture Section 02. Steve Norman, PhD, PEng Slide Set 1 for ENEL 339 Fall 2014 Lecture Section 02 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Fall Term, 2014 ENEL 353 F14 Section

More information

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017 ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 Combinational Logic Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke) Last

More information

EE 109 Unit 6 Binary Arithmetic

EE 109 Unit 6 Binary Arithmetic EE 109 Unit 6 Binary Arithmetic 1 2 Semester Transition Point At this point we are going to start to transition in our class to look more at the hardware organization and the low-level software that is

More information

Each DSP includes: 3-input, 48-bit adder/subtractor

Each DSP includes: 3-input, 48-bit adder/subtractor Virtex-4 DSP Architecture 2 2 DSP slices per tile 16-256 tiles in 1-8 columns Each DSP includes: 3-input, 48-bit adder/subtractor P P = Z±(X+Y+Cin) Optional accum reg C (48) 18x18-bit 2's-comp multiplier

More information