O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×
DATE : 22/01/2015
This project would not have been possible without the
kind support and help of many individual organizatio...
Próximos SlideShares
Ripple Carry Adder
Ripple Carry Adder
Carregando em…3

Confira estes a seguir

1 de 28 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Quem viu também gostou (20)


Semelhante a Parallel Adder (20)

Mais de Soudip Sinha Roy (14)


Mais recentes (20)

Parallel Adder

  3. 3. Acknowledgement This project would not have been possible without the kind support and help of many individual organization. First of all I would like to express my lot of thanks to all of them. I’m highly thankful to Prof. Arindam Chakrabarti, Angshuman Roy,Madhusudhan Baida and Prabir Kumar Das for their guidance and constant supervisation as well as providing information regarding the project. And I’ve completed my project by a huge avocation. I would like to express my gratitude towards my parents & the all members of Institute Of Engineering And Managemnet for their kind co-operation and encouragement for the completation of my project. I would like to express my special acknowledgement to the industry persons for giving me such attention and their valuable time.
  4. 4. My application is also goes to my collegious in developing the project and people who’ve helped me out as their abalities.
  5. 5. Abstruct A Very Large Scale Integration device is just the sattlement of a very large number of transistors. So, now in the present market this technology is very crucial. Let me speak something about this. VLSI technology is used in almost very aspect of industry to expand and enhance the efficiency. By mid eighties, the transistor count on a single chip had already exceeded 1000 and hence came the age of Very Large Scale Integration or VLSI. Though many improvements have been made and the transistor count is still rising, further names of generations like ULSI are generally avoided. It was during this time when TTL lost the battle to MOS family owing to the same problems that had pushed vacuum tubes into negligence, power dissipation and the limit it imposed on the number of gates that could be placed on a single die. Here the millions of million transistors ( ex : 1*1 area 80 millions ) are assembled
  6. 6. inside the circuit. For that a huge power o/p we can get from single IC chip. This thing is also implemented with the help of some softwares and some different types of languages. And on the basic pogramable logic controlling system this kind of devices are mainly constructed. It is very much usefull for eatch and every digitial circuits we can see severaly in market.
  7. 7. INDEX  PARALLEL ADDER o Introduction o Types of adder o Basic adder unit  Half adder  Full adder  Ripple carry adder  Carry skip adder  VLSI PROJECT o Title o Block Diagram o Program Code  Sub-module  Main-module  Test module o Output o Discussion  APPENDIX  BIBLIOGRAPHY
  8. 8. PARALLEL ADDER  INTRODUCTION: The saying goes that if you can count, you can control. Addition is a fundamental operation for any digital system, digital signal processing or control system. A fast and accurate operation of a digital system is greatly influenced by the performance of the resident adders. Adders are also very important component in digital systems because of their extensive use in other basic digital operations such as subtraction, multiplication and division. Hence, improving performance of the digital adder would greatly advance the execution of binary operations inside a circuit compromised of such blocks. The performance of a digital circuit block is gauged by analysing its power dissipation, layout area and its operating speed.  TYPES OF ADDER: In this lecture we will review the implementation technique of several types of adders and study their characteristics and performance. These are: Ripple carry adder, Carry look-ahead adder, Carry skip adder, Manchester chain adder, Carry select adders, Pre-Fix Adders, Multi-operand adder,
  9. 9. Carry save Adder, Pipelined parallel adder, For the same length of binary number, each of the above adders has different performance in terms of Delay, Area, and Power. All designs are assumed to be CMOS static circuits and they are viewed from architectural point of view.  BASIC ADDER UNIT: The most basic arithmetic operation is the addition of two binary digits, i.e. bits. A combinational circuit that adds two bits, according the scheme outlined below, is called a half adder. A full adder is one that adds three bits, the third produced from a previous addition operation. One way of implementing a full adder is to utilizes two half adders in its implementation. The full adder is the basic unit of addition employed in all the adders studied here.  Half Adder: A half adder is used to add two binary digits together, A and B. It produces S, the sum of A and B, and the corresponding carry out Co. Although by itself, a half adder is not extremely useful, it can be used as a building block for larger adding circuits (FA). One possible implementation is using two AND gates, two inverters, and an OR gate instead of a XOR gate as shown in Fig. 1
  10. 10.  Full Adder: A full adder is a combinational circuit that performs the arithmetic sum of three bits: A, B and a carry in, C, from a previous addition, Fig. 2a. Also, as in the case of the half adder, the full adder produces the corresponding sum, S, and a carry out Co. As mentioned previously a full adder maybe designed by two half adders in series as shown below in Figure 2b. The sum of A and B are fed to a second half adder, which then adds it to the carry in C (from a previous addition operation) to generate the final sum S. The carry out, Co, is the result of an OR operation taken
  11. 11. from the carry outs of both half adders. There are a variety of adders in the literature both at the gate level and transistor level each giving different performances.  Parallel Adder:
  12. 12. Parallel adders are digital circuits that compute the addition of variable binary strings of equivalent or different size in parallel. The schematic diagram of a parallel adder is shown below in Fig. 3.  Ripple Carry Adder: The ripple carry adder is constructed by cascading full adders (FA) blocks in series. One full adder is responsible for the addition of two binary digits at any stage of the ripple carry. The carryout of one stage is fed directly to the carry-in of the next stage. A number of full adders may be added to the ripple carry adder or ripple carry adders of different sizes may be cascaded in order to accommodate binary vector strings of larger sizes. For an n-bit parallel adder, it requires n computational elements (FA). Figure 4 shows an example of a parallel adder: a 4-bit ripple-carry adder. It is composed of four full adders. The augend’s bits of x are added to the addend bits of y respectfully of their binary position. Each bit addition creates a
  13. 13. sum and a carry out. The carry out is then transmitted to the carry in of the next higher-order bit. The final result creates a sum of four bits plus a carry out (c4). Even though this is a simple adder and can be used to add unrestricted bit length numbers, it is however not very efficient when large bit numbers are used. One of the most serious drawbacks of this adder is that the delay increases linearly with the bit length. As mentioned before, each full adder has to wait for the carry out of the previous stage to output steady-state result. Therefore even if the adder has a value at its output terminal, it has to wait for the propagation of the carry before the output reaches a correct value as shown in Fig. 5. Taking again the example in figure 4, the addition of x4 and y4 cannot reach steady state until c4 becomes available. In turn, c4 has to wait for c3, and so on down to c1. If one full adder takes Tfa seconds to complete its operation, the final result will reach its steady-state value only after 4.Tfa seconds. Its area is n Afa A (very) small improvement in area consumption can be achieved if it is known in advance that the first carry in (c0) will always be zero. (If so, the first full adder can be replace by a half adder). In general, assuming all gates have the same delay and area of NAND-2 denoted by T gate and Agate then this circuit has 3n T gate delay and 5nAgate. n is the number of full adders. (One must be aware that in Static CMOs, this assumption is not true). Gate delays depend on intrinsic delay + fan(in) delay + fan(out) delay.
  14. 14. Carry Propagation in Carry Ripple Adder Generally speaking, the worst-case delay of the RCA is when a carry signal transition ripples through all stages of adder chain from the least significant bit to the most significant bit, which is approximated by: where tc is the delay through the carry stage of a full adder, and ts is the delay to compute the sum of the last stage. The delay of ripple carry adder is linearly proportional to n, the number of bits, therefore the performance of the RCA is limited when n grows bigger. The advantages of the RCA are lower power consumption as well as a compact layout giving smaller chip area. To design a larger adder ripple carry adders are cascaded. An example of 37 bit carry propagate adder is shown in Fig. 6
  15. 15. As of today standards, it is a common philosophy that area can be traded off in order to achieve higher speed. This will be shown in the next sections by presenting alternative methods that are based on pre-determining the carry signal of a number of stages based only on the input vales.  Carry Skip Adder: A carry-skip adder consists of a simple ripple carry-adder with a special speed up carry chain called a skip chain. This chain defines the distribution of ripple carry blocks, which compose the skip adder.  Carry Skip Mechanism: on the carry in, Ci , which in reality is the carry out, Ci-1, of the previous stage. Therefore, in order
  16. 16. to calculate the sum and the carry out, Ci+1 , of stage i, it is imperative that the carry in, Ci, be known in advance. It is interesting to note that in some cases Ci+1 can be calculated without knowledge of Ci.  Boolean Equations of a Full Adder: Therefore, if Equation 4 is true then the carry out, Ci+1, will be one if Ai = Bi = 1 or zero if Ai = Bi = 0. Hence we can compute the carry out at any stage of the addition provided equation 4 holds. These findings would enable us to build an adder whose average time of computation would be proportional to the longest chains of zeros and of different digits of A and B. Alternatively, given two binary strings of numbers, such as the example below, it is very likely that we may encounter large chains of consecutive bits (block 2) where Ai Bi. In order to deal with this scenario we must reanalyse equation 3 carefully.
  17. 17. In order to take advantage of the last property, we can design an adder that is divided into blocks, as shown in Fig. 7, where a special purpose circuit can compare the two binary strings inside each block and determine if they are equal or not. In the latter case the carry entering the block will simply be propagated to the next block and if this is the case all the carry inputs to the bit positions in that block are all either 0’s or 1’s depending on the carry in into the block. Should only one pair of bits (Ai and Bi) inside a block be equal then the carry skip mechanism would be unable to skip the block. In the extreme case, although still likely, that there exist one such case, where Ai = Bi, in each block, then no block is skipped but a carry would be generated in each block instead.
  18. 18. Two strings of binary numbers to be added are divided into blocks of equal length. In each cell within a block both bits are compared for un-equivalence. This is done by Exclusive ORing each individual cell (parallel operation and already present in the full adder) producing a comparison string. Next the comparison string is AND end within itself in a domino fashion. This process ensures that the comparison of each and all cells was indeed unequal and we can therefore proceed to propagate the carry to the next block. A MUX is responsible for selecting a generated carry or a propagated (previous) carry with its selection line being the output of the comparison circuit just described. If for each cell in the block Ai ≠ Bi then we say that a carry can skip over the block otherwise if Ai = Bi we shall say that the carry must be generated in the block. When studying carry skip adders the main purpose is to find a configuration of blocks that minimizes the longest life of a carry, i.e. from the time of its generation to the time of the generation of the next carry. Many models have been suggested: the first with blocks of equal size and the second with blocks of different sizes according to some heuristic.
  19. 19. The delay of n-bit adder based on m-bit blocks of Carry Bypass Adder, CBA rippled together. n is the adder length and m is the length of the blocks Comparing to the RCA, the CBA has slightly improved speed for wider-bit adders (still linear to n), but with higher active capacitance and the area overhead because of the extra bypass circuit. VLSI PROJECT  TITLE: Design and simulate 4-Bit Parallel Adder using structural architecture style using VHDL environment. Addition of two binary numbers 1 1 0 1 + 1 0 0 1 ---------------------
  20. 20.  BLOCK DIAGRAM:  PROGRAM CODE: Sub-module: entity soudip is port(a,b,c:in bit; y,z:out bit); end entity; architecture dataflow of soudip is begin y<=(a xor (b xor c)); z<=((a and b) or (b and c) or (c and b));
  21. 21. end architecture; Main-module: entity soudip_1 is port(d,e,f,i,j,k,l,m,n:in bit; a1,a2,a3,a4,b4:out bit); end entity; architecture dataflow of soudip_1 is component soudip is port(a,b,c:in bit; y,z:out bit); end component; signal b1,b2,b3:bit; begin palash port map (d,e,f,a1,b1); palash port map (i,j,b1,a2,b2); palash port map (k,l,b2,a3,b3); palash port map (m,n,b3,a4,b4); end architecture; Test-madule: entity soudip_2 is end entity; architecture mixed of soudip_2 is signal z1,z2,z3,z4,z5,z6,z7,z8,z9,y1,y2,y3,y4,y5:bit; component palash_1 is port(d,e,f,i,j,k,l,m,n:in bit; a1,a2,a3,a4,b4:out bit);
  22. 22. end component; begin soudip_1 port map (z1,z2,z3,z4,z5,z6,z7,z8,z9,y1,y2,y3,y4,y5); process begin z1<='1'; z2<='1'; z3<='0'; wait for 30ns; z4<='0'; z5<='0'; wait for 30ns; z6<='1'; z7<='0'; wait for 30ns; z8<='1'; z9<='1'; wait for 30ns; end process; end architecture;  OUTPUT:
  23. 23. 1 1 0 1 + 1 0 0 1 ------------------------ (1) 0 1 1 0  DISCUSSION: Ripple carry adder delays In the ripple carry adder, the output is known after the carry generated by the previous stage is produced. Thus, the sum of the most significant bit is only available after the carry signal has rippled through the adder from the least significant stage to the most significant stage. As a result, the final sum and carry bits will be valid after a considerable delay. Hence we can design and simulate this 4-bit parallel adder by structural architecture using VHDL environment in help of PEAK-VHDL simulator software. By this simulation we can produce sum of this given binary numbers.
  24. 24. APPENDIX How to use Accolade Peak VHDL 1. Launch software from "StartProgramsAccolade Peak VHDLPeak VHDL Version4", or launch it from the icon on the screen. 2. On VHDL package go to "FileNew Project" 3. The "New Project" window appears, go to "FileSave Project As". (Save as "A:Halfadd.acc"). Half add is the name of the project and A is the directory where the project will be stored. A can be C:temp or any other location; you have to remember where you store your work. 4. Click "FileNew Module". 5. Click "Module Wizard". (Leaving the "Add New Module To Project" box, checked!) 6. Enter Entity Name: "HA". 7. Enter Architecture Name: "HA_ARC". 8. Enter Port Name: "A", Mode: "in", Type: "std-logic". 9. Click "Add Port". 10. Repeat steps 8 & 9, changing the 'Mode' accordingly, until all entity ports are accounted for. 11. Click "Create", and save as "A:Ha.vhd". A screen appears showing the information you already entered including the name and location of the module. 12. Edit "Ha.vhd". Enter YOUR Name & Project Name in the comment lines at top of file. Delete Extra lines of code not needed by YOUR project. (Clock, Reset, etc.) Insert necessary lines of code into YOUR project. 13. Click "FileSave module". 14. Minimize "Ha.vhd" file and highlight the "Ha.vhd" Module on the "Project" window.
  25. 25. 15. Click the "Compile" Button. 16. If compilation errors occur, correct the errors and repeat step 15 until compilation is successful. 17. Once Project compiles properly, a TEST file will be needed to simulate the VHDL program. 18. Click "FileRebuild Heirarchy" 19. Highlight "Ha.vhd" in the "Project" window. 20. Click "FileNew Module". 21. Click "Test Bench Wizard". (Leaving the "Add New Module To Project" box, checked!) 22. If you followed the above steps properly, the "Entity Name" should already be "HA". 23. Change "Architecture Name" to "HA_ARC". 24. All the "Port" information should be correct also. If this information did not appear you have to enter it manually. 25. Click "Create". 26. Save file as "A:Test-HA.vhd". 27. Delete Extra lines of code not needed by YOUR project. (Clock section, signal done: boolean : = false, Resets, etc.) 28. Insert necessary Test lines of code into YOUR project. 29. (A <= '0' ; B <= 'O'; wait for Period;) 30. Click "FileSave". 31. Minimize "Test Ha.vhd" file and highlight the "Test Ha.vhd" Module in the "Project" window. 32. Click the "Compile" Button.
  26. 26. 33. If compilation errors occur, correct the errors and repeat step 32 until compilation is successful. 34. Once Project compiles properly, a SIMULATION of the logic needs to be done. 35. Click "FileRebuild Heirarchy". 36. Highlight "Test-Ha.vhd" in the "Project" window. 37. Go to "SimulateLoad Selected". 38. Click "Add All"& "Close". 39. Click "Go", & the Wave-Forms appear. If signals match corresponding logic, then program is finished! · NOTES: · To Print the Wave-Forms use the "Landscape" Setting. · You may need to ZOOM out from the Wave-Forms to print entire segment. · Make sure that the "Run to Time", under "SynthesizeOptionSimulate", is long enough to complete the testing of your project.
  27. 27. BIBLIOGRAPHY Information is taken from bellow link: http://www.ece.uvic.ca/ http://virtual-labs.ac.in/ This simulation is run by PEAK-VHDL software.
  28. 28. THANK YOU