System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 This document applies to the following software versions: ISE Design Suite 14.3 through 14.
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.
Table of Contents Chapter 1: Introduction The Xilinx DSP Block Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 FIR Filter Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Support for MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 System Resource Estimation . . . . . . . . . . . . . . . . . . . . .
The Reinterpret Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Convert Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Concat Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slice Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Chapter 1 Introduction System Generator is a DSP design tool from Xilinx that enables the use of the MathWorks model-based Simulink® design environment for FPGA design. Previous experience with Xilinx FPGAs or RTL design methodologies are not required when using System Generator. Designs are captured in the DSP friendly Simulink modeling environment using a Xilinx specific blockset.
Chapter 1: Introduction The Xilinx DSP Block Set Over 90 DSP building blocks are provided in the Xilinx DSP blockset for Simulink. These blocks include the common DSP building blocks such as adders, multipliers and registers. Also included are a set of complex DSP building blocks such as forward error correction blocks, FFTs, filters and memories. These blocks leverage the Xilinx IP core generators to deliver optimized results for the selected device. 8 www.xilinx.
FIR Filter Generation FIR Filter Generation System Generator includes a FIR Compiler block that targets the dedicated DSP48 hardware resources in the Virtex®-4 and Virtex-5 devices to create highly optimized implementations that can run in excess of 500 Mhz. Configuration options allow generation of direct, polyphase decimation, polyphase interpolation and oversampled implementations.
Chapter 1: Introduction Support for MATLAB Included in System Generator is an MCode block that allows the use of non-algorithmic MATLAB for the modeling and implementation of simple control operations. 10 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
System Resource Estimation System Resource Estimation System Generator provides a Resource Estimator block that quickly estimates the area of a design prior to place and route. This can be a valuable aid in the hardware / software partitioning process by helping system designers take full advantage of the FPGA resources which include up to 640 multiply/accumulate (or DSP) blocks in the Virtex®-5 devices. System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 1: Introduction Hardware Co-Simulation System Generator provides accelerated simulation through hardware co-simulation. System Generator will automatically create a hardware simulation token for a design captured in the Xilinx DSP blockset that will run on one of over 20 supported hardware platforms. This hardware will co-simulate with the rest of the Simulink system to provide up to a 1000x simulation performance increase. 12 www.xilinx.
System Integration Platform System Integration Platform System Generator provides a system integration platform for the design of DSP FPGAs that allows the RTL, Simulink, MATLAB and C/C++ components of a DSP system to come together in a single simulation and implementation environment. System Generator supports a black box block that allows RTL to be imported into Simulink and co-simulated with either ModelSim or Xilinx® ISE® Simulator.
Chapter 1: Introduction 14 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Chapter 2 Installation Downloading System Generator is part of the ISE® Design Suite and may be download from the Xilinx web page. You may purchase, register, and download the System Generator software from the site at: http://www.xilinx.com/tools/sysgen.htm Note: In special circumstances, System Generator can be delivered on a CD. Please contact your Xilinx distributor if your circumstances prohibit you from downloading the software via the web.
Chapter 2: Installation Using the ISE Design Suite Installer System Generator for DSP is part of the Xilinx ISE® Design Suite and you must use the ISE Design Suite installer to install System Generator. Before invoking the ISE Design Suite installer, it is a good idea to make sure that all instances of MATLAB are closed. When all instances of MATLAB are closed, launch the installer and follow the directions on the screen.
Post Installation Tasks If MATLAB is configured for a Design Suite, say IDS, and you wish to re-configure MATLAB for another Design Suite, say Vivado, you must select the Configured MATLAB version box and click Remove before you re-configure for Vivado. Linux Installations Launching System Generator under Linux is handled via a shell script called “sysgen” located in the /sysgen/util directory.
Chapter 2: Installation Could not find ml_supported.xml to determine supported versions of MATLAB with System Generator. If the XML file is unreadable, the error message that is thrown to the MATLAB console is: Could not read ml_supported.xml to determine supported versions of MATLAB with System Generator xl_read_matlab_support_xmlfile This MATLAB function reads and parses the XML file looking for the supported MATLAB version information and provides error/warning messages used by the sysgen_startup.
Post Installation Tasks Installing an SP601/SP605 Board for Ethernet Hardware Co-Simulation Note: If installation instructions for your particular platform are not provided here, please refer to the installation instuctions that come with your Platform Kit.
Chapter 2: Installation Setting the Number of Entries The cache entry database stores a fixed number of entries. The default is 20,000 entries. To set size of the cache entry database, set the SYSGEN_CACHE_ENTRIES environment variable to the desired number of entries. Setting this number too small will adversely affect cache performance. Set this number to a higher value when working on several large designs.
Chapter 3 Release Information System Generator for DSP release information can now be found in the following Webbased document: Xilinx Design Tools: Release Notes Guide System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 3: Release Information 22 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Chapter 4 Getting Started Introduction This Getting Started training consists of six short lessons that introduce you to major features of System Generator for DSP. Each lesson takes less than 10 minutes to read and is followed by one or more hands-on lab exercises. The lab exercise folders are located in the System Generator software tree and contain data files and step-by-step instructions.
Chapter 4: Getting Started Lesson 1 - Design Creation Basics The System Generator Design Flow System Generator works within the Simulink model-based design methodology. Often an executable spec is created using the standard Simulink block sets. This spec can be designed using floating-point numerical precision and without hardware detail. Once the functionality and basic dataflow issues have been defined, System Generator can be used to specify the hardware implementation details for the Xilinx devices.
Lesson 1 - Design Creation Basics The Xilinx DSP Blockset The Xilinx DSP blockset is accessed via the Simulink Library browser which can be launched from the standard MATLAB toolbar. The blocks are separated into sub-categories for easier searching. One sub-category, “Index” includes all the block and is often the quickest way to access a block you are already familiar with. Over 90 DSP building blocks are available for constructing you DSP system.
Chapter 4: Getting Started Defining the FPGA Boundary System Generator works with standard Simulink models. Two blocks called “Gateway In” and “Gateway Out” define the boundary of the FPGA from the Simulink simulation model. The Gateway In block converts the floating point input to a fixed-point number. You double-click on the block to bring up the properties editor which is where the fixed-point number can be fully specified. 26 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 1 - Design Creation Basics Adding the System Generator Token Every System Generator diagram requires that at least one System Generator token be placed on the diagram. This token is not connected to anything but serves to drive the FPGA implementation process. The property editor for this token allows you to specify the target netlist, device, performance targets and system period. System Generator will issue an error if this token is absent.
Chapter 4: Getting Started Creating the DSP Design Once the FPGA boundaries have been established using the Gateway blocks, the DSP design can be constructed using blocks from the Xilinx DSP blockset. Standard Simulink blocks are not supported for use within the Gateway In / Gateway out blocks. You will find a rich set of filters, FFTs, FEC cores, memories, arithmetic, logical and bitwise blocks available for use in constructing DSP designs. Each of these blocks are cycle and bit accurate. 28 www.xilinx.
Lesson 1 - Design Creation Basics Generating the HDL Code Once the design is completed, the hardware implementation files can be generated using the Generate button available on the System Generator token properties editor. One option is to select HDL Netlist which allows the FPGA implementation steps of RTL synthesis and place and route to be performed interactively using tool specific user interfaces.
Chapter 4: Getting Started Model-Based Design using System Generator Model-based design refers the design practice of creating a high-level executable specification using the standard Simulink blocksets or MATLAB first to define the desired functional behavior with minimal hardware detail. This executable spec is then used as a reference model while the hardware representation is specified using the Xilinx DSP blockset. 30 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 1 - Design Creation Basics Creating Input Vectors using MATLAB Simulink is built on top of MATLAB allowing the use of the full MATLAB language for input signal generation and output analysis. You can use the “From Workspace” and “To Workspace” blocks from the Simulink Source and Sink libraries. Input values must be specified as an n rows x 2 column matrix where the first column is the simulation time and the second column includes the input values.
Chapter 4: Getting Started Lesson 1 Summary • You partition the FPGA design from the Simulink “system” using Gateway In / Gateway Out blocks. • You always include a System Generator token on each sheet • You should only use blocks from the Xilinx DSP blockset between the gateway blocks • You should consider using the From / To workspace blocks to use MATLAB for input generation and output analysis Lab Exercise: Using Simulink In this lab, you will learn the basics of Simulink.
Lesson 2 - Fixed Point and Bit Operations Lesson 2 - Fixed Point and Bit Operations Fixed-Point Numeric Precision System Generator supports four data types, Unsigned for positive only DSP operations, Signed which is two’s complement used for DSP operations that involve negative numbers, Boolean for 1-bit control signals and Floating-Point. Each block will typically have quantization parameters. The initial quantization is defined by the Gateway In blocks.
Chapter 4: Getting Started System Generator Fixed-Point Quantization Xilinx fixed-point data types are defined by specifying the total number of bits then specifying the location of the binary point. The difference, which represents the number of bits to the left of the binary point, are the integer bits for ufixed numbers and the integer bits plus sign bit for signed numbers. Xilinx FPGAs do not require that fixedpoint numbers fall in pre-defined 8 bit boundaries as is the case with DSP processors.
Lesson 2 - Fixed Point and Bit Operations Overflow and Round Modes System Generator supports the overflow modes Wrap, Saturate and Flag as error. Wrap is the default because it has the least cost in hardware. Saturate requires System Generator to insert logic to perform that operation and therefore should only be used when necessary for the application System Generator supports Truncate and Round of the LSB during the quantization process.
Chapter 4: Getting Started Bit-Level Operations In a real DSP hardware system, not all operations can be expressed mathematically. Often a signal must be accessed by its individual bits. System Generator supports a set of bit-level operations that allow the reinterpret, combining, conversion and extraction of the individual bits of a signal. This can be used to pad, unpad and slice off the bits of a signal with a high degree of control. These blocks do not use any hardware resources 36 www.xilinx.
Lesson 2 - Fixed Point and Bit Operations The Reinterpret Block The Reinterpret block forces the bits of a signal to a new type without regard for the numerical value or location of the decimal point. This block does not change the number of bits of a signal but simply reinterprets the data type. For example if the number 4 is represented as an unsigned [4 1] it is 1000. If this number is reinterpreted to be unsigned [4 0], the 1000 is now 8. System Generator for DSP Getting Started Guide UG639 (v 14.
Chapter 4: Getting Started The Convert Block The Convert block changes the quantization of a number but not the value. This block can alter the number of bits used to represent a number. It can be used to convert a signed type to an unsigned type and visa versa. Often the Convert block is used to truncate the output fractional bits after a multiplication operation. 38 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 2 - Fixed Point and Bit Operations The Concat Block The Concat block concatenates two inputs into a single output at the bit level. This block has two input ports that are labeled hi and lo. The hi port occupies the MSB’s and the lo input occupies the LSB’s of the output signal. This block is useful for zero padding the MSBs or LSBs of a signal. System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started Slice Block The Slice block is used to access individual bits of a quantized number. This block provides several mechanisms by which the sequence of bits can be specified. If the input type is known at the time of parameterization, the various mechanisms do not offer any gain in functionality. If, however, a Slice block is used in a design where the input data width or binary point position are subject to change, the variety of mechanisms becomes useful.
Lesson 2 - Fixed Point and Bit Operations The BitBasher Block The BitBasher block provides a textual method, based on Verilog syntax, for working with the signals at the bit level. This block supports concatenation and slicing if the input signal to create an output. It also allows for augmentation with constants. The BitBasher block supports up to 4 outputs that are inferred by the expressions System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started Lesson 2 Summary • Quantization and overflow options are available when the output of a block is user defined • Quantization occurs when the number of fractional bits is insufficient to represent the fractional portion of a value • Overflow occurs when a value lies outside the representable range • Bit picking blocks allow combining of multiple buses into a single bus, force a conversion of data type without changing the number of bits, extract bits, and convert the number
Lesson 3 - System Control Lesson 3 - System Control Controlling a DSP System When you develop a DSP system in hardware, some level of control is usually required. This may include state dependent behavior or simply performing operations such as filter coefficient updating. System-level control may also be needed for controlling bursty data such as non-streaming FFTs. System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started The MCode Block The MCode block supports the use of MATLAB for implementing state dependent and branch conditional control operations. This block is not suitable for MATLAB that describes an algorithmic operation such as a FIR filter or Matrix inverse. The MCode block provides a convenient and efficient method for implementing state machines and complex muxing conditions. This is the recommended way to implement a finite state machine in System Generator. 44 www.xilinx.
Lesson 3 - System Control The Xilinx “xl_state” Data Type When implementing a state machine using the MCode block, a Xilinx-provided MATLAB function called “xl_state” must be used to initialize a persistent variable. This function has two arguments, the first is the initial condition, the second is the quantization of the assigned variable. For example, if your state machine has 6 states, you need a quantization of 4-bits unsigned. System Generator for DSP Getting Started Guide UG639 (v 14.
Chapter 4: Getting Started State Machine Example The figure below shows a simple 2-state FSM. This can be easily extended to more states. Notice that a variable called “state” is declared to be persistent and is initialized to 2 bits, unsigned using the “xl_state” function. A switch-case statement is then used to decode the inputs, branch to the next state and assign the outputs. 46 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 3 - System Control The Expression Block The Expression block performs a bitwise not, and, or & xor on two input signals. The inputs can have a word length greater than 1. In cases where the two inputs have different word lengths, the binary points are matched up and then an element-by-element boolean operation is performed. This block provides a useful way to implement logical control in a DSP system System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started Reset and Enable Ports Most System Generator blocks that include memory or storage provide options to expose the reset and clock enable ports. If un-selected, these ports are automatically connected to the final hardware's global reset and clock enable or DCM schemes. Exposing these ports on the System Generator block creates a condition where the block is reset or enabled when either the global signals or the local signals assert TRUE.
Lesson 3 - System Control Bursty Data Several of the more complex DSP blocks offered in the Xilinx DSP blockset result in “bursty” data. For example, the non-streaming FFT requires several clock cycles to process the input data prior to generating valid output data. In these cases, these blocks include data flow control ports that must be used in the DSP system. These ports provide basic push mode dataflow control.
Chapter 4: Getting Started Lesson 3 Summary • Use the MCode block for state machines and branch conditional logic • Use the Expression block to implement logical control at the bit level • Storage elements have the ability to include optional reset and clock enable pins that can be connected in System Generator • Blocks that operate on bursty data include data flow control pins called vin and vout Lab Exercise: System Control In this lab you will be creating a simple state machine using the MCode b
Lesson 4 - Multi-Rate Systems Lesson 4 - Multi-Rate Systems Creating Multi-Rate Systems The following illustration shows a typical base-station receiver. The tower has multiple antennas to provide sectored coverage of the area. The diagram shows that this results in two receiver channels. In each of these channels, there is some form of complex mixing, resulting in real and imaginary channels.
Chapter 4: Getting Started Up and Down Sampling Blocks System Generator includes Up Sample and Down Sample blocks that change the system sample rate. The Up Sample block adds additional samples to the signal to achieve the desired rate change. The value of these new samples is either zero or the value of the last actual sample depending on the block options. The Down Sample block simply discards samples until it achieves the desired rate change.
Lesson 4 - Multi-Rate Systems Rate Changing Functional Blocks In addition to the straightforward “Up Sample” and “Down Sample” blocks, System Generator also provides rate changing functional blocks; that is blocks that also perform a specific function. The Parallel to Serial block will up sample, the Serial to Parallel block will down sample, the FIR Compiler, if using a resource-shared multiplier will down sample and the TDM block will up sample.
Chapter 4: Getting Started Viewing Rate Changes in Simulink Simulink supports viewing different sample times as different colors which is fully supported for System Generator blocks. To enable the Sample Time Colors feature, select the pulldown menu Format > Sample Time Colors. The Simulink tool does not automatically recolor the model with each change you make to it, so you must select Edit > Update Diagram to explicitly update the model coloration.
Lesson 4 - Multi-Rate Systems Debugging Tools System Generator provides 3 debugging utilities to assist in debugging complex multi-rate systems. The Sample Time (ST) probe can be connected to any System Generator signal then to a Simulink “display” block from the “Sinks” library. The sample time for the connected net will appear in the display. The clk probe is not connected to any inputs but only to a scope output. It displays the master clock.
Chapter 4: Getting Started Sample Period “Rules” The illustration below is an example of a multi-rate system that demonstrates how the Simulink System Period can be calculated and entered into the System Generator token GUI. If you get it wrong, there is a sampling period analyzer that automatically determines the appropriate sample period and prompts you to update the GUI. 56 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 4 - Multi-Rate Systems Lab Exercise: Multi-Rate Systems In this lab you will be exploring the effects of the rate changing blocks available in System Generator. These blocks include Upsample, Downsample, Serial to Parallel and Parallel to Serial. The lab instructions and lab design are located in the System Generator software tree at the following pathname: /sysgen/examples/getting_started_training/lab5/ System Generator for DSP Getting Started Guide UG639 (v 14.
Chapter 4: Getting Started Lesson 5 - Using Memories Block vs. Distributed RAM Xilinx FPGAs offer two distinct memory options, Block RAM and Distributed RAM. Block RAM uses dedicated, onchip, hardware resources and represents the most area-efficient RAM implementation. Block RAMs offer high performance but due to their fixed location on the chip, may incur slightly larger routing delays.
Lesson 5 - Using Memories Initializing RAMs and ROMs The RAM and ROM blocks can be initialized to a 1xn vector that matches the depth of the RAM. MATLAB is used to set the initial value vector. Any MATLAB statement can be used that results in a 1xn vector including the file reading commands such as imread, auread, wavread, and load. System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started System Generator RAM Blocks System Generator provides both a single- and dual-port RAM block. Depths up to 64K are supported. Both Distributed RAM and Block RAM implementation options are available. System Generator calls the Xilinx memory compiler to create an efficient memory structure in hardware for the given parameters, bit widths and depths. You don’t need to be concerned with the hardware details of the specific Virtex® block or Distributed RAM structure.
Lesson 5 - Using Memories System Generator ROM Blocks The ROM block supports an implementation in either Block- or Distributed RAM and is initialized through a MATLAB command. The signal connected to the address port must be unsigned with no fractional bits System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started The Delay Block The Delay block is used to synchronize dataflow through the FPGA. This block maps to a highly-efficient shift register structure built from a slice lookup table called an SRL16 that is 85% smaller than using registers. 62 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 5 - Using Memories The FIFO Block The FIFO block supports both Block RAM and Distributed RAM implementations. Depths up to 64K are supported. Three output flags are supported, empty, full and %full. The %full flag is set depending on a bit width specification. One bit will be zero until the FIFO is 50% full, then it will set to.5. Two bits will be zero until 20% full, then .25, .5 and .75. System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started Shared Memory Block System Generator provides a simple abstraction for easily adding custom logic into a processor. The basic idea is to allow memories in custom logic to be easily mapped into the processor's memory address space. System Generator enables this through the use of Shared-Memory blocks provided in the System Generator block set. 64 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 5 - Using Memories Lab Exercise: Using Memories In this lab you will learn how to use a Xilinx ROM block to implement a LUT-based operation such as an Arcsin using Block RAM or Distributed RAM. This provides an efficient implementation for trig and math functions with inputs that can be quantized to 10 bits or less.
Chapter 4: Getting Started Lesson 6 - Designing Filters Introduction Digital filters are a common DSP operation and especially well suited to implementation in FPGAs. Highperformance applications benefit greatly from parallel filters that can return a results on every clock cycle. The Virtex®- 5 device includes up to 550 parallel multipliers. The FIR Compiler is designed to use these multipliers in the most efficient manner for creating commonly used FIR filters.
Lesson 6 - Designing Filters The Virtex DSP48 Math Slice The Virtex® family introduces a high-performance arithmetic unit along with a multiplier: the low-power DSP48 slice. The following figure is a detailed diagram of the DSP48 structure. The DSP48 slice consists of four main sections: (1) I/O registers, (2) signed multiplier, (3) three-input adder/subtractor, and (4) OPMODE multiplexers. System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started FIR Compiler Block The Xilinx Fir Compiler block implements a high speed MAC based FIR filter. It accepts a stream of input data and computes filtered output with a fixed delay, based on the filter configuration. The FIR Compiler supports generation of resource shared or parallel FIR structures and polyphase decimation and interpolation structures. Also supported is oversampling. Coefficients are specified using MATLAB commands. 68 www.xilinx.
Lesson 6 - Designing Filters Creating Coefficients with FDATool The MathWorks FDATool is a graphical filter design program that can be used to generate coefficients for the FIR Compiler block. The Xilinx FDATool block provides an interface to the FDATool software available as part of the MATLAB Signal Processing Toolbox. In order for this block to function properly, the Signal Processing Toolbox must be installed. System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started Using FDA Tool Coefficients Once a suitable filter response has been designed, you simply export the coefficients to the workspace using the File > Export command. The workspace variable can then be referenced in the FIR Compiler properties editor 70 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Lesson 6 - Designing Filters Lab Exercise: Designing Filters In this lab you will be using the Filter Compiler block to generate optimized filters for the Virtex®-5 architecture. The lab instructions and lab design are located in the System Generator software tree at the following pathname: /sysgen/examples/getting_started_training/lab7/ System Generator for DSP Getting Started Guide UG639 (v 14.3) October 16, 2012 www.xilinx.
Chapter 4: Getting Started Additional Examples and Tutorials Numerous examples are used to illustrate System Generator features and functions in the System Generator documentaton. These examples are found in the directory at pathname /sysgen/examples and are listed in the table below. In addition to these examples, System Generator also includes demonstration models that can be run from the demo page.
Additional Examples and Tutorials ChipScope Examples Topic Description Using ChipScope Pro Analyzer for RealTime Hardware Debugging This tutorial demonstrates how to connect and use the Xilinx Debug Tool called ChipScope ™ Pro within Xilinx System Generator for DSP. The integration of ChipScope Pro in the System Generator flow allows real-time debugging at system speed.
Chapter 4: Getting Started Topic Description MAC FIR filter This design example implements a 43 tap FIR Filter with a MAC engine and a Dual Port Ram used for data and coefficient storage. Complex FIR filter This example demonstrates a complex FIR filter built out of blocks from the System Generator and Simulink library. M-Code Examples Topic 74 Description Simple Selector This example shows how to implement a function that returns the maximum value of its inputs.
Additional Examples and Tutorials Processor Examples Topic Description Tutorial Example Designing and Simulating MicroBlaze Processor Systems Demonstrates how to import a MicroBlaze processor created using Xilinx Platform Studio into System Generator. A DSP48 block is used as a co-processor to the MicroBlaze processor. Designing PicoBlaze Microcontroller Applications Demonstrates how to implement a PicoBlaze™ program in System Generator.
Chapter 4: Getting Started Miscellaneous Examples Topic 76 Description Importing a System Generator Design into a Bigger System Discusses how to take the VHDL netlist from a System Generator design and synthesize it in order to embed it into a larger design. Also shows how VHDL created by System Generator can be incorporated into simulation model of the overall system. Configurable Subsystems and System Generator Illustrates the use of Configurable Subsystems for Simulation and Generation.
Additional Examples and Tutorials System Generator Demos System Generator for DSP provides the capability to model and implement highperformance DSP systems in field- programmable gate arrays (FPGAs) using Simulink. The Xilinx Blockset contains bit and cycle-true models of arithmetic and logic functions, memories, and DSP functions for digital filtering, spectral analysis, and digital communications.
Chapter 4: Getting Started 78 www.xilinx.com System Generator for DSP Getting Started Guide UG639 (v 14.
Index B Block Color meaning of block backgorund color 25 C Color meaning of block background color 25 Compiling Xilinx HDL Libraries 19 Configuring the Sysgen cache 19 D Downloading System Generator 15 H Hardware Co-Sim installation 18 I Installation Hardware Co-Sim 18 software prerequisites 16 ISE Design Suite Installer 16 S System Generator Cache 19 changing versions 20 displaying versions 20 downloading the software 15 ISE Design Suite Installer 16 X Xilinx HDL Libraries compiling 19 System Gene