Embedded Systems Design with Platform FPGAs

Similar documents
Lecture 5: Gate Logic Logic Optimization

CHAPTER 3 Boolean Algebra and Digital Logic

ECE232: Hardware Organization and Design. Part 3: Verilog Tutorial. Basic Verilog

Chapter 7 Memory and Programmable Logic

Gates, Circuits, and Boolean Algebra

ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path

Chapter 2 Logic Gates and Introduction to Computer Architecture

9/14/ :38

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

Introduction to Programmable Logic Devices. John Coughlan RAL Technology Department Detector & Electronics Division

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: ext: Sequential Circuit

Introduction. Jim Duckworth ECE Department, WPI. VHDL Short Course - Module 1

Lecture 8: Synchronous Digital Systems

Layout of Multiple Cells

ECE124 Digital Circuits and Systems Page 1

1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1.

The components. E3: Digital electronics. Goals:

Modeling Latches and Flip-flops

Lab 1: Introduction to Xilinx ISE Tutorial

VHDL GUIDELINES FOR SYNTHESIS

Introduction to Digital System Design

ECE 3401 Lecture 7. Concurrent Statements & Sequential Statements (Process)

COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17

Quartus II Introduction for VHDL Users

Using Xilinx ISE for VHDL Based Design

Delay Characterization in FPGA-based Reconfigurable Systems

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

NAME AND SURNAME. TIME: 1 hour 30 minutes 1/6

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic

LAB #4 Sequential Logic, Latches, Flip-Flops, Shift Registers, and Counters

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule

Sistemas Digitais I LESI - 2º ano

DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev Key Design Features. Block Diagram. Generic Parameters.

NEW adder cells are useful for designing larger circuits despite increase in transistor count by four per cell.

The MOSFET Transistor

ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT

Here we introduced (1) basic circuit for logic and (2)recent nano-devices, and presented (3) some practical issues on nano-devices.

Implementation of Web-Server Using Altera DE2-70 FPGA Development Kit

Open Flow Controller and Switch Datasheet

7a. System-on-chip design and prototyping platforms

A New Paradigm for Synchronous State Machine Design in Verilog

Memory Elements. Combinational logic cannot remember

路 論 Chapter 15 System-Level Physical Design

FPGA. AT6000 FPGAs. Application Note AT6000 FPGAs. 3x3 Convolver with Run-Time Reconfigurable Vector Multiplier in Atmel AT6000 FPGAs.

Digital Electronics Detailed Outline

Chapter 10 Advanced CMOS Circuits

Designing Digital Circuits a modern approach. Jonathan Turner

Sequential 4-bit Adder Design Report

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

SEQUENTIAL CIRCUITS. Block diagram. Flip Flop. S-R Flip Flop. Block Diagram. Circuit Diagram

CNC FOR EDM MACHINE TOOL HARDWARE STRUCTURE. Ioan Lemeni

Lesson 12 Sequential Circuits: Flip-Flops

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad

Fault Modeling. Why model faults? Some real defects in VLSI and PCB Common fault models Stuck-at faults. Transistor faults Summary

Seeking Opportunities for Hardware Acceleration in Big Data Analytics

GETTING STARTED WITH PROGRAMMABLE LOGIC DEVICES, THE 16V8 AND 20V8

CMOS Binary Full Adder

Finite State Machine Design and VHDL Coding Techniques

DEPARTMENT OF INFORMATION TECHNLOGY

Memory Systems. Static Random Access Memory (SRAM) Cell

Modeling Registers and Counters

Having read this workbook you should be able to: recognise the arrangement of NAND gates used to form an S-R flip-flop.

Design and Verification of Nine port Network Router

Multiplexers Two Types + Verilog

Upon completion of unit 1.1, students will be able to

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE

Digital Design with VHDL

1. Memory technology & Hierarchy

So far we have investigated combinational logic for which the output of the logic devices/circuits depends only on the present state of the inputs.

Microprocessor & Assembly Language

