330 likes | 519 Views
COE 405 Introduction to Digital Design Methodology. Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals. Outline. Welcome to COE 405 Digital System Design Design Space and Evaluation Space Digital System C omplexity
E N D
COE 405Introduction to Digital Design Methodology Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals
Outline • Welcome to COE 405 • Digital System Design • Design Space and Evaluation Space • Digital System Complexity • Design Domains and Levels of Abstractions • Synthesis Process • Design Flow in Verilog • Simulation Process
Welcome to COE 405 • Catalog Description • Review of sequential circuits design and analysis, Data path and control unit design, Design with Hardware Description languages (HDL), Design with Field-Programmable Gate Arrays (FPGAs), Block interfacing. • Prerequisite: COE 202 Logic Design • Instructor Dr. Aiman H. El-Maleh. Room: 22/407-5 Phone: 2811 Email: aimane@ccse.kfupm.edu.sa • Office Hours
Course Objectives & Learning Ouctomes • Course Objectives: • Introduce students to the design methodologies of digital systems with special emphasis on FPGA implementations. • Course Learning Outcomes • Data Path and Control Unit design • Digital systems modeling using hardware description languages (Verilog HDL) • Simulation of digital systems • Synthesis and FPGA implementation of digital systems
Text Book • M. D. Ciletti, “Advanced Digital Design with the Verilog HDL,” (Prentice Hall), 2/e 2010.
Grading Policy • Discussions 5% • Assignments 15% • Quizzes 10% • Midterm 20% (Sat., Nov. 9, 1:30 PM) • Project 25% • Final 25% • Attendance will be taken regularly. • Excuses for officially authorized absences must be presented no later than one week following resumption of class attendance. • Late assignments will be accepted (upto 3 days) but you will be penalized 10% per each late day. • A student caught cheating in any of the assignments will get 0 out of 15%. • No makeup will be made for missing Quizzes or Exams.
Course Content • Introduction to Digital Design Methodology: Review of combinational logic design. Review of Sequential circuit design, Mealy versus Moore Machines, timing constraints, State minimization, State assignment. • Design of a digital system by partitioning it into a Data Path and Control unit: Design of DP and CU, Algorithmic State Machine (ASM) charts. • Introduction to logic design with Verilog: structural models of combinational logic, logic system, design verification and test methodology, propagation delay, truth table models of combinational and sequential logic with Verilog.
Course Content • Logic design with behavioral models of combinational and sequential logic: continuous assignment models, dataflow/RTL models, algorithmic based models. • Synthesis of combinational and sequential logic: Introduction to synthesis, synthesis of combinational logic, synthesis of sequential logic, synthesis of three-state devices and bus interfaces, synthesis of explicit state machines, synthesis of implicit state machines, synthesis of loops. • Design and synthesis of Datapath controllers. Block interfacing • Field Programmable Gate Arrays (FPGAs): FPGA technologies, Verilog based design flows for FPGAs, design and synthesis with FPGAs.
Digital System Design • Realization of a specification subject to the optimization of • Area (Chip, PCB) • Lower manufacturing cost • Increase manufacturing yield • Reduce packaging cost • Performance • Propagation delay (combinational circuits) • Cycle time and latency (sequential circuits) • Throughput (pipelined circuits) • Power dissipation • Testability • Earlier detection of manufacturing defects lowers overall cost • Design time (time-to-market) • Cost reduction • Be competitive
Digital System Design Cycle Design Idea System Specification Behavioral (Functional) Design Pseudo Code, Flow Charts Architecture Design Bus & Register Structure Logic Design Netlist (Gate & Wire Lists) Circuit Design Transistor List Physical Design VLSI / PCB Layout Fabrication & Packaging
Architecture Design Control Unit Data Path Unit
Architecture Design Example • Problem:It is required to design a circuit to add two 8-bit numbers. The design must be as economical as possible in terms of hardware. • 8-bit Addition Possible Solutions: • There are numerous ways to design the above circuit, some of which are listed below. • Use an 8-bit ripple-carry adder • Use an 8-bit carry look-ahead adder. • Use two 4-bit carry look-ahead adders and ripple the carry between stages. • Use a 1-bit adder and perform the addition serially in 8 clock cycles.
Observations • Design involves trade-offs between • Cost • Performance • Testability • Power dissipation • Fault tolerance • Ease of design • Ease of making changes to the design. • Serial is cheap but slow, parallel fastest in terms of performance but most costly. • The different ways we can think of building an 8-bit adder constitutes what is known as designspace (at a particular level of abstraction). • Each method of implementation is called a point in the design space.
Design Space and Evaluation Space • Design space: All feasible implementations of a circuit. • Each design point has values for objective evaluation functions e.g. area. • The multidimensional space spanned by the different objectives is called design evaluation space.
Combinational Circuit Design Space Example • Implement f = p q r s with 2-input or 3-input AND gates. • Area and delay proportional to number of inputs.
Digital System Complexity • Moore’s Law: Number of transistors that can be packed on a chip doubles every 18 months while the price stays the same.
How to Deal with DesignComplexity? • Hierarchy: structure of a design at different levels of description. • Abstraction: hiding the lower level details. • Design Hierarchy: • 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
Bottom – UP Top – Down Design Hierarchy
Abstractions • An Abstraction is a simplified model of some Entity which hides certain amount of the Internal details of this Entity • Lower Level abstractions give more details of the modeled Entity. • Several levels of abstractions (details) are commonly used: • System Level • Chip Level • Register Level • Gate Level • Circuit (Transistor) Level • Layout (Geometric) Level More Details (Less Abstract)
Design Domains & Levels of Abstraction • Designs can be expressed / viewed in one of three possible domains • Behavioral Domain (Behavioral View ) • Structural/Component Domain (Structural View ) • Physical Domain (Physical View ) • A design modeled in a given domain can be represented at several levels of abstraction (Details).
Three Abstraction Levels of Circuit Representation • Architectural level • Operations implemented by resources. • Logic level • Logic functions implemented by gates. • Geometrical level • Devices are geometrical objects.
Design Methods • Full custom • Maximal freedom • High performance blocks • Slow • Semi-custom • Gate Arrays • Mask Programmable (MPGAs) • Field Programmable (FPGAs)) • Standard Cells • Silicon Compilers & Parametrizable Modules (adder, multiplier, memories)
Design vs. Synthesis • Synthesis • Process of transforming H/W from one level of abstraction to a lowerone. • Synthesis may occur at many different levels of abstraction • Behavioral or High-level synthesis • Logic synthesis • Layout synthesis • Design • A Sequence of synthesis steps down to a level of abstraction which is manufacturable.
Circuit Synthesis • Architectural-level synthesis • Determine the macroscopic structure • Interconnection of major building blocks. • Logic-level synthesis • Determine the microscopic structure • Interconnection of logic gates. • Geometrical-level synthesis (Physical design) • Placement and routing. • Determine positions and connections.
Circuit Synthesis • We usually design using register-transfer-level (RTL) Verilog • Higher level of abstraction than gates • Synthesis tool translates to a circuit of gates that performs the same function • Specify to the tool • the target implementation fabric • constraints on timing, area, etc. • Post-synthesis verification • synthesized circuit meets constraints
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
HardwareDescriptionLanguages • HDLs are used to describe the hardware for the purpose of modeling, simulation, testing, design, and documentation. • Modeling: behavior, flow of data, structure • Simulation: verification and test • Design: synthesis • Two widely-used HDLs today • VHDL: VHSIC (Very High Speed Integrated Circuit ) Hardware Description Language (IEEE standard) • Verilog(from Cadence, now IEEE standard)
Design Automation & CAD Tools • Design Entry (Description) Tools • Schematic Capture • Hardware Description Language (HDL) • Simulation (Design Verification) Tools • Simulators (Logic level, Transistor Level, High Level Language “HLL”) • Synthesis Tools • Formal Verification Tools • Design for Testability Tools • Test Vector Generation Tools
Design Flow in Verilog • Define the design requirements • Describe the design in Verilog • Top-down, hierarchical design approach • Code optimized for synthesis or simulation • Simulate the Verilog source code • Early problem detection before synthesis • Synthesize, optimize, and fit (place and route) the design for a device • Synthesize to equations and/or netlist • Optimize equations and logic blocks subject to constraints • Fit into the components blocks of a given device • Simulate the post-layout design model • Check final functionality and worst-case timing • Program the device (if PLD) or send data to ASIC vendor