Topics. Midterm Finish Chapter 7

Similar documents
Topics. Midterm Finish Chapter 7

Xilinx ASMBL Architecture

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

EEL 4783: HDL in Digital System Design

HDL Coding Style Xilinx, Inc. All Rights Reserved

FPGA architecture and design technology

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Field Programmable Gate Array (FPGA)

ECE 545 Lecture 12. FPGA Resources. George Mason University

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis

Homework deadline extended to next friday

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Basic FPGA Architecture Xilinx, Inc. All Rights Reserved

ECE 645: Lecture 1. Basic Adders and Counters. Implementation of Adders in FPGAs

! Program logic functions, interconnect using SRAM. ! Advantages: ! Re-programmable; ! dynamically reconfigurable; ! uses standard processes.

TSEA44 - Design for FPGAs

Verilog for High Performance

CDA 4253 FPGA System Design Op7miza7on Techniques. Hao Zheng Comp S ci & Eng Univ of South Florida

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

ELCT 501: Digital System Design

PINE TRAINING ACADEMY

Block RAM. Size. Ports. Virtex-4 and older: 18Kb Virtex-5 and newer: 36Kb, can function as two 18Kb blocks

Review from last time. CS152 Computer Architecture and Engineering Lecture 6. Verilog (finish) Multiply, Divide, Shift

Writing Circuit Descriptions 8

Digital Integrated Circuits

Virtex-II Architecture

INTRODUCTION TO FPGA ARCHITECTURE

Altera FLEX 8000 Block Diagram

Digital Design with FPGAs. By Neeraj Kulkarni

EE178 Lecture Module 2. Eric Crabill SJSU / Xilinx Fall 2007

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Lecture 12 VHDL Synthesis

ECE 551: Digital System *

Hardware Description Language VHDL (1) Introduction

ECE 448 Lecture 5. FPGA Devices

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control

VHDL for Synthesis. Course Description. Course Duration. Goals

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

FPGA Architecture Overview. Generic FPGA Architecture (1) FPGA Architecture

Introduction to Field Programmable Gate Arrays

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4)

Chapter 9: Sequential Logic Modules

ECEN 468 Advanced Logic Design

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

The Virtex FPGA and Introduction to design techniques

A Brief Introduction to Verilog Hardware Definition Language (HDL)

Advanced High-level HDL Design Techniques for Programmable Logic

VHX - Xilinx - FPGA Programming in VHDL

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified.

Field Programmable Gate Array

Verilog for Synthesis Ing. Pullini Antonio

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

HDLs and SystemVerilog. Digital Computer Design

CprE 583 Reconfigurable Computing

EECS150 - Digital Design Lecture 4 - Verilog Introduction. Outline

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

ECE 699: Lecture 9. Programmable Logic Memories

N-input EX-NOR gate. N-output inverter. N-input NOR gate

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013

MCMASTER UNIVERSITY EMBEDDED SYSTEMS

Readings: Storage unit. Can hold an n-bit value Composed of a group of n flip-flops. Each flip-flop stores 1 bit of information.

Digital Design with SystemVerilog

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007

Course Topics - Outline

Exp#8: Designing a Programmable Sequence Detector

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Digital Design (VIMIAA01) Introduction to the Verilog HDL

CAD for VLSI Design - I. Lecture 21 V. Kamakoti and Shankar Balachandran

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

VERILOG: FLIP-FLOPS AND REGISTERS

ECE 545: Lecture 11. Programmable Logic Memories

Announcements. Midterm 2 next Thursday, 6-7:30pm, 277 Cory Review session on Tuesday, 6-7:30pm, 277 Cory Homework 8 due next Tuesday Labs: project

ECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs

Chapter 5 Registers & Counters

Luleå University of Technology Kurskod SMD098 Datum Skrivtid

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

ECE 2300 Digital Logic & Computer Organization. More Finite State Machines

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices

Last Lecture. Talked about combinational logic always statements. e.g., module ex2(input logic a, b, c, output logic f); logic t; // internal signal

FPGA for Software Engineers

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

EE260: Digital Design, Spring 2018

VHDL And Synthesis Review

EE178 Lecture Verilog FSM Examples. Eric Crabill SJSU / Xilinx Fall 2007

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

Behavioral Modeling and Timing Constraints

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign

The DSP Primer 8. FPGA Technology. DSPprimer Home. DSPprimer Notes. August 2005, University of Strathclyde, Scotland, UK

CS Digital Systems Project Laboratory

ECE 4514 Digital Design II. Spring Lecture 13: Logic Synthesis

Transcription:

Lecture 9

Topics Midterm Finish Chapter 7