Power Reduction Techniques in the SoC Clock Network. Clock Power

Chapter 9 Latches, Flip-Flops, and Timers

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems

EE360: Digital Design I Course Syllabus

Let s put together a Manual Processor

Computer organization

Field-Effect (FET) transistors

SDLC Controller. Documentation. Design File Formats. Verification

A Verilog HDL Test Bench Primer Application Note

The 104 Duke_ACC Machine

Lecture 10 Sequential Circuit Design Zhuo Feng. Z. Feng MTU EE4800 CMOS Digital IC Design & Analysis 2010

REC FPGA Seminar IAP Seminar Format

Lecture 12: More on Registers, Multiplexers, Decoders, Comparators and Wot- Nots

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

CS 61C: Great Ideas in Computer Architecture Finite State Machines. Machine Interpreta4on

Lab 1: Full Adder 0.0

Digital Systems Design! Lecture 1 - Introduction!!

VHDL Test Bench Tutorial

Counters and Decoders

CONTENTS PREFACE 1 INTRODUCTION 1 2 NUMBER SYSTEMS AND CODES 25. vii

We r e going to play Final (exam) Jeopardy! "Answers:" "Questions:" - 1 -

What is a System on a Chip?

Digital Design and Synthesis INTRODUCTION

Digital Electronics Part I Combinational and Sequential Logic. Dr. I. J. Wassell

Transcription:

Embedded Systems Design with Platform FPGAs Principles & Practices Ron Sass and Andrew G. Schmidt http://www.rcs.uncc.edu/ rsass University of North Carolina at Charlotte Spring 20 Embedded Systems Design with Platform FPGAs / 7

C h a p t e r 2 T h e T a r g e t Embedded Systems Design with Platform FPGAs 2/ 7

Chapter 2 Learning Objectives Topics from transistors to programmable logic to Platform FPGAs writing VHDL for Platform FPGAs Platform FPGA properties from HDL to a bitstream Embedded Systems Design with Platform FPGAs 3/ 7

Big Picture a little knowledge can be a very bad thing often, a very reasonable and legitimate specification written in an HDL language produces a horrible FPGA design despite the efforts of many very talented researchers, high-level synthesis is imperfect real-world consequence: write HDL idiomatically make conscious effort to think about the end result: when I write this... the synthesis tool sees this... and, ultimately, this is what is implemented... Result: must have intimate details of FPGAs structures Embedded Systems Design with Platform FPGAs 4/ 7

Transistors FPGAs rely up CMOS transistors important to understand their construct and functionality improves design decisions making for better designs NMOS/PMOS/CMOS transistors Embedded Systems Design with Platform FPGAs 5/ 7

Transistors focus on use as a voltage-controlled switch Metal Oxide Semiconductor Field Effect Transistor (MOSFET) created from 2-D regions in a slab of silicon substrate constructed with excess of positive or negative charge a layer of silicon dioxide placed over substrate to insulate it from metal layer placed above silicon dioxide Embedded Systems Design with Platform FPGAs 6/ 7

N-Channel MOSFET Source Gate Drain Drain Gate (a) (a) an NMOS transistor in silicon substrate (b) schematic of NMOS transistor (b) Source Embedded Systems Design with Platform FPGAs 7/ 7

N-Channel MOSFET V DD V DD V DD V DD Output A Output Input Output Input Input Input Input Input (a) (b) (c) an NMOS (a) NAND gate (b) NOR gate (c) AND gate Embedded Systems Design with Platform FPGAs 8/ 7

P-Channel MOSFET Source Gate Drain Drain Gate (a) (a) an PMOS transistor in silicon substrate (b) schematic of PMOS transistor (b) Source Embedded Systems Design with Platform FPGAs 9/ 7

Inverter V DD Output Input schematic symbol of an NMOS inverter Embedded Systems Design with Platform FPGAs 0/ 7

