Lecture 1 Design Hierarchy Chapter 1 Digital System Design Flow 1. Register-Transfer Levl (RTL) – e.g. VHDL/Verilog 2. Gate Level Design 3. Circuit Level Design 4. Physical Layout Verilog • Include a set of 26 predefined functional models of common combinational logic gates called primitives. • Primitives – The most basic functional objects that can be used to compose a design – Are built into the language by means of internal truth tables – Examples: and, nand, or, nor, xor, xnor More on Primitives • 3-input nand primitive – Input signal a, b, and c – Output signal y • Each primitive has ports (corresponding to hardware pins and terminals) – The output port(s) of a primitive must be first in the list, followed by the primitive’s input ports. Instantiated Primitives • Instantiated Primitives (nor, and,nand) are connected by wires. • A wire is a data-type which is used to establish connectivity in a design, just as a physical wire establishes connectivity between gates. Example: a Full Adder • Binary Addition • Gate-Level Synthesis • Verilog Representation Binary Addition (1) Binary Addition (2) Derivation of ∑ B A ∑ 0 0 0 1 0 1 0 1 1 1 1 0 Question: What primitive best implements ∑? • Inputs: A, B • Outputs: xor (∑, A, B) Derivation of Carry Out B A Co 0 0 0 1 0 0 0 1 0 1 1 1 Question: What primitive best implements Co? • Inputs: A, B • Outputs: and (Co, A, B) A Half Adder A half adder is useful for adding LSB. Limitation of a Half Adder A half-adder does not account for carry-in. Truth Table of ∑ of a Full Adder Cin+B+A=Cin+∑HA=Cin XOR ∑HA Cin B A ∑ 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 Identical to ∑ of a Half Adder Truth Table of Co of a Full Adder Cin B A Co 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Identical to ∑ of a Half Adder Use a Half Adder with Cin and ∑HA to generate Co Schematic of a Full Adder A 3 bit parallel adder Gate Level vs. Verilog Model of a Full Adder Explanation • The keywords module and endmodule encapsulate the text that describes the module • The module name is Add_full • Module Ports are – Input a, b, c_in – Output c_out, sum • Module instances: Add_half, or Nested Module • Add_half is a child module of Add_full Gate Level Design • Basic Gates – AND, NAND,OR, NOR, XOR, XNOR,NOT • Universal Gates – NAND Gates – NOR Gates • Multiple Inputs Logic Gates NAND Based Logic Gates NOR Based Logic Gates Multiple Inputs Logic Gates Circuit Level Physical Design • Floor Planning – Estimates of the area of major units in the chip and defines their relative placements. – Estimate wire lengths and wring congestions. – Challenge: estimate the size of each unit without proceeding through a detailed design of the chip. • Layout • Design Verification • Tapeout A Sample Floor Plan λ= ½ of minimum channel length A Sample Layout Layout of an Inverter In a 0.6 um process 4/2=1.2 um/0.6 um. Design Verification • LVS (Layout vs. Schematic) checks that transistors in a layout are connected in the same way as in the circuit schematic. • DRC (Design Rule Checkers) verify that the layout satisfies design rules. • ERC (Electrical Rule Checkers) scan for problems such as noise or premature wearout. Tapeout • Tapeout gets its name from the old practice of writing a specifications of masks to a magnetic tape. • GDS • Foundries: – TSMC – UMC – IBM Fabricated Chip IC Decapsulation Cross Section IC Chip Wire Bond Silver- Epoxy Dielectric Top Metal Trace Via package material (plastic) Ball Bottom Metal Trace Low Cost Package 1 7 12 •Red: Top layer trace •Green: Via •Blue: Bottom layer trace Package Parasitics