Xilinx FPGAs

Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice contains two Look Up Tables (LUTs) Implements logic functions Can be configured as 16x1 memory (RAM16) Can be configured as a 16-bit shift register (SRL16) Each slice contains two storage elements Implements flip flops or latches

Spartan 3E Architecture LUTs in SLICEM can be programmed as distributed 16x1 RAM Can be configured to store larger amounts 16x4, 32x2, 64x1 in one CLB Can also be configured as dual port using two LUTs Same data written to both 16x1 memories Independent read addresses and outputs

Spartan 3E Architecture

Spartan 3E Architecture LUTs The F and G LUTs in a slice have four logic inputs (A1-A4) and a single output (D). Any four variable Boolean logic operation can be implemented using one LUT.

Spartan 3E Architecture

Spartan 3E Architecture Wide Multiplexer Each slice has two mutliplexers F5MUX multiplexes the two LUTs in a slice. FiMUX multiplexes the two CLB inputs See figure 20 of Spartan 3E datasheet for feedback routing

Spartan 3E Architecture Carry and Arithmetic Logic Full Adder Cin A B Sum Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0

Spartan 3E Architecture Multiplication Useful for small multipliers Use dedicated 18x18 multiplier blocks for larger

Spartan 3E Architecture Storage Elements Programmable as either a D-type FF or latch

Sequential Logic (i.e. Registers, FF s) Reset always @(posedge CLK or posedge RST) if (RST) Q <= 1'b0; else Q <= (F G H) & (A (B & C & D & E)); More difficult timing analysis Less than optimal optimization by the synthesis tool

Sequential Logic (i.e. Registers, FF s) Reset (cont.) always @(posedge CLK) if (RST) Q <= 1'b0; else Q <= (F G H) & (A (B & C & D & E));

Spartan 3E Architecture Shift Registers Each SLICEM LUT can be programmed as a 16-bit shift register Delay data from 1 to 16 clock cycles w/o using FFs. Can cascade to form larger shift registers The four SLICEM LUTs of a CLB can be combined to produce a 64 bit shift register The CLB FF can be used for one more shift delay

Instantiation of Design Elements Inferred always @(I0 or I1 or S) begin if (S==0) O = I0; else O = I1; Explicit MUXF5 MUXF5_inst (.O(O), // Output of MUX to general routing.i0(i0), // Input (tie directly to the output of LUT4).I1(I1), // Input (tie directly to the output of LUT4).S(S) // Input select to MUX Library guide for MUXF5 recommends inferred but some design elements can only be explicitly instantiated (e.g. KEEPER)

Initialization Set, Resets, and Synthesis Optimization Xilinx FPGA devices have abundant flip-flops. All architectures support an asynchronous reset for those registers and latches. Even though this capability exists, Xilinx does not recommend that you code for it. Using asynchronous resets may result in: More difficult timing analysis Less optimal optimization by the synthesis tool The timing hazard which an asynchronous reset poses on a synchronous system is well known. Less well known is the optimization trade-off which the asynchronous reset poses on a design. Global Set/Reset (GSR) All Xilinx FPGA devices have a dedicated asynchronous reset called Global Set/Reset (GSR). GSR is automatically asserted at the end of FPGA configuration, regardless of the design. For gate-level simulation, this GSR signal is also inserted to mimic this operation to allow accurate simulation of the initialized design as it happens in the silicon. Adding another asynchronous reset to the actual code only duplicates this dedicated feature. It is not necessary for device initialization or simulation initialization. Source: Xilinx Synthesis and Simulation Deign Guide (UG626)

Initialization Initial State of the Registers and Latches FPGA flip-flops are configured as either preset (asynchronous set) or clear (asynchronous reset) during startup. This is known as the initialization state, or INIT. The initial state of the register can be specified as follows: If the register is instantiated, it can be specified by setting the INIT generic/parameter value to either a 1or 0, depending on the desired state. For more information, see the Libraries Guides. If the register is inferred, the initial state can be specified by initializing the VHDL signal declaration or the Verilog reg declaration as shown in the following coding examples. Initial State of the Registers and Latches Verilog Coding Example One reg register1 = 1 b0; // specifying regsiter1 to start as a zero reg register2 = 1 b1; // specifying register2 to start as a one reg [3:0] register3 = 4 b1011; //specifying INIT value for 4-bit register Initial State of the Registers and Latches Verilog Coding Example Two Another possibility in Verilog is to use an initial statement: reg [3:0] register3; initial begin register3= 4 b1011; end Note: Not all synthesis tools support this initialization Note: Your simulation will match your implementation if you use this coding style. Otherwise your simulation will initialize registers to X whereas the registers will initialize to 0 on the FPGA. Source: Xilinx Synthesis and Simulation Deign Guide (UG626)

Homework 7.9 7.11 7.12 7.13