Complimentary MOS (CMOS) Transistor combine NMOS and PMOS transistor in steady-stead no appreciable current is flowing rule-of-thumb: most energy in a design is consumed when a CMOS gate is changing state Embedded Systems Design with Platform FPGAs / 7

CMOS NAND V DD Output Input Input simple CMOS NAND circuit Embedded Systems Design with Platform FPGAs 2/ 7

Programmable Logic Devices p- and n-type location/functionality fixed at fabrication how to build devices to be configured after fabrication? need a structure capable of implementing arbitrary combinational circuits, a storage cell (memory), and a mechanism to connect these resources. Embedded Systems Design with Platform FPGAs 3/ 7

Programmable Logic Arrays sum-of-products formulation of a Boolean function array of multi-input AND gates array of multi-input OR gates device programmed by breaking unwanted connections at the inputs to the AND and OR gates for manufacturing reasons, approach fell out of favor Embedded Systems Design with Platform FPGAs 4/ 7

Programmable Logic Devices PLA device organization Embedded Systems Design with Platform FPGAs 5/ 7

Programmable Logic Arrays PLA functionality increased to include: memory elements, such as D-type Flip-Flops a MUX Embedded Systems Design with Platform FPGAs 6/ 7

Programmable Logic Devices Adding storage to a PLA logic cell: From PAL array CLK D Q Select Embedded Systems Design with Platform FPGAs 7/ 7

Complex Programmable Logic Devices PLAs with routing networks: Switch Box Switch Box Switch Box Embedded Systems Design with Platform FPGAs 8/ 7

Field-Programmable Gate Array Modern FPGA consists of: a 2-D array of programmable logic blocks, fixed-function blocks, and routing resources implemented in CMOS technology Embedded Systems Design with Platform FPGAs 9/ 7

Field-Programmable Gate Array Function generators Embedded Systems Design with Platform FPGAs 20/ 7

Function Generators Example x y z xy z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x y z SRAM Cells 0 0 0 0 2 3 4 5 6 7 8-to- MUX (a) (b) 3-input function generator in (A) truth table and (B) look-up table form for f (x, y, z) = xy + z l s b m s b f Embedded Systems Design with Platform FPGAs 2/ 7

Function Generators To generalize, basic n-input function generator consists of: a 2 n -to- multiplexer (MUX) 2 n SRAM (static random access memory) cells i.e. a 3-LUT is a 3-input function generator 4-LUTs and 6-LUTs are more common (3-LUTs are easier to draw by hand!) Embedded Systems Design with Platform FPGAs 22/ 7

Function Generators What about more complex functions? use multiple LUTs function decomposed into sub-functions sub-function has subset of inputs each sub-function assigned to one LUT LUTs combined via routing resources to form function Embedded Systems Design with Platform FPGAs 23/ 7

Field-Programmable Gate Array To configure the FPGA: Embedded Systems Design with Platform FPGAs 24/ 7

Storage Elements Most circuits need: function generators (LUTs) storage elements (flip-flops) Can now create sequential circuits! Embedded Systems Design with Platform FPGAs 25/ 7

Logic Cells A logic cell combines: Embedded Systems Design with Platform FPGAs 26/ 7

Logic Cells low-level building block upon which FPGA designs are built combinational/sequential logic built from logic cells used to compare capacity of different FPGA devices slice Embedded Systems Design with Platform FPGAs 27/ 7

Logic Blocks A logic block combines: Configurable Logic Block Embedded Systems Design with Platform FPGAs 28/ 7

Logic Blocks A switch box is: Embedded Systems Design with Platform FPGAs 29/ 7

Field-Programmable Gate Array Taken all together, a high-level structure of a simple FPGA: Logic block Logic cell LUT Logic cell LUT FF FF Logic block Logic cell LUT Logic cell LUT FF FF Switch matrix Switch matrix Logic block Logic cell LUT Logic cell LUT FF FF Logic block Logic cell LUT Logic cell LUT FF FF Embedded Systems Design with Platform FPGAs 30/ 7

