Xilinx/Exemplar Logic FPGA Synthesis Solution. LeonardoSpectrum Powerful Integrated Modular ASIC & FPGA.

Slides:



Advertisements
Similar presentations
What are FPGA Power Management HDL Coding Techniques Xilinx Training.
Advertisements

Basic HDL Coding Techniques
VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Simulation executable (simv)
Spartan-3 FPGA HDL Coding Techniques
Combinational Logic.
Table 7.1 Verilog Operators.
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
Fast FPGA Resource Estimation Paul Schumacher & Pradip Jha Xilinx, Inc.
Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
Useful Things to Know Norm. Administrative Midterm Grading Finished –Stats on course homepage –Pickup after this lab lec. –Regrade requests within 1wk.
The Spartan 3e FPGA. CS/EE 3710 The Spartan 3e FPGA  What’s inside the chip? How does it implement random logic? What other features can you use?  What.
Foundation and XACTstepTM Software
GallagherP188/MAPLD20041 Accelerating DSP Algorithms Using FPGAs Sean Gallagher DSP Specialist Xilinx Inc.
AT94 Training 2001Slide 1 AT40K10 AT40K20 AT40K40 AT40K80 5K-10K10K-20K20K-30K40K-50K80K-100K125K-150K ,0242,3044,0966,400 AT40K Family w/ FreeRAM.
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
© 2003 Xilinx, Inc. All Rights Reserved FPGA Design Techniques.
Xilinx Development Software Design Flow on Foundation M1.5
Xilinx Programmable Logic Design Solutions Version 2.1i Designing the Industry’s First 2 Million Gate FPGA Drop-In 64 Bit / 66 MHz PCI Design.
J. Christiansen, CERN - EP/MIC
FPGA Design Flow Workshop
Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
© 2003 Xilinx, Inc. All Rights Reserved Synchronous Design Techniques.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
Winning with HDL. AGENDA  Introduction  HDL coding techniques  Virtex hardware  Summary.
Programmable Logic Training Course HDL Editor
CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis Aleksandar Milenkovic
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE Presenter: Shu-yen Lin Advisor: Prof. An-Yeu Wu 2005/6/6.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Timing and Constraints “The software is the lens through which the user views the FPGA.” -Bill Carter.
04/06/031 ECE 551: Digital System Design & Synthesis Lecture Set 9 9.1: Constraints and Timing (In separate file) 9.2: Optimization - Part 1 9.3: Optimization.
Tools - Design Entry - Chapter 4 slide 1 FPGA Tools Course Design Entry.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
This material exempt per Department of Commerce license exception TSU Synchronous Design Techniques.
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
What’s New in Xilinx Ready-to-use solutions. Key New Features of the Foundation Series 1.5/1.5i Release  New device support  Integrated design environment.
© 2005 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Synthesis Techniques.
1 Lecture 3: Modeling Sequential Logic in Verilog HDL.
Altera Technical Solutions Seminar Schedule OpeningIntroduction FLEX ® 10KE Devices APEX ™ 20K & Quartus ™ Overview Design Integration EDA Integration.
Xilinx Alliance Series Xilinx/Synopsys Powerful High Density Solutions
INF3430 / 4431 Synthesis and the Integrated Logic Analyzer (ILA) (WORK IN PROGRESS)
Class Exercise 1B.
Advance Skills TYWu.
Lecture 15: Synthesis of Memories in FPGA
Xilinx/Exemplar Logic FPGA Synthesis Solution
Topics HDL coding for synthesis. Verilog. VHDL..
Field Programmable Gate Array
Field Programmable Gate Array
The Xilinx Virtex Series FPGA
SYNTHESIS OF SEQUENTIAL LOGIC
FPGA Tools Course Basic Constraints
FPGA Tools Course Answers
Powerful High Density Solutions
Win with HDL Slide 4 System Level Design
The Xilinx Virtex Series FPGA
THE ECE 554 XILINX DESIGN PROCESS
Optimizing RTL for EFLX Tony Kozaczuk, Shuying Fan December 21, 2016
THE ECE 554 XILINX DESIGN PROCESS
Xilinx Alliance Series
Presentation transcript:

Xilinx/Exemplar Logic FPGA Synthesis Solution

LeonardoSpectrum Powerful Integrated Modular ASIC & FPGA

Leonardo Spectrum Bundles LeonardoInsight Giving you a choice!

Leonardo Spectrum User Interface  FlowTabs  provide a step by step process When the run button isn’t enough! PowerTabs  offer easy access to advanced functionality Leonardo Spectrum GUI

Xilinx Alliance Series LeonardoSpectrum Automatically: Transfers Constraints Creates P & R Script File Runs P & R Xilinx Place and Route Integration

Part of FPGA Advantage Includes all EDA Design Tools Pushbutton Simulation, Synthesis and Place and Route Provides Design Management Cross probes to everything One source for customer support

Virtex Optimization

Pipeline Multipliers  New in G (now on ftp site)  Supported for Virtex wait until clk'event and clk = '1'; temp1 <= a * b; c <= temp1; MultiplierAreaDelay Non-Pipelined Pipelined area in slices area and delay after place and route

Block RAM Inference (RAMB4_S1)  synchronous RAM is inferred as Block  ROMs are not inferred into Block RAM  Both single and Dual port RAMs are supported  Block RAMs include Timing arcs  Can be instantiated  Can infer distributed RAM blocks  1 Mega-bit Block RAM inferred in 20 seconds

Verilog Coding Example module new_ram (clk, we, din, addr, dout); input clk, we; input [7:0] din; input [4:0] addr; output [7:0] dout; reg [4:0] addri; reg [7:0] data[0:31]; clk) begin if (we == 1’b1) data[addr] = din; addri = addr; end assign dout = data[addri]; endmodule Coding Style requires both registered address and data signals New in v1999.1F

Controlling Block RAM Inference  Disable RAM Inference Globally > set extract_ram FALSE  Prevent RAM inference on a single instance > Set_attribute i5 –name block_ram –value false Will not be implemented in slice RAM  RTL Verilog Comment Example Reg [7:0] mem[63:0] //Exemplar attribute mem block_ram FALSE Attribute must be set on the memory storage signal

Slice RAM Inference  Asynchronous RAMs use the CLB RAM element Subtracts from Logic resources Library cells include timing arcs

DLL Cell  Inserted through instantiation  CLK_DIVIDE and DUTY_CYCLE_CORRECTION attributes are propagated to Alliance Series as EDIF properties  DLL cell does not contain timing arcs Clock constraints must be set on internal nets Set_attribute clk_internal –name clock_cycle –value 20 –net

BUFGDLL & BUFGDLLH Cells  Special configurations of DLL  Included in the library as a special type of clock buffer Use PAD command PAD clk BUFGDLL (Appears on wrong pull-down list)

SRL Inference  New in f release Turned on by Default  LUT can be used in place of registers to balance pipeline stages  Area Efficient Optimization  Controlled by 2 variables Set virtex_map_srl TRUE –enables mapping Set virtex_map_srl_pack TRUE –Packs SRL into single slice

SRL Example Area (slices) Delay (Mhz) previous flow srl flow % improvement 85% 16% Area (slices) Delay (Mhz) previous flow srl flow % improvement 85% 16% begin process (clk) begin if clk'event and clk = '1' then int_sig <= input & int_sig(0 to cycle - 2); end if; end process; output <= int_sig(cycle -1); end behav;

Priority Encoders using MUXCY  Used for implementing fast priority encoders up to 10 levels  Available through a variable called map_muxcy (default:true) To disable issue the following command from the tcl window > Set map_muxcy false  Also used for wide address decoders, wide AND gates with bubbled inputs.  Use for Alliance Series 2.1 and later

