Xilinx Synthesis and Simulation Design Guide

Xilinx Synthesis and Simulation Design Guide

Synthesis and Simulation Design Guide UG626 (v13.4) January 19, 2012 Xilinx is disclosing this user guide, manual, release note, and/or specification (the “Documentation”) to you solely for use in the development of designs to operate with Xilinx hardware devices. You may not reproduce, distribute, republish, download, display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Xilinx expressly disclaims any liability arising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentation without notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise you of any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that may be provided to you in connection with the Information. THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OF DATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION. © Copyright 2002-2012 Xilinx Inc. All Rights Reserved. XILINX, the Xilinx logo, the Brand Window and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners. The PowerPC name and logo are registered trademarks of IBM Corp., and used under license. All other trademarks are the property of their respective owners. Synthesis and Simulation Design Guide 2 www.xilinx.com UG626 (v13.4) January 19, 2012 Table of Contents Revision History ....................................................................................................6 Chapter 1 Synthesis and Simulation Overview .........................................................7 Synthesis and Simulation Overview ....................................................................7 Synthesis and Simulation Design Examples........................................................8 Chapter 2 Hardware Description Language (HDL) ....................................................9 Advantages of Using a Hardware Description Language (HDL) to Design FPGA Devices ................................................................................................9 Designing FPGA Devices With Hardware Description Language (HDL) ............................................................................................................ 10 Chapter 3 FPGA Design Flow....................................................................................13 Design Flow Diagram.......................................................................................... 13 Design Entry Recommendations......................................................................... 13 Architecture Wizard ............................................................................................. 14 CORE Generator Software .................................................................................. 16 Functional Simulation Early in the Design Flow............................................... 17 Synthesizing and Optimizing ............................................................................. 18 Setting Constraints............................................................................................... 20 Evaluating Design Size and Performance .......................................................... 21 Evaluating Coding Style and System Features................................................... 23 Placing and Routing............................................................................................. 24 Timing Simulation............................................................................................... 24 Chapter 4 General Recommendations for Coding Practices .................................27 Designing With Hardware Description Language (HDL)................................. 27 Naming, Labeling, and General Coding Styles.................................................. 28 Specifying Constants ........................................................................................... 33 Using Generics and Parameters to Specify Dynamic Bus and Array Widths........................................................................................................... 34 TRANSLATE_OFF and TRANSLATE_ON......................................................... 35 Chapter 5 Coding for FPGA Device Flow .................................................................37 VHDL and Verilog Limitations ........................................................................... 37 Design Challenges in Using an Asynchronous First-In-First-Out (FIFO) Buffer ............................................................................................................ 37 Advantages and Disadvantages of Hierarchical Designs.................................. 38 Using Synthesis Tools with Hierarchical Designs ............................................. 39 Synthesis and Simulation Design Guide UG626 (v13.4) January 19, 2012 www.xilinx.com 3 Choosing Data Type............................................................................................. 40 Using `timescale ................................................................................................... 43 Mixed Language Designs .................................................................................... 43 If Statements and Case Statements ..................................................................... 44 Sensitivity List in Process and Always Statements............................................ 47 Delays in Synthesis Code.................................................................................... 48 Registers in FPGA Design................................................................................... 48 Input Output Block (IOB) Registers ................................................................... 50 Latches in FPGA Design...................................................................................... 52 Implementing Shift Registers ............................................................................. 53 Describing Shift Registers................................................................................... 54 Control Signals..................................................................................................... 56 Initial State of the Registers and Latches ........................................................... 62 Initial State of the Shift Registers....................................................................... 63 Initial State of the RAMs..................................................................................... 63 Multiplexers ......................................................................................................... 64 Finite State Machine (FSM) Components........................................................... 66 Implementing Memory........................................................................................ 71 Block RAM Inference .......................................................................................... 72 Distributed RAM Inference ................................................................................ 80 Arithmetic Support .............................................................................................. 83 Synthesis Tool Naming Conventions ................................................................. 94 Instantiating FPGA Primitives............................................................................ 94 Instantiating CORE Generator Software Modules ............................................ 96 Attributes and Constraints .................................................................................. 96 Pipelining ........................................................................................................... 100 Retiming ............................................................................................................. 101 Verilog Language Support................................................................................. 101 Chapter 6 Simulating Your Design..........................................................................103 Adhering to Industry Standards ....................................................................... 103 Simulation Points in Hardware Description Language (HDL) Design Flow ............................................................................................................ 105 Using Test Benches to Provide Stimulus .......................................................... 109 VHDL and Verilog Libraries and Models......................................................... 110 Simulation of Configuration Interfaces............................................................ 118 Disabling BlockRAM Collision Checks for Simulation.................................. 127 Global Reset and Tristate for Simulation ......................................................... 127 Design Hierarchy and Simulation ...................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    173 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us