Special-Purpose Function Blocks FPGAs combine programmable logic with additional resources embedded into FPGA fabric. Why? embedded resources consume less resources embedded resources consume less power embedded resources can operate at a higher frequency Embedded Systems Design with Platform FPGAs 3/ 7

Special-Purpose Function Blocks Such as: Block RAM Digital Signal Processing Blocks Processors Digital Clock Manager Multi-Gigabit Transceivers Embedded Systems Design with Platform FPGAs 32/ 7

Block RAM many designs require use of on-chip memory possible to use using logic cells to build memory elements logic resources quickly consumed as demand grows Block RAM Embedded Systems Design with Platform FPGAs 33/ 7

Digital Signal Processing Blocks Digital signal processing (DSP) quickly consumes resources: implement necessary components in FPGA fabric: multiplier accumulator adder bitwise logical operations (AND, OR, NOT, NAND, etc.) combine DSP blocks to perform larger operations: single/double precision floating point addition, subtraction, multiplication division, and square-root Embedded Systems Design with Platform FPGAs 34/ 7

Processors Simplify designs, reducing resource and power consumption IBM PowerPC 405 and 440 (in Virtex 4 and 5 FX FPGAs, respectively) conventional RISC processors implement PowerPC instruction set no hardware floating point functions level- instruction and data caches memory management unit translation look-aside buffer can connect to FPGA fabric through system bus not all FPGAs have embedded processors Embedded Systems Design with Platform FPGAs 35/ 7

Digital Clock Manager How to support designs with multiple clock domains? Digital Clock Manager (DCM): generate different clocks from a reference clock divide reference clock clocks have lower jitter and phase relationship Embedded Systems Design with Platform FPGAs 36/ 7

Multi-Gigabit Transceivers High Speed Serial Transceivers are devices that: Embedded Systems Design with Platform FPGAs 37/ 7

Platform FPGA Block RAM DSP DCM/PLL/IOBs Processor blocks I/O & IOBs I/O & IOBs Ethernet PCIe MGTs Logic blocks Block RAM DSP Embedded Systems Design with Platform FPGAs 38/ 7

Writing HDL for Platform FPGAs Assume you are moderately familiar with HDL (VHDL or Verilog) Question: how to write HDL for FPGAs? Answer: Carefully! when writing HDL be careful, not everything is synthesizable briefly cover VHDL next Embedded Systems Design with Platform FPGAs 39/ 7

VHSIC Hardware Description Language describe digital circuits major styles of writing VHDL: Structural circuits described as logic/function units (AND/OR/NOT, etc.) and signals Data-Flow type of structural has syntactic support to make expressing Boolean logic easier Behavioral circuits use imperative language to describe how outputs relate to inputs via a process a third style is a mix between structural and behavioral behavioral form of VHDL most convenient for programmers structural is useful for black box designs Embedded Systems Design with Platform FPGAs 40/ 7

VHDL Syntax entity declaration: describes the component s interface followed by one or more declared architectures: the implementation of the interface best to learn by example Embedded Systems Design with Platform FPGAs 4/ 7

-bit Full Adder in VHDL l i b r a r y ieee ; use ieee. std_logic_64. a l l ; e n t i t y fadder is port ( a, b : in s t d _ l o g i c ; c i n : in s t d _ l o g i c ; sum : out s t d _ l o g i c ; cout : out s t d _ l o g i c ) ; end fadder ; architecture beh of fadder is begin sum <= a xor b xor c i n ; cout <= ( a and b ) or ( b and c i n ) or ( a and c i n ) ; end beh ; Embedded Systems Design with Platform FPGAs 43/ 7