IOB Support Global IOB Register Inference Set virtex_map_iob_registers variable to TRUE Can be done through GUI on Technology form Tristate Enable Register : Replicates registers for the Tristate pins of IO Bus for fast Tcko. Replicates internal registers driving multiple output ports. Port by Port IOB Register Implementation Set the attribute “IOB” = true on a specific port > set_attribute out_a –name IOB –value TRUE -port

Virtex Optimization - F5MUX & F6MUX module mux81 (a, sel, o); input [0:7] a; input [0:2] sel; output o; assign o = a[sel]; endmodule Advanced Opt Settings  F5 MUX Any function of 5 inputs or some decomposable functions of upto 9 inputs.  F6 MUX Any function of 6 inputs or some decomposable functions of upto 17 inputs Implements upto 8x1 Mux in one CLB.

MULTAND  Any multiplier with non-constant operands uses the MULTAND module mult8x8 (a,b,prod); input [0:7] a; input [0:7] b; output [0:15] prod; assign prod = a * b; endmodule

Registers  Now inferring negative edge registers “_1” versions of cells, FD_1  Inferring synchronous set/reset flops  Inferring asynchronous set/reset flops > Set include_gates FDRS

Counters  All flavors of counters are implemented using 1 LUT per Bit. Loadable Synchronous Set/Reset Up/Down Count enable and clock enables  Exception include Counter with “both” asynchronous and synchronous reset and load signals.

Design Analysis with LeonardoInsight 2000 In Beta, Release March 2000

New Schematic Viewer Integrated Design Browser 10X Run time improvement Interactive to database

Hierarchy Schematics Shows Entire Hierarchical Schematic at once Default SchematicHierarchy Schematic

Critical Path Highlighting Both Filtered and Unfiltered views Constraints and Timing info displayed on Schematic

Fan-in, Fan-out Fragment Views Generate concise fragments of important circuits

Graphical Database Search

Interactive to Database  View connected to active database  Issue interactive commands such as group or don’t_touch  View automatically updated  View connected to active database  Issue interactive commands such as group or don’t_touch  View automatically updated

Managing Hierarchy

Creating Design Hierarchy  Use the Group Command  Will create new level of hierarchy  Original hierarchy will exist at lower level  Use to group area critical or timing critical blocks together  Can also group from the design browser CBA CB A New Group {b c} –inst new

Removing Design Hierarchy  Use the “ungroup” command  Will dissolve all hierarchy  Can be done from the design browser CB A New ungroup {b c} A New

Hierarchy Manipulation from Schematics  Hierarchy commands can be executed from schematic viewer  Schematic will automatically update

Moving Within Hierarchy  Present_design command can “Swap” any module into the Optimizer  Can be used for re-optimization  Can be used to Separate Blocks  All hierarchy blocks can be set to “present_design  Issue command from Design Browser or Schematic Viewer > Present_design priority_encoder B C Top A Optimization Engine

Module Optimization  Cannot be done through Quicksetup  Disable IO Insertion during optimization  Hierarchy may be flattened  Save netlist as “XDB” Exemplar Binary Database No netlist processing is performed Optimize Form Output Form

Virtex Applications

PCI Core Flow  Best PCI Core flow in the industry  No code modifications  Extensive hierarchy & IO buffer control  Can be 100% scripted for single pass optimization  Best PCI Core flow in the industry  No code modifications  Extensive hierarchy & IO buffer control  Can be 100% scripted for single pass optimization New Appnote available at

Team Design  Blocks optimized separately  Assembly done by Synthesis tool  IO Insertion, Design Analysis and Final Optimization done during synthesis New Appnote available at

Incremental Place and Route  Preserved Hierarchy for Incremental Place and Route  LeonardoSpectrum supports Re-opt at block level  Use Guide Files to preserve place and route timing New Appnote available at

Summary  Working with HDL Division to advance Methodology and ease of use  Focused on Optimization Technology  System architect for block based design  Leonardo Spectrum is the Power Tool for Virtex