1 / 40

Xilinx/Exemplar Logic FPGA Synthesis Solution

Xilinx/Exemplar Logic FPGA Synthesis Solution. LeonardoSpectrum. Powerful Integrated Modular ASIC & FPGA. Leonardo Spectrum Bundles. LeonardoInsight. ASIC. Giving you a choice!. FlowTabs  provide a step by step process. Leonardo Spectrum User Interface.

Télécharger la présentation

Xilinx/Exemplar Logic FPGA Synthesis Solution

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Xilinx/Exemplar LogicFPGA Synthesis Solution

  2. LeonardoSpectrum Powerful Integrated Modular ASIC & FPGA

  3. Leonardo Spectrum Bundles LeonardoInsight ASIC Giving you a choice!

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

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

  6. 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

  7. Virtex Optimization

  8. Pipeline Multipliers • New in 1999.1G (now on ftp site) • Supported for Virtex wait until clk'event and clk = '1'; temp1 <= a * b; c <= temp1; • area in slices • area and delay after place and route

  9. 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

  10. 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]; always @(posedge clk) begin if (we == 1’b1) data[addr] = din; addri = addr; end assign dout = data[addri]; endmodule New in v1999.1F Coding Style requires both registered address and data signals

  11. 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

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

  13. 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

  14. 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)

  15. SRL Inference • New in 1999.1f 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

  16. SRL Example Area (slices)Delay (Mhz) previous flow 110 160 srl flow 16 185 % 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;

  17. 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

  18. 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

  19. Virtex Optimization - F5MUX & F6MUX 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. module mux81 (a, sel, o); input [0:7] a; input [0:2] sel; output o; assign o = a[sel]; endmodule

  20. 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

  21. 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

  22. 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.

  23. Design Analysis with LeonardoInsight 2000 In Beta, Release March 2000

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

  25. Hierarchy Schematics Default Schematic Hierarchy Schematic Shows Entire Hierarchical Schematic at once

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

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

  28. Graphical Database Search

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

  30. Managing Hierarchy

  31. A B C A B New C 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 Group {b c} –inst new

  32. A B New C A New Removing Design Hierarchy • Use the “ungroup” command • Will dissolve all hierarchy • Can be done from the design browser ungroup {b c}

  33. Hierarchy Manipulation from Schematics • Hierarchy commands can be executed from schematic viewer • Schematic will automatically update

  34. 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 A Optimization Engine Top B C > Present_design priority_encoder

  35. Module Optimization Optimize Form • 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 Output Form

  36. Virtex Applications

  37. 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 New Appnote available at www.exemplar.com/support/appnotes

  38. Team Design • Blocks optimized separately • Assembly done by Synthesis tool • IO Insertion, Design Analysis and Final Optimization done during synthesis New Appnote available at www.exemplar.com/support/appnotes

  39. 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 www.exemplar.com/support/appnotes

  40. 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

More Related