2-bit Adder in VHDL (/3) l i b r a r y ieee ; use ieee. std_logic_64. a l l ; e n t i t y f a d d e r 2 b i t is port ( a, b : in std_ logic_ vector ( downto 0 ) ; cin : in std_ logic ; clk : in std_ logic ; r s t : in s t d _ l o g i c ; sum : out std_ logic_ vector ( downto 0 ) ; cout : out s t d _ l o g i c ) ; end fadder2bit ; architecture beh of f a d d e r 2 b i t is 2 b i t Register Declaration for A, B, Sum signal a_reg, b_reg, sum_reg : std_logic_ vector ( downto 0 ) ; b i t Register Declaration for Cin, Cout signal cin_reg, cout_reg : std_ logic ; b i t Internal signal to connect carry out to carry in signal carry_tmp : std_ logic ; b i t Full Adder Component Declaration component fadder is port ( a, b : in std_ logic ; cin : in std_ logic ; sum : out std_ logic ; cout : out std_ logic ) ; end component fadder ; Embedded Systems Design with Platform FPGAs 44/ 7

2-bit Adder in VHDL (2/3) begin VHDL Process to Register Inputs A, B and Cin r e g i s t e r _ p r o c : process ( c l k ) is begin i f ( ( clk event ) and ( c l k = ) ) then Synchronous Reset i f ( r s t = ) then I n i t i a l i z e I n p u t Registers a_reg <= " 00 " ; b_reg <= " 00 " ; cin_reg <= 0 ; I n i t i a l i z e Outputs sum <= " 00 " ; cout <= 0 ; else Register Inputs a_reg <= a ; b_reg <= b ; cin_reg <= cin ; Register Outputs sum <= sum_reg ; cout <= cout_reg ; end i f ; end i f ; end process register_ proc ; Embedded Systems Design with Platform FPGAs 45/ 7

2-bit Adder in VHDL (3/3) I n s t a n t i a t e B i t of F u l l Adder fa : fadder port map ( a => a_reg ( ), b => b_reg ( ), cin => carry_tmp, sum => sum_reg ( ), cout => cout_reg ) ; I n s t a n t i a t e B i t 0 of F u l l Adder fa0 : fadder port map ( a => a_reg ( 0 ), b => b_reg ( 0 ), cin => cin_reg, sum => sum_reg ( 0 ), cout => carry_tmp ) ; end beh ; Embedded Systems Design with Platform FPGAs 46/ 7

Finite State Machines in VHDL useful for a variety of purposes writing style can result in different netlists recommended to follow synthesis guide (i.e. Xilinx Synthesis Technology (XST) User Guide) simple 8-bit Adder with FSM example Embedded Systems Design with Platform FPGAs 47/ 7

8-bit Adder in VHDL with FSM (/4) T r a d i t i o n a l L i b r a r y and Packages used i n a hardware core l i b r a r y ieee ; use ieee. std_logic_64. a l l ; use ieee. s t d _ l o g i c _ a r i t h. a l l ; use ieee. std_logic_unsigned. a l l ; e n t i t y adderfsm is generic ( C_DWIDTH : in n a t u r a l := 8 ) ; port ( a, b : in std_ logic_ vector (C_DWIDTH downto 0 ) ; a_we, b_we : in std_ logic ; clk, r s t : in s t d _ l o g i c ; result : out std_ logic_ vector (7 downto 0 ) ; valid : out std_ logic ) ; end adderfsm ; architecture beh of adderfsm is 8 b i t Register / Next Declaration for A and B signal a_reg, b_reg : std_logic_ vector (7 downto 0 ) ; signal a_next, b_next : std_ logic_ vector (7 downto 0 ) ; F i n i t e State Machine Type D e c l a r a t i o n type FSM_TYPE is ( wait_a_b, wait_a, wait_b, add_a_b ) ; Internal signals to represent the Current State ( fsm_cs ) and the Next State ( fsm_ns ) of the state machine signal fsm_cs : FSM_TYPE := wait_a_b ; signal fsm_ns : FSM_TYPE := wait_a_b ; Embedded Systems Design with Platform FPGAs 48/ 7

