CS152 Computer Architecture and Engineering

Total Page:16

File Type:pdf, Size:1020Kb

CS152 Computer Architecture and Engineering The problem sets are intended to help you learn the material, and we encourage you to collaborate with other students and to ask questions in discussion sections and office hours to understand the problems. However, each student must turn in his own solution to the problems. CS152 Computer Architecture and #ngineering $S"s, Microprogramming and Pipelining Assigned 1/24/2018 &roblem Set #1 Due February 5 http://inst.eecs.berkeley.edu/~cs152/sp18 The problem sets also provide essential background material (or the qui))es. The problem sets will be graded primarily on an e*ort basis, but i( you do not work through the problem sets you are unlikely to succeed at the qui))es+ ,e will distribute solutions to the problem sets on the day the problem sets are due to give you (eedback. Homework assignments are due at the beginning of class on the due date. -ate homework will not be accepted, e.cept (or extreme circumstances and with prior arrangement. Problem 1: CISC, RISC, accumulator, and St!ck: Comparing IS#s In this problem, your task is to compare (our di*erent $S"s. ./0 is an extended accumulator, CISC architecture with variable1length instructions. 2ISC13 is a load-store, 2ISC architecture with 4.ed-length instructions 5(or this problem only consider the 32-bit (orm of its IS"). ,e will also look at a simple stack-based IS" and an accumulator architecture. Problem 1.A CISC -et us begin by considering the following C code8 int b; //a global variable void multiplyByB(int a){ int i, result; for(i = 0; i<b; i++){ result=result+a; } } 9sing gcc and ob:dump on a &entium III, we see that the above loop compiles to the (ollowing ./0 instruction sequence. 5;n entry to this code, register %ecx contains i, and register %edx contains result, and register %eax contains a. b is stored in memory at location 0x80495807 xor %edx,%edx xor %ecx,%ecx loop: cmp 0x8049580,%ecx jl L1 jmp done )*' add %eax,%edx inc %ecx jmp loop done: ... The meanings and instruction lengths of the instructions used above are given in the (ollowing table. Registers are denoted with ,-.B-/,012, register contents with <R-.B-/,0123+ Instruction $per!tion Lengt h add R45-2, R-,/ ,-,/ <= <R-,/> + <R4-23 2 bytes cmp imm32, R-,/7 Temp <= <R-,/7> - MEM[imm32] 6 bytes inc R45-2 ,45-2 <= <R45-2> + 1 1 byte jmp label :ump to the address speci4ed by label 2 bytes jl label i( (SF≠!= OF) 2 bytes :ump to the address speci4ed by label xor R45-2, R-,/ ,45-2 <= R45-2 xor R-,/ 2 bytes ! <otice that the :ump instruction :l 5:ump i( less than) depends on S= and ;=, which are status >ags. Status >ags are set by the instruction preceding the :ump, based on the result of the computation. Some instructions, like the cmp instruction, per(orm a computation and set status >ags, but do not return any result. The meanings of the status >ags are given in the (ollowing table8 &ame Purpose Condition Reported $' ;verflow 2esult e.ceeds positive or negative limit of number range S' Sign 2esult is negative (less than zero) How many bytes is the program? =or the above ./0 assembly code, how many bytes of instructions need to be (etched i( b @ 10? "ssuming 32-bit data values, how many bytes of data memory need to be fetched? Stored? Problem 1.B ISC Translate each of the ./0 instructions in the (ollowing table into one or more 2ISC13 instructions. &lace the -1 and loop labels where appropriate. Bou should use the minimum number of instructions needed to translate each ./0 instruction. "ssume that upon entry, x1 contains b, .! contains a, .6 contains i. .C should receive result. $( needed, use . as a condition register, and x6, x7, etc., (or temporaries. Bou should not need to use any >oating-point registers or instructions in your code. " description of the 2ISC13 instruction set architecture can be found in the class website, resources page. 6 x86 instruction label ISC+, instruction se-uence xor %edx,%edx xor %ecx,%ecx cmp 0x8049580,%ecx jl L1 jmp done add %eax,%edx inc %ecx jmp loop +++ done: +++ How many bytes is the RISC13 program using your direct translation? How many bytes of RISC1 3 instructions need to be (etched (or b @ 10 using your direct translation? "ssuming 32-bit data values, how many bytes of data memory need to be fetched? Stored? C Problem 1.C Stack In a stack architecture, all operations occur on top of the stack. ;nly push and pop access memory, and all other instructions remove their operands from the stack and replace them with the result. The hardware implementation we will assume (or this problem set uses stack registers (or the top two entriesE accesses that involve other stack positions (e.g., pushing or popping something when the stack has more than two entries7 use an extra memory re(erence. The table below gives a subset of a simple stack-style instruction set. "ssume each opcode is a single byte. -abels, constants, and addresses require two bytes. #.ample instruction %eaning &9SH A push MF"] onto stack &;& A pop stack and place popped value in MF"G "HH pop two values from the stackE AHH themE push result onto stack S9I pop two values from the stackE S9Itract top value from the 2nd; push result onto stack J#2; )eroes out the value at top of stack $<C pop value from top of stackE increments value by one push new value back on the stack I#KJ label pop value from stackE i( itLs zero, continue at labelE else, continue with next instruction I<#J label pop value from stackE i( itLs not zero, continue at labelE else, continue with next instruction M;T; label continue e.ecution at location label Translate the multiplyByB loop to the stack $S". =or uni(ormity, please use the same control >ow as in parts a and b. "ssume that when we reach the loop, a is the only thing on the stack. "ssume b is still at address 0x8000 (to fit within a 2 byte address speci4er). How many bytes is your program? 9sing your stack translations from part (c), how many bytes of stack instructions need to be (etched (or b @ 10? "ssuming 32-bit data values, how many bytes of data memory need to be (etched? Stored? $( you could push and pop to/from a (our-entry register 4le rather than memory (the Oava virtual machine does this), what would be the resulting number of bytes fetched and stored? Problem 1.D #ccumul!tor In an accumulator $S", one operand is implicitly a speci4c register (the same for all instructions), called the accumulator. For e.ample, to e.ecute C = A + B, the assembly code is8 -oad A -oad A into the accumulator "dd B "dd B to the accumulator (which contains ALs value7 Store CStore the accumulatorLs value into the address contained in C <otice that all instructions use the same accumulator. "lso note that there are no registers in this e.ample, but ", B, and C are all memory addresses. =or this question, we will consider a modi4ed architecture to make a solution possible. ,e will have accumulator instructions denoted by the post4. accumulator, and subtractor instructions which work the same way but re(erence a separate register. There(ore, a load can be either Qload " accumulatorR or Qload " subtractorR depending on where the value of address " should be loaded. 9sing this $S", and addition, subtraction, increment, decrement, )ero, and branch instructions similar to the stack IS", write the assembly for the program of this problem. How many bytes is your program (assume same byte usage as the stack architecture and that the speci4er (or accumulator and subtractor requires no extra bytes7? Can the same program be implemented with :ust one accumulator 5i.e., no subtractor)? $( not, how would you extend this $S" to implement this program with just one accumulator? 0 Problem 1.E Conclusions In just a few sentences, compare the four IS"s you have studied with respect to code si)e, number of instructions (etched, and data memory traffic. ,hich one would you choose i( you were to build a speciali)ed processor to e.ecute the code in this program, and why? Problem 1.F $ptimi0!tion To get more practice with 2ISC13, optimi)e the code from part I so that it can be expressed in (ewer instructions. There are solutions more efficient than simply translating each individual ./0 instruction as you did in part B. Bour solution should contain commented assembly code, a paragraph that explains your optimi)ations, and a short analysis of the savings you obtained. D Problem 2: Microprogramming and Bus+(!sed Architectures In this problem, we explore microprogramming by writing microcode (or the bus-based implementation of the 2ISC13 machine described in Handout #1 (Bus-Based 2ISC13 Implementation). 2ead the instruction (etch microcode in Table H1-3 of Handout #1. %ake sure that you understand how di*erent types of data and control trans(ers are achieved by setting the appropriate control signals be(ore attempting this problem. In order to (urther simpli(y this problem, ignore the busy signal, and assume that the memory is as fast as the register file. The 4nal solution should be elegant and efficient (e.g. number of new states needed, amount of new hardware added). Problem 2.A Implementin" 1emory-to-1emory Add =or this problem, you are to implement a new memory1memory add operation.
Recommended publications
  • Digital Electronic Circuits
    DIGITAL ELECTRONIC CIRCUITS SUBJECT CODE: PEI4I103 B.Tech, Fourth Semester Prepared By Dr. Kanhu Charan Bhuyan Asst. Professor Instrumentation and Electronics Engineering COLLEGE OF ENGINEERING AND TECHNOLOGY BHUBANESWAR B.Tech (E&IE/AE&I) detail Syllabus for Admission Batch 2015-16 PEI4I103- DIGITAL ELECTRONICS University level 80% MODULE – I (12 Hours)1. Number System: Introduction to various number systems and their Conversion. Arithmetic Operation using 1’s and 2`s Compliments, Signed Binary and Floating Point Number Representation Introduction to Binary codes and their applications. (5 Hours) 2. Boolean Algebra and Logic Gates: Boolean algebra and identities, Complete Logic set, logic gates and truth tables. Universal logic gates, Algebraic Reduction and realization using logic gates (3 Hours) 3. Combinational Logic Design: Specifying the Problem, Canonical Logic Forms, Extracting Canonical Forms, EX-OR Equivalence Operations, Logic Array, K-Maps: Two, Three and Four variable K-maps, NAND and NOR Logic Implementations. (4 Hours) MODULE – II (14 Hours) 4. Logic Components: Concept of Digital Components, Binary Adders, Subtraction and Multiplication, An Equality Detector and comparator, Line Decoder, encoders, Multiplexers and De-multiplexers. (5 Hours) 5. Synchronous Sequential logic Design: sequential circuits, storage elements: Latches (SR,D), Storage elements: Flip-Flops inclusion of Master-Slave, characteristics equation and state diagram of each FFs and Conversion of Flip-Flops. Analysis of Clocked Sequential circuits and Mealy and Moore Models of Finite State Machines (6 Hours) 6. Binary Counters: Introduction, Principle and design of synchronous and asynchronous counters, Design of MOD-N counters, Ring counters. Decade counters, State Diagram of binary counters (4 hours) MODULE – III (12 hours) 7.
    [Show full text]
  • Design and Analysis of Power Efficient PTL Half Subtractor Using 120Nm Technology
    International Journal of Computer Trends and Technology (IJCTT) – volume 7 number 4– Jan 2014 Design and Analysis of Power Efficient PTL Half Subtractor Using 120nm Technology 1 2 Pranshu Sharma , Anjali Sharma 1(Department of Electronics & Communication Engineering, APG Shimla University, India) 2(Department of Electronics & Communication Engineering, APG Shimla University, India) ABSTRACT : In the designing of any VLSI System, There are a number of logic styles by which a circuit can arithmetic circuits play a vital role, subtractor circuit is be implemented some of them used in this paper are one among them. In this paper a Power efficient Half- CMOS, TG, PTL. CMOS logic styles are robust against Subtractor has been designed using the PTL technique. voltage scaling and transistor sizing and thus provide a Subtractor circuit using this technique consumes less reliable operation at low voltages and arbitrary transistor power in comparison to the CMOS and TG techniques. sizes. In CMOS style input signals are connected to The proposed Half-Subtractor circuit using the PTL transistor gates only, which facilitate the usage and technique consists of 6 NMOS and 4 PMOS. The characterization of logic cells. Due to the complementary proposed PTL Half-Subtractor is designed and simulated transistor pairs the layout of CMOS gates is not much using DSCH 3.1 and Microwind 3.1 on 120nm. The complicated and is power efficient. The large number of power estimation and simulation of layout has been done PMOS transistors used in complementary CMOS logic for the proposed PTL half-Subtractor design. Power style is one of its major disadvantages and it results in comparison on BSIM-4 and LEVEL-3 has been high input loads [3].
    [Show full text]
  • Design of Adder / Subtractor Circuits Based On
    ISSN (Print) : 2320 – 3765 ISSN (Online): 2278 – 8875 International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering (An ISO 3297: 2007 Certified Organization) Vol. 2, Issue 8, August 2013 DESIGN OF ADDER / SUBTRACTOR CIRCUITS BASED ON REVERSIBLE GATES V.Kamalakannan1, Shilpakala.V2, Ravi.H.N3 Lecturer, Department of ECE, R.L.Jalappa Institute of Technology, Doddaballapur, Karnataka, India 1 Asst. Professor & HOD, Department of ECE, R.L.Jalappa Institute of Technology, Doddaballapur, Karnataka, India2 Lab Assistant, Dept. of ECE, U.V.C.E, Bangalore Karnataka, India3 ABSTRACT: Reversible logic has extensive applications in quantum computing, it is a unconventional form of computing where the computational process is reversible, i.e., time-invertible. The main motivation behind the study of this technology is aimed at implementing reversible computing where they offer what is predicted to be the only potential way to improve the energy efficiency of computers beyond von Neumann-Landauer limit. It is relatively new and emerging area in the field of computing that taught us to think physically about computation Quantum Computing will be a total change in how the computer will operate and function. The reversible arithmetic circuits are efficient in terms of number of reversible gates, garbage output and quantum cost. In this paper design Reversible Binary Adder- Subtractor- Mux, Adder-Subtractor- TR Gate., Adder-Subtractor- Hybrid are proposed. In all the three design approaches, the Adder and Subtractor are realized in a single unit as compared to only full adder/subtractor in the existing design. The performance analysis is verified using number reversible gates, Garbage input/outputs and Quantum Cost.The reversible 4-bit full adder/ subtractor design unit is compared with conventional ripple carry adder, carry look ahead adder, carry skip adder, Manchester carry adder based on their performance with respect to area, timing and power.
    [Show full text]
  • Area and Power Optimized D-Flip Flop and Subtractor
    IT in Industry, Vol. 9, No.1, 2021 Published Online 28-02-2021 AREA AND POWER OPTIMIZED D-FLIP FLOP AND SUBTRACTOR T. Subhashini1, M. Kamaraju2, K. Babulu3 1,2 Department of ECE, Gudlavalleru Engineering College, India 3Department of ECE, UCOE, JNTUK, Kakinada, India Abstract: Low power is essential in today’s technology. It LITERATURE SURVEY is most significant with high speed, small size and stability. So, power reduction is most important in modern In the era of microelectronics, power dissipation is technology using VLSI design techniques. Today most of limiting factor. In any CMOS technology, provides the market necessities require low power, long run time very low Static power dissipation. Due to the and market which also deserve small size and high speed. discharge of capacitance, during the switching In this paper several logic circuits DFF with 5 transistors operation, that cause a power dissipation. Which and sub tractor circuit using powerless XOR gate and increases with the clock frequency. Using Groundless XNOR gates are implemented. In the proposed Transmission Gate Technique Such unnecessary DFF, the area can be decreased by 62% & substarctor discharging can be prevented. Due to the resistance of circuit, area decreased by 80% and power consumption of switches, impartial losses may be occurred for any DFF and subtractor circuit are 15.4µW and 13.76µW logic operation. respectively, but these are very less as compared to existing techniques. To avoid these minor losses keep clock frequency to be small than the technological limit. There are Keyword: D FF, NMOS, PMOS, VLSI, P-XOR, G-XNOR different types of Transmission Gate logic families.
    [Show full text]
  • High Performance Full Subtractor Using Floating-Gate MOSFET
    Microelectronic Engineering 162 (2016) 75–78 Contents lists available at ScienceDirect Microelectronic Engineering journal homepage: www.elsevier.com/locate/mee Accelerated publication High performance full subtractor using floating-gate MOSFET Roshani Gupta, Rockey Gupta, Susheel Sharma Department of Physics and Electronics, University of Jammu, Jammu 180006, India article info abstract Article history: Low power consumption has become one of the primary requirements in the design of digital VLSI circuits in re- Received 18 March 2016 cent years. With scaling down of device dimensions, the supply voltage also needs to be scaled down for reliable Received in revised form 10 May 2016 operation. The speed of conventional digital integrated circuits is degrading on reducing the supply voltage for a Accepted 11 May 2016 given technology. Moreover, the threshold voltage of MOSFET does not scale down proportionally with its di- Available online 13 May 2016 mensions, thus putting a limitation on its suitability for low voltage operation. Therefore, there is a need to ex- Keywords: plore new methodology for the design of digital circuits well suited for low voltage operation and low power Full subtractor consumption. Floating-gate MOS (FGMOS) technology is one of the design techniques with its attractive features FGMOS of reduced circuit complexity and threshold voltage programmability. It can be operated below the conventional TG threshold voltage of MOSFET leading to wider output signal swing at low supply voltage and dissipates less CPL power as compared to CMOS circuits without much compromise on the device performance. This paper presents GDI the design of full subtractor using FGMOS technique whose performance has been compared with full subtractor Power delay product circuits employing CMOS, transmission gates (TG), complementary pass transistor logic (CPL) and gate diffusion input (GDI).
    [Show full text]
  • Design and Implementation of Adder/Subtractor and Multiplication Units for Floating-Point Arithmetic
    International Journal of Electronics Engineering, 2(1), 2010, pp. 197-203 Design and Implementation of Adder/Subtractor and Multiplication Units for Floating-Point Arithmetic Dhiraj Sangwan1 & Mahesh K. Yadav2 1MITS University, Laxmangarh, Rajasthan, India 2BRCM College of Engg. & Tech., Bahal, M D University, Rohtak, Haryana, India Abstract: Computers were originally built as fast, reliable and accurate computing machines. It does not matter how large computers get, one of their main tasks will be to always perform computation. Most of these computations need real numbers as an essential category in any real world calculations. Real numbers are not finite; therefore no finite, representation method is capable of representing all real numbers, even within a small range. Thus, most real values will have to be represented in an approximate manner. The scope of this paper includes study and implementation of Adder/Subtractor and multiplication functional units using HDL for computing arithmetic operations and functions suited for hardware implementation. The algorithms are coded in VHDL and validated through extensive simulation. These are structured so that they provide the required performance i.e. speed and gate count. This VHDL code is then synthesized by Synopsys tool to generate the gate level net list that can be implemented on the FPGA using Xilinx FPGA Compiler. Keywords: Algorithm, ALU, Adder/Subtractor, Arithmetic Computation, Floating Point, IEEE 754 Standard, Multiplication, RTL, Significand, Simulation, Synthesis, VHDL. 1. INTRODUCTION normalized floating-point numbers as if they were The Arithmetic logic unit or ALU is the brain of the computer, integers)[9]. the device that performs the arithmetic operations like addition and subtraction or logical operations like AND and 1.2.
    [Show full text]
  • Design of Fault Tolerant Full Subtractor
    IJRECE VOL. 6 ISSUE 2 APR.-JUNE 2018 ISSN: 2393-9028 (PRINT) | ISSN: 2348-2281 (ONLINE) Design of Fault Tolerant Full Subtractor Rita Mahajan1, Sharu Bansal2, Deepak Bagai3 Department of Electronics and Communication Engineering Punjab Engineering College (Deemed to be University), Chandigarh, India. [email protected],[email protected],[email protected] Abstract- Now days, the complexity of integrated circuits is extra circuit like generating 2's complement of a number increasing while reliability of the components is decreasing which is to be subtracted. The proposed design is an due to small gates and transistor. One of the impacts of independent subtractor so that addition and subtraction can be technology scaling is more sensitivity to transient and carried out parallel which improves the performance of permanent faults. It is very difficult to detect these faults system. So, the design of faster and reliable subtractor is of offline. The fault tolerant subtractor can detect the faults and great importance in such systems. There are many approaches tolerate the detected faults. There are many fault tolerant full to achieve the fault tolerance in full subtractor. The subtractor which can detect these faults online. So, an efficient researchers have introduced the concept of redundancy to fault tolerant full subtractor is proposed in this paper which detect the fault in full subtractor. But in order to detect and can detect the faults with their exact location and also tolerate tolerate the faults there is need of an efficient fault tolerant full the faults. The proposed subtractor can detect the faults in subtractor. single and multi net.
    [Show full text]
  • 8-Bit Adder and Subtractor with Domain Label Based on DNA Strand Displacement
    Article 8-Bit Adder and Subtractor with Domain Label Based on DNA Strand Displacement Weixuan Han 1,2 and Changjun Zhou 1,3,* 1 College of Mathematics and Computer Science, Zhejiang Normal University, Jinhua 321004, China; [email protected] 2 College of Nuclear Science and Engineering, Sanmen Institute of technicians, Sanmen 317100, China 3 Key Laboratory of Advanced Design and Intelligent Computing (Dalian University) Ministry of Education, Dalian 116622, China * Correspondence: [email protected] Academic Editor: Xiangxiang Zeng Received: 16 October 2018; Accepted: 13 November 2018; Published: 15 November 2018 Abstract: DNA strand displacement, which plays a fundamental role in DNA computing, has been widely applied to many biological computing problems, including biological logic circuits. However, there are many biological cascade logic circuits with domain labels based on DNA strand displacement that have not yet been designed. Thus, in this paper, cascade 8-bit adder/subtractor with a domain label is designed based on DNA strand displacement; domain t and domain f represent signal 1 and signal 0, respectively, instead of domain t and domain f are applied to representing signal 1 and signal 0 respectively instead of high concentration and low concentration high concentration and low concentration. Basic logic gates, an amplification gate, a fan-out gate and a reporter gate are correspondingly reconstructed as domain label gates. The simulation results of Visual DSD show the feasibility and accuracy of the logic calculation model of the adder/subtractor designed in this paper. It is a useful exploration that may expand the application of the molecular logic circuit. Keywords: DNA strand displacement; cascade; 8-bit adder/subtractor; domain label 1.
    [Show full text]
  • VHDL: Dataflow
    Laboratorio de Tecnologías de Información ArithmeticArithmetic andand LogicLogic UnitUnit ArquitecturaArquitectura dede ComputadorasComputadoras Arturo Díaz Pérez Centro de Investigación y de Estudios Avanzados del IPN Laboratorio de Tecnologías de Información [email protected] Arquitectura de Computadoras ALU3- 1 MIPSMIPS arithmeticarithmetic instructionsinstructions Laboratorio de Tecnologías de Información Instruction Example Meaning Comments add add $1,$2,$3 $1 = $2 + $3 3 operands; exception possible subtract sub $1,$2,$3 $1 = $2 – $3 3 operands; exception possible add immediate addi $1,$2,100 $1 = $2 + 100 + constant; exception possible add unsigned addu $1,$2,$3 $1 = $2 + $3 3 operands; no exceptions subtract unsigned subu $1,$2,$3 $1 = $2 – $3 3 operands; no exceptions add imm. unsign. addiu $1,$2,100 $1 = $2 + 100 + constant; no exceptions multiply mult $2,$3 Hi, Lo = $2 x $3 64-bit signed product multiply unsigned multu$2,$3 Hi, Lo = $2 x $3 64-bit unsigned product divide div $2,$3 Lo = $2 ÷ $3, Lo = quotient, Hi = remainder Hi = $2 mod $3 divide unsigned divu $2,$3 Lo = $2 ÷ $3, Unsigned quotient & remainder Hi = $2 mod $3 Move from Hi mfhi $1 $1 = Hi Used to get copy of Hi Move from Lo mflo $1 $1 = Lo Used to get copy of Lo Arquitectura de Computadoras ALU3- 2 ArithmeticArithmetic--logiclogic unitsunits Laboratorio de Tecnologías de Información ♦ An arithmetic-logic unit, or ALU, performs many different arithmetic and logic operations ■ The ALU is the “heart” of a processor—you could say that everything else in the CPU is there to support the ALU ♦ We will show an arithmetic unit first, by building off ideas from the adder-subtractor circuit ♦ Then we will talk about logic operations a bit, and build a logic unit ♦ Finally, we put these pieces together using multiplexers Arquitectura de Computadoras ALU3- 3 TheThe fourfour--bitbit adderadder Laboratorio de Tecnologías de Información ♦ The basic four-bit adder always computes S = A + B + CI.
    [Show full text]
  • Digital Electonics and Microprocessor Date
    ELECTRICAL 2ND YEAR SUBJECT- DIGITAL ELECTONICS AND MICROPROCESSOR DATE -01-05-2020 TO 03-05-2020 TIME 9:40-10:30 Arithmetic Circuits Half adder and Full adder circuit, design and implementation, Half and Full subtractor circuit, design and implementation, 4 bit adder/subtractor, Adder and Subtractor IC TOPIC NAME-Half and Full subtractor circuit, As their name implies, a Binary Subtractor is a decision making circuit that subtracts two binary numbers from each other, for example, X – Y to find the resulting difference between the two numbers. Unlike the Binary Adder which produces a SUM and a CARRY bit when two binary numbers are added together, the binary subtractor produces a DIFFERENCE, D by using a BORROW bit, B from the previous column. Then obviously, the operation of subtraction is the opposite to that of addition. We learnt from our maths lessons at school that the minus sign, “–” is used for a subtraction calculation, and when one number is subtracted from another, a borrow is required if the subtrahend is greater than the minuend. Consider the simple subtraction of the two denary (base 10) numbers below. 123 X We can not directly subtract 8 from 3 in the first column as 8 is greater than 3, so we have to borrow a 10, the base number, from the next column and add it to the minuend to produce 13 minus 8. This “borrowed” 10 is then return back to the subtrahend of the next column once the difference is found. Simple school math’s, borrow a 10 if needed, find the difference and return the borrow.
    [Show full text]
  • COMPUTER ARITHMETIC 1. Addition and Subtraction of Unsigned Numbers the Direct Method of Subtraction Taught in Elementary Schools Uses the Borrowconcept
    COMPUTER ARITHMETIC 1. Addition and Subtraction of Unsigned Numbers The direct method of subtraction taught in elementary schools uses the borrowconcept. In this method we borrow a 1 from a higher significant position when theminuend digit is smaller than the corresponding subtrahend digit. This seems to beeasiest when people perform subtraction with paper and pencil. When subtraction isimplemented with digital hardware, this method is found to be less efficient than themethod that uses complements. The subtraction of two n digit unsigned numbers M – N ( N ≠ 0) in base r can bedone as follows: 1. Add the minuend M to the r’s complement of the subtrahend N. This performs M + (rn– N) = M – N + rn. 2. If M ≥ N, the sum will produce an end carries rn, which is discarded, and whatis left is the result M – N. 3. If M < N, the sum does not produce an end carry and is equal to rn–(N – M), which is the r’s complement of (N – M). To obtain the answer in afamiliar form, take the r’s complement of the sum and place a negative signin front. Consider, for example, the subtraction 72532 – 13250 = 59282. The 10’scomplement of 13250 is 86750. Therefore:M = 72532. 10’s complement of N = +86750. Sum = 159282Discard end carry, and the Answer = 59282 Since we are dealing with unsigned numbers, there is really no way to get anunsigned result for the second example. When working with paper and pencil, werecognize that the answer must be changed to a signed negative number. Whensubtracting with complements, the negative answer is recognized by the absence ofthe end carry and the complemented result.
    [Show full text]
  • Multi‐Bit Adder/Subtractor with Overflow
    L07: Circuit Building Blocks I CSE369, Winter 2017 Intro to Digital Design Circuit Building Blocks I Instructor: Justin Hsia L07: Circuit Building Blocks I CSE369, Winter 2017 Practice: String Recognizer FSM Recognize the string 101 with the following behavior . Input: 1 0 0 1 0 1 0 1 1 0 0 1 0 . Output: 0 0 0 0 0 1 0 1 0 0 0 0 0 State diagram to implementation: 2 L07: Circuit Building Blocks I CSE369, Winter 2017 Administrivia Lab 7 – Useful Components . Modifying Lab 6 game to implement common circuit elements • Counter, Shift Registers covered later in lecture . Build a tunable computer opponent . Bonus points for smaller resource usage Quiz 2 is next week in lecture . First 25 minutes, worth 11% of your course grade . On Lectures 4‐6: Sequential Logic, Timing, FSMs, and Verilog . Au16 Quiz 2 (+ solutions) on website: Files Quizzes 3 L07: Circuit Building Blocks I CSE369, Winter 2017 Motivating Example Problem: Implement a simple pocket calculator Need: . Display: Seven segment displays . Inputs: Switches . Math: Arithmetic & Logic Unit (ALU) 4 L07: Circuit Building Blocks I CSE369, Winter 2017 Data Multiplexor Multiplexor (“MUX”) is a selector . Direct one of many ( = s) ‐bit wide inputs onto output . Called a ‐bit, ‐to‐1 MUX Example: ‐bit 2‐to‐1 MUX . Input S ( bits wide) selects between two inputs of bits each This input is passed to output if selector bits inputs match shown value 5 L07: Circuit Building Blocks I CSE369, Winter 2017 Review: Implementing a 1‐bit 2‐to‐1 MUX Schematic: Boolean Algebra: sabc Truth Table: 0 0 00 0 0 10 Circuit Diagram: 0 1 01 0 1 11 100 0 101 1 110 0 111 1 6 L07: Circuit Building Blocks I CSE369, Winter 2017 1‐bit 4‐to‐1 MUX Schematic: Truth Table: How many rows? 26 Boolean Expression: e = s1’s0’a + s1’s0b + s1s0’c + s1s0d 7 L07: Circuit Building Blocks I CSE369, Winter 2017 1‐bit 4‐to‐1 MUX Can we leverage what we’ve previously built? .
    [Show full text]