Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 Digital Design: An Embedded Systems Approach Using VHDL Chapter 1 Introduction and Methodology Portions of this work are from the book, Digital Design: An Embedded Systems Approach Using VHDL, by Peter J. Ashenden, published by Morgan Kaufmann Publishers, Copyright 2007 Elsevier Inc. All rights reserved. VHDL Digital Design Digital: circuits that use two voltage levels to represent information Logic: use truth values and logic to analyze circuits Design: meeting functional requirements while satisfying constraints Constraints: performance, size, power, cost, etc. Digital Design — Chapter 1 — Introduction and Methodology 2 1 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Design using Abstraction Circuits contain millions of transistors Abstraction How can we manage this complexity? Focus on aspects relevant aspects, ignoring other aspects Don’t break assumptions that allow aspect to be ignored! Examples: Transistors are on or off Voltages are low or high Digital Design — Chapter 1 — Introduction and Methodology 3 VHDL Digital Systems Electronic circuits that use discrete representations of information Discrete in space and time Digital Design — Chapter 1 — Introduction and Methodology 4 2 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Embedded Systems Most real-world digital systems include embedded computers Different functional requirements can be implemented Processor cores, memory, I/O by the embedded software by special-purpose attached circuits Trade-off among cost, performance, power, etc. Digital Design — Chapter 1 — Introduction and Methodology 5 VHDL Binary Representation Basic representation for simplest form of information, with only two states a a a a a switch: open or closed light: on or off microphone: active or muted logical proposition: false or true binary (base 2) digit, or bit: 0 or 1 Digital Design — Chapter 1 — Introduction and Methodology 6 3 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Binary Representation: Example +V switch_pressed Signal represents the state of the switch high-voltage => pressed, low-voltage => not pressed Equally, it represents state of the lamp lamp_lit = switch_pressed Digital Design — Chapter 1 — Introduction and Methodology 7 VHDL Binary Representation: Example +V lamp_enabled sensor lamp_lit dark dark: it’s night time lamp_enabled: turn on lamp at night lamp_lit: lamp_enabled AND dark Logically: day time => NOT lamp_lit Digital Design — Chapter 1 — Introduction and Methodology 8 4 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Basic Gate Components Primitive components for logic design AND gate OR gate 0 1 inverter multiplexer Digital Design — Chapter 1 — Introduction and Methodology 9 VHDL Combinational Circuits Circuit whose output values depend purely on current input values >30°C vat 0 >25°C low level 0 1 buzzer >30°C +V vat 1 >25°C select vat 1 select vat 0 low level Digital Design — Chapter 1 — Introduction and Methodology 10 5 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Sequential Circuits Circuit whose output values depend on current and previous input values Include some form of storage of values Nearly all digital systems are sequential Mixture of gates and storage components Combinational parts transform inputs and stored values Digital Design — Chapter 1 — Introduction and Methodology 11 VHDL Flipflops and Clocks Edge-triggered D-flipflop stores one bit of information at a time rising edge D 1 0 D 1 0 Q 1 0 Q clk clk falling edge Timing diagram Graph of signal values versus time Digital Design — Chapter 1 — Introduction and Methodology 12 6 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Real-World Circuits Assumptions behind digital abstraction ideal circuits, only two voltages, instantaneous transitions, no delay Greatly simplify functional design Constraints arise from real components and real-world physics Meeting constraints ensures circuits are “ideal enough” to support abstractions Digital Design — Chapter 1 — Introduction and Methodology 13 VHDL Integrated Circuits (ICs) Circuits formed on surface of silicon wafer Minimum feature size reduced in each technology generation Currently 90nm, 65nm Moore’s Law: increasing transistor count CMOS: complementary MOSFET circuits +V input Digital Design — Chapter 1 — Introduction and Methodology output 14 7 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Logic Levels Actual voltages for “low” and “high” Example: 1.4V threshold for inputs receiver threshold 1.5V nominal 1.4V threshold 1.0V 0.5V signal with added noise 2.5V logic high threshold 2.0V driven signal 1.5V 1.0V logic low threshold 0.5V Digital Design — Chapter 1 — Introduction and Methodology 15 VHDL Logic Levels TTL logic levels with noise margins signal with added noise 2.5V 2.0V VOH VIH 1.5V driven signal 1.0V VIL 0.5V VOL VOL: output low voltage VOH: output high voltage noise margin noise margin VIL: input low voltage VIH: input high voltage Digital Design — Chapter 1 — Introduction and Methodology 16 8 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Static Load and Fanout Current flowing into or out of an output High: SW1 closed, SW0 open +V R1 SW1 output Low: SW0 closed, SW1 open SW0 R0 Voltage drop across R1 Too much current: VO < VOH Voltage drop across R0 Too much current: VO > VOL Fanout: number of inputs connected to an output determines static load Digital Design — Chapter 1 — Introduction and Methodology 17 VHDL Capacitive Load and Prop Delay Inputs and wires act as capacitors output +V 3.0V R1 R0 tf 2.0V input VOH 1.0V SW1 SW0 tr VOL Cin tr: rise time tf: fall time tpd: propagation delay delay from input transition to output transition Digital Design — Chapter 1 — Introduction and Methodology 18 9 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Other Constraints Wire delay: delay for transition to traverse interconnecting wire Flipflop timing delay from clk edge to Q output D stable before and after clk edge Power current through resistance => heat must be dissipated, or circuit cooks! Digital Design — Chapter 1 — Introduction and Methodology 19 VHDL Area and Packaging Circuits implemented on silicon chips Chips in packages with connecting wires Larger circuit area => greater cost More wires => greater cost Package dissipates heat Packages interconnected on a printed circuit board (PCB) Size, shape, cooling, etc, constrained by final product Digital Design — Chapter 1 — Introduction and Methodology 20 10 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Models Abstract representations of aspects of a system being designed Allow us to analyze the system before building it Example: Ohm’s Law V=I×R Represents electrical aspects of a resistor Expressed as a mathematical equation Ignores thermal, mechanical, materials aspects Digital Design — Chapter 1 — Introduction and Methodology 21 VHDL VHDL VHSIC Hardware Description Language A computer language for modeling behavior and structure of digital systems Electronic Design Automation (EDA) using VHDL Design entry: alternative to schematics Verification: simulation, proof of properties Synthesis: automatic generation of circuits Digital Design — Chapter 1 — Introduction and Methodology 22 11 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Entity Declarations Describes input and outputs of a circuit >30°C >25°C above_30_0 above_25_0 temp_bad_0 or_0a inv_0 or_0b wake_up_0 below_25_0 low level low_level_0 select_mux 0 >30°C >25°C 1 above_30_1 above_25_1 buzzer buzzer temp_bad_1 inv_1 or_1a or_1b +V wake_up_1 select_vat_1 below_25_1 low level low_level_1 Digital Design — Chapter 1 — Introduction and Methodology 23 VHDL Entity Declarations library ieee; use ieee.std_logic_1164.all; entity vat_buzzer is port ( above_25_0, above_30_0, low_level_0 : in std_logic; above_25_1, above_30_1, low_level_1 : in std_logic; select_vat_1 : in std_logic; buzzer : out std_logic ); end entity vat_buzzer; Digital Design — Chapter 1 — Introduction and Methodology 24 12 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Structural Architectures library dld; use dld.gates.all; architecture struct of vat_buzzer is signal below_25_0, temp_bad_0, wake_up_0 : std_logic; signal below_25_1, temp_bad_1, wake_up_1 : std_logic; begin -- components for vat 0 inv_0 : inv (above_25_0, below_25_0); or_0a : or2 (above_30_0, below_25_0, temp_bad_0); or_0b : or2 (temp_bad_0, low_level_0, wake_up_0); -- components for vat 1 inv_1 : inv (above_25_1, below_25_1); or_1a : or2 (above_30_1, below_25_1, temp_bad_1); or_1b : or2 (temp_bad_1, low_level_1, wake_up_1); select_mux : mux2 (wake_up_0, wake_up_1, select_vat_1, buzzer); end architecture struct; Digital Design — Chapter 1 — Introduction and Methodology 25 VHDL Behavioral Architectures architecture behavior of vat_buzzer is begin buzzer <= low_level_1 or (above_30_1 or not above_25_1) when select_vat_1 = '1' else low_level_0 or (above_30_0 or not above_25_0); end architecture behavior; Digital Design — Chapter 1 — Introduction and Methodology 26 13 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Design Methodology Simple systems can be design by one person using ad hoc methods Real-world systems are design by teams Require a systematic design methodology Specifies Tasks to be undertaken Information needed and produced Relationships between tasks dependencies, sequences EDA tools used Digital Design — Chapter 1 — Introduction and Methodology 27 VHDL A Simple Design Methodology Requirements and Constraints Design Synthesize Physical Implementation Manufacture Functional Verification Post-synthesis Verification Physical Verification Test OK? N Y OK? N Y OK? Y N Digital Design — Chapter 1 — Introduction and Methodology 28 14 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Hierarchical Design Circuits are too complex for us to design all the detail at once Design subsystems for simple functions Compose subsystems to form the system Treating subcircuits as “black box” components Verify independently, then verify the composition Top-down/bottom-up design Digital Design — Chapter 1 — Introduction and Methodology 29 VHDL Hierarchical Design Architecture Design Unit Design Design Unit Verification Functional Verification OK? N Y OK? Y Integration Verification N N OK? Y Digital Design — Chapter 1 — Introduction and Methodology 30 15 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Synthesis We usually design using register-transferlevel (RTL) VHDL Synthesis tool translates to a circuit of gates that performs the same function Specify to the tool Higher level of abstraction than gates the target implementation fabric constraints on timing, area, etc. Post-synthesis verification synthesized circuit meets constraints Digital Design — Chapter 1 — Introduction and Methodology 31 VHDL Physical Implementation Implementation fabrics Application-specific ICs (ASICs) Field-programmable gate arrays (FPGAs) Floor-planning: arranging the subsystems Placement: arranging the gates within subsystems Routing: joining the gates with wires Physical verification physical circuit still meets constraints use better estimates of delays Digital Design — Chapter 1 — Introduction and Methodology 32 16 Digital Design — Chapter 1 — Introduction and Methodology 6 September 2007 VHDL Codesign Methodology Requirements and Constraints Partitioning Hardware Requirements and Constraints Software Requirements and Constraints Hardware Design and Verification Software Design and Verification N OK? OK? N Manufacture and Test Digital Design — Chapter 1 — Introduction and Methodology 33 VHDL Summary Digital systems use discrete (binary) representations of information Basic components: gates and flipflops Combinational and sequential circuits Real-world constraints logic levels, loads, timing, area, etc VHDL models: structural, behavioral Design methodology Digital Design — Chapter 1 — Introduction and Methodology 34 17