8-bit Adder in VHDL with FSM (2/4) begin F i n i t e State Machine Process to Register Signals fsm_register_proc : process ( c l k ) is begin Rising Edge Clock to i n f e r Flip Flops i f ( ( clk event ) and ( c l k = ) ) then Synchronous Reset / Return to I n i t i a l State i f ( r s t = ) then a_reg <= ( others => 0 ) ; b_reg <= ( others => 0 ) ; fsm_cs <= wait_a_b ; else a_reg <= a_next ; b_reg <= b_next ; fsm_cs <= fsm_ns ; end i f ; end i f ; end process fsm_register_proc ; Embedded Systems Design with Platform FPGAs 49/ 7

8-bit Adder in VHDL with FSM (3/4) F i n i t e State Machine Process f o r Combination Logic fsm_logic_proc : process ( fsm_cs, a, b, a_we, b_we, a_reg, b_reg ) is begin I n f e r F l i p Flop r a t h e r than Latches a_next <= a_reg ; b_next <= b_reg ; fsm_ns <= fsm_cs ; case ( fsm_cs ) is State 0: Wait f o r e i t h e r A or B I n p u t denoted by a_we = and / or b_we = when wait_a_b => Clear I n i t i a l Context of Registers / Outputs a_next <= ( others => 0 ) ; b_next <= ( others => 0 ) ; r e s u l t <= ( others => 0 ) ; v a l i d <= 0 ; i f ( ( a_we and b_we ) = ) then a_next <= a ; b_next <= b ; fsm_ns <= add_a_b ; e l s i f (a_we = ) then a_next <= a ; fsm_ns <= wait_b ; e l s i f (b_we = ) then b_next <= b ; fsm_ns <= wait_a ; end i f ; Embedded Systems Design with Platform FPGAs 50/ 7

8-bit Adder in VHDL with FSM (4/4) State : Wait f o r A I n p u t Being in t h i s state means B already arrived when wait_a => r e s u l t <= ( others => 0 ) ; v a l i d <= 0 ; i f ( a_we = ) then a_next <= a ; fsm_ns <= add_a_b ; end i f ; State 2: Wait f o r B I n p u t Being in t h i s state means A already arrive when wait_b => r e s u l t <= ( others => 0 ) ; v a l i d <= 0 ; i f ( b_we = ) then b_next <= b ; fsm_ns <= add_a_b ; end i f ; State 3: Perform Add Operation and r e t u r n to wait_a_b when add_a_b => result <= a_reg + b_reg ; v a l i d <= ; fsm_ns <= wait_a_b ; end case ; end process fsm_logic_proc ; end beh ; Embedded Systems Design with Platform FPGAs 5/ 7

Sequential Logic Diagram Input signals Combinational logic function VHDL: fsm_logic_proc R E G Registered output signals Unregistered output signals State register function fsm_cs signal fsm_ns signal VHDL: fsm_register_proc Embedded Systems Design with Platform FPGAs 52/ 7

From HDL to Bitstream Overview of process: synthesis the process of generating the logic configuration for the specified device from HDL source netlist is a computer representation of the a collection of logic units and how they are to be connected mapping (also known as map) the process of grouping gates and assigning functionality to FPGA primitives placement after map the next step in the back-end tool flow is to assign the FPGA primitives in the netlist to specific blocks on a particular FPGA Embedded Systems Design with Platform FPGAs 53/ 7

From HDL to Bitstream Overview of process: routing (also known as route) is the process after placement where during which wire segments are selected and passing transistors are set bitgen the process after routing which takes a placed and routed netlist and sets generates a configuration file known as a bitstream that will be used to configure the FPGA device bitstream is the file that includes a header and frames of configuration information needed to set the SRAM cells of the FPGA in order to set the functionality of the device Embedded Systems Design with Platform FPGAs 54/ 7

Xilinx Synthesis Process HDL source (VHDL or verilog).vhd/.v Project file (list of source).prj xst Xilinx netlist.ngc Synthesis script.xst Synthesis report.srp Embedded Systems Design with Platform FPGAs 55/ 7

