Xilinx Design Flow © Memec (MG 000-00) 04.01.04 The Integrated Software Environment Design Entry Advanced Design Techniques GNU Embedded Tools ¾Wind River Xilinx Edition ¾Embedded Development Kit ¾IMPACT ¾System ACE Configuration Manager ¾ HDL Edit and Entry ¾System Generator for DSP ¾CORE IP Generator ¾Architecture Wizards ¾ECS Schematic Editor ¾StateCAD State Diagram Editor ¾RTL Checker ¾ Verification Technologies ModelSim Xilinx Edition ¾Static Timing Analyzer ¾ChipScope Pro ¾XPower power estimation ¾Formal Verification support ¾3rd Party HDL simulation ¾ChipViewer ¾FPGA Editor with Probe ¾HDL Bencher testbench generator Synthesis Synplicity Synplify and Synplify Pro ¾Synplicity Amplify physical synthesis ¾MentorGraphics LeonardoSpectrum ¾Mentor Graphics Precision RTL physical synthesis ¾Synopsys FPGA Compiler II ¾Xilinx Synthesis Technology (XST) ¾ Implementation ¾ Floorplanner and PACE ¾Constraints Editor ¾Timing Driven Place & Route ¾Modular Design ¾Incremental Design ¾Timing Improvement Wizard ¾ Board Level Integration IBIS Models ¾STAMP Models ¾LMG Smart Models ¾HSPICE Models ¾ 3rd party partner tools One solution for all your logic design needs © Memec (MG 001-04) 02.27.04 Xilinx Design Flow Plan & Budget Create Code/ Schematic HDL RTL Simulation Implement Translate Functional Simulation Synthesize to create netlist Map Place & Route Attain Timing Closure Timing Simulation Create Bit File © Memec (MG 001-04) 02.27.04 Creating a Project Select File Æ New Project New Project Wizard guides you through the process Project name and location Target device Software flow Create or add source files © Memec (MG 001-04) 02.27.04 Creating and Adding Source Files To include an existing source file, double-click Add Existing Source To create a new source file, double-click Create New Source and choose the type of file HDL file IP Schematic State diagram Testbench Constraints file © Memec (MG 001-04) 02.27.04 Text Entry Color coding helps you understand and quickly enter the design Blue = Reserved words Pink = Signal type Green = Comments Black = User input © Memec (MG 001-04) 02.27.04 Language Templates Two methods to open templates: Language Icon Edit -> Language Templates Language Templates provide common templates for designs: Component instantiation Language templates Synthesis templates © Memec (MG 001-04) 02.27.04 Schematic Source File Files with .sch extension Selecting this source type will open the ECS (Engineering Capture System) schematic editor © Memec (MG 001-04) 02.27.04 Options and Symbols The Options tab selections change, depending on which function is selected For example, if you are adding a net name, the net name options would be shown Components are divided into categories Exact symbols are located in the Symbol box Symbol Name Filter for easier search Orientation Rotate 0, 90,180, 270 Mirror and rotate 0, 90, 180, 270 © Memec (MG 001-04) 02.27.04 State Diagram Source Files with .dia extension Selecting this surce type will invoke StateCAD © Memec (MG 001-04) 02.27.04 Implementation Status ISE will run all of the necessary steps to implement the design Synthesize HDL code Translate Map Place & Route Progress and status are indicated by icons Green check mark ( ) indicates that the process was completed successfully Yellow exclamation point ( ! ) indicates warnings Yellow question mark ( ? ) indicates a file that is out of date Red “X” indicates errors © Memec (MG 001-04) 02.27.04 Simulating a Design To simulate a design: In the Sources in Project window, select a testbench file In the Processes for Source window, expand ModelSim Simulator Double-click Simulate Behavioral Model or Simulate Post-Place & Route Model • Can also simulate after Translate or after Map © Memec (MG 001-04) 02.27.04 Sub-Processes Each process can be expanded to view sub-tools and sub-processes Translate • • Floorplan Assign Package Pins Map • Analyze timing Place & Route • • • • • Analyze timing Floorplan FPGA Editor Analyze power Create simulation model © Memec (MG 001-04) 02.27.04 Program the FPGA There are two ways to program an FPGA Through a PROM device • You will need to generate a file that the PROM programmer will understand Directly from the computer • Use the iMPACT configuration tool © Memec (MG 001-04) 02.27.04 3rd Party Simulation Integration ISE 6.1i is designed and tested to run with the leading HDL simulators in the industry Cadence NC-Sim Model Technology ModelSim Synopsys VCS-MX and Scirocco All Xilinx libraries and netlists conform to IEEE VHDL-93, VITAL-2000 and Verilog2001 standards Other simulators are available to perform Xilinx CPLD and FPGA verification © Memec (MG 001-04) 02.27.04 3rd Party Synthesis Integration Synplify/Pro 7.3.1 Ability to use the parity bit in Virtex™-II, Virtex-II Pro™, and Spartan™-3 devices to optimize Block RAM implementations Improved area optimization for Virtex-II, Virtex-II Pro, and Spartan-3 devices Precision 2003b Support Virtex-E/-II/-II Pro, Spartan-II/-IIE/-3 Advanced design analysis LeonardoSpectrum 2003b Support Spartan-3 family FCII v3.8 Support for Spartan-3 devices Support for all Virtex-II Pro devices © Memec (MG 001-04) 02.27.04 Simulation Tool © Memec (MG 000-00) 04.01.04 Simulation in the FPGA Environment RTL Simulation Design Entry Highest performance Many spins HDL RTL • highest throughput Functional Simulation • Does function match RTL Golden model Gate Level Simulation • • • Highest impact on simulation run time Full timing Does function match RTL Golden model Source Templates and Wizards, HDS, IPX, Xilinx LogiCORE, CORE Generator Leonardo Spectrum Synthesis HDL Gate Functional Functional Simulation Place & Route Xilinx ISE HDL Gate Timing ModelSim RTL Simulation HDL Gate Timing Gate Level Simulation ModelSim VITAL or Verilog Simulation Library ModelSim © Memec (MG 001-04) 02.27.04 HDL Bencher Creates timing VHDL and self-checking No knowledge HDL or constrained Verilog testbenches of scripting required © Memec (MG 001-04) 02.27.04 Create a New Source © Memec (MG 001-04) 02.27.04 Create a New Source © Memec (MG 001-04) 02.27.04 HDL Bencher Unit under test is analyzed, when selected Port problems Syntax violations Inconsistencies Design timing selected Clocked or combinatorial? © Memec (MG 001-04) 02.27.04 Create Waveforms Data values 1, 0 ,X ,Z, U Assignments Double-click bit signal to toggle value Pattern wizard assigns a range of cell values WaveTable assign signals like a spreadsheet By default, decimal values are shown in the WaveTable Waveform values are checked as they are entered Validation check for non-binary inputs only (for example, hex, or decimal) © Memec (MG 001-04) 02.27.04 Toggling Toggling bit values is the easiest way to assign bit signals Simply click directly on the signal’s waveform at the time where changes should take place Click directly on these boxes, at the time where signals should toggle © Memec (MG 001-04) 02.27.04 Pattern Wizard Aids complex waveform input To access, click a signal at the time it should be changed to access value cell editor Click in this area Click here for Pattern Wizard Note: light blue background = input assignment, light yellow background = output assignment © Memec (MG 001-04) 02.27.04 Pattern Wizard Available patterns Pattern description Changes depending on the pattern selected Count unit in clock cycles © Memec (MG 001-04) 02.27.04 Testbench Waveform file extensions are TBW Waveform file can be seen in the Sources in Project window of the Project Navigator To view testbench: In Sources in Project Window, select the TBW file Then in the Processes for Current Source window, click View Behavioral Testbench © Memec (MG 001-04) 02.27.04 Modelsim In ISE (FPGA) •RTL Simulation •Functional Simulation •Does function match RTL Golden model •Gate Level Simulation ( only gate delay) •Gate Level Simulation ( gate delay + wire delay) © Memec (MG 001-04) 02.27.04 Modelsim In ISE TestBench type code Simulation process © Memec (MG 001-04) 02.27.04 Top Answer Records Hits #15338: How do I compile simulation Models #16233: BlockRAM Collision Errors #10629: What are $setup and $hold violations #15501: How do I install SmartModels? #6537: How do I use the glbl.v file for Verilog? #15969: Using the ASYNC_REG constraint © Memec (MG 001-04) 02.27.04 CORE Generator © Memec (MG 000-00) 04.01.04 What are Cores? A core is a ready-made function that you can instantiate into your design as a “black box” Cores can range in complexity Simple arithmetic operators, such as adders, accumulators, and multipliers System-level building blocks, including filters, transforms, and memories Specialized functions, such as bus interfaces, controllers, and microprocessors Some cores can be customized © Memec (MG 001-04) 02.27.04 Sample Functions LogiCORE solutions DSP functions • Time skew buffers, FIR filters, correlators Math functions • Accumulators, adders, multipliers, integrators, square root Memories • Pipelined delay elements, single and dual-port RAM • Synchronous FIFOs PCI master and slave interfaces, PCI bridge AllianceCORE solutions Peripherals • DMA controllers • Programmable interrupt controllers • UARTs Communications and networking • ATM • Reed-Solomon encoders / decoders • T1 framers Standard bus interfaces • PCMCIA, USB © Memec (MG 001-04) 02.27.04 Invoking the CORE Generator System From the Project Navigator, select Project → New Source Select IP (CoreGen & Architecture Wizard) and enter a filename Click Next, then select the type of core © Memec (MG 001-04) 02.27.04 Xilinx CORE Generator System GUI Cores can be organized by function, vendor, or device family Core type, version, device support, vendor, and status © Memec (MG 001-04) 02.27.04 Core Customize Window Core Overview tab provides version information and a brief functional description Parameters tab allows you to customize the core Web Links tab provides direct access to related Web pages Contact tab provides information about the vendor Data sheet access © Memec (MG 001-04) 02.27.04 CORE Data Sheets Performance expectations (not shown) Features Functionality Pinout Resource utilization © Memec (MG 001-04) 02.27.04 Architecture Wizard Architecture Wizard contains two wizards: Clocking Wizard RocketIO Wizard Double-click Create New Source Select IP (CoreGen & Architecture Wizard), then click Next • • Expand Clocking and select desired function Expand I/O Interfaces and select RocketIO* © Memec (MG 001-04) 02.27.04 DCM Wizard --General Setup Options Select which pins are required Define attributes: Input Clock Frequency CLKIN Source Divide By Value Feedback Source Feedback Value Duty Cycle Correction Phase Shift (DPS) © Memec (MG 001-04) 02.27.04 DCM Wizard– DFS setting Frequency synthesizer Select M / D value OR Specify frequency “Calculate” button for jitter Period jitter is evaluated for CLKFX output Note: This dialog appears only if the CLKFX output was selected © Memec (MG 001-04) 02.27.04 Where Can I Learn More? Xilinx IP Center http://www.xilinx.com/ipcenter Software updates Download new cores as they are released Tech Tips on http://support.xilinx.com Software manuals: CORE Generator Guide DCM constraints: Online Software Manuals → Constraints Guide DCM architecture: Virtex-II, Virtex-II Pro, Spartan-3 Data Sheets → Detailed Description Virtex-II, Virtex-II Pro, Spartan-3 User Guides → Design Considerations → DCM DCM timing parameters: Virtex-II, Virtex-II Pro, Spartan-3 Data Sheets → Electrical Characteristics Virtex-II, Virtex-II Pro, Spartan-3 Interactive Data Sheets → http://support.xilinx.com/applications/web_ds/index_top.htm © Memec (MG 001-04) 02.27.04