Xilinx Synthesis Process User constraints file.ucf Standard netlists.edif Xilinx netlist ngd build Xilinx database netlist.ngd map Native circuit description.ncd par Mapped NCD _map.ngd.ngc Build report Relatively-placed (hard) macros.nmc.bld Embedded Systems Design with Platform FPGAs 56/ 7

From HDL to Configuration Bitstream Let s start with an example, consider the Boolean function: f (w, x, y, z) = w + x + yz z y x G0 G G2 f w Embedded Systems Design with Platform FPGAs 57/ 7

From HDL to Configuration Bitstream Circuit expressed in a netlist. Nets describe how the cells are wired up each gate becomes a cell each primitive cell includes: type of gate a name for this cell and a set of ports ports have names and direction complex cells formed with instances of cells and nets hierarchy formed from complex cells with top-level cell encompassing all other cells top-level port cells associated with external pins of FPGA Embedded Systems Design with Platform FPGAs 58/ 7

From HDL to Configuration Bitstream Excerpt of netlist: (edif gates (edifversion 2 0 0) (external UNISIMS (cell LUT4 (celltype GENERIC) (interface (port I0 (direction INPUT) ) (port I (direction INPUT) ) (port I2 (direction INPUT) ) (port I3 (direction INPUT) ) (port O (direction OUTPUT) ) ) ) ) ) Embedded Systems Design with Platform FPGAs 60/ 7

From HDL to Configuration Bitstream Digital circuit to sequence of bits using previous example: with 4-inputs, cannot implement f in a single 3-LUT solution: two 3-LUTs and routing resources f can be decomposed into two functions: f (w, x, y, z) = f 2 (w, f (x, y, z)) f (x, y, z) = x + yz f 2 (w, t) = w + t now f and f 2 can be used to configure two 3-LUTs the output of f is routed to the second input of f 2 Embedded Systems Design with Platform FPGAs 6/ 7

From HDL to Configuration Bitstream Example of a 4-input function mapped to two 3-LUTs: z y x G0 3-LUT G 3-LUT G2 f w o Embedded Systems Design with Platform FPGAs 62/ 7

From HDL to Configuration Bitstream After generating the netlist: mapping after MAP another netlist is generated cells now refer to FPGA primitives (LUTs,FFs, etc.) Embedded Systems Design with Platform FPGAs 63/ 7

From HDL to Configuration Bitstream After MAP: placement our example, f uses two 3-LUTs during placement tools decide which two 3-LUTs to use and add that information to the netlist try to place cells close by for lowest propagation delay routing place and route often combined and called PAR Embedded Systems Design with Platform FPGAs 64/ 7

From HDL to Configuration Bitstream G w (zy) x z y 3LUT FF 3LUT FF x w 0 illustration of f (w, x, y, z) placed and routed Embedded Systems Design with Platform FPGAs 65/ 7

From HDL to Configuration Bitstream After PAR, final step: convert SRAM cell settings into a linear stream of bits imagine all cells arrayed into two dimensions one column might be some 3-LUTs on the chip the column actually is all SRAM cells of 3-LUTs all column s SRAM cells form giant shift register bitgen bitstream Embedded Systems Design with Platform FPGAs 66/ 7

From HDL to Configuration Bitstream 3-LUT 3-LUT n th bit in bitstream 0 0 0 0 st bit in bitstream (n+) th bit Last bit in bitstream Embedded Systems Design with Platform FPGAs 67/ 7

Chapter-In-Review transistors: NMOS,PMOS,CMOS programmable logic devices writing VHDL for Platform FPGAs Platform FPGA properties from HDL to a bitstream Embedded Systems Design with Platform FPGAs 68/ 7

Chapter 2 Terms Embedded Systems Design with Platform FPGAs 69/ 7

Chapter 2 Terms Embedded Systems Design with Platform FPGAs 70/ 7

Chapter 2 Terms Embedded Systems Design with Platform FPGAs 7/ 7