Ahmed Elhossini January 24, 2010
Xilinx System Generator Provides a set of Simulink blocks (models) for several hardware operations that could be implemented on various Xilinx FPGAs. These blocks can be used to simulate the functionality of the hardware system using Simulink environmet.The nature of most DSP applications requires ﬂoating point format for data representation. While this is easy to implement on several computer systems running high level modeling software such as Simulink, it is more challenging in the hardware world due to the complexity of the implementation of ﬂoating point arithmetic. These challenges increase with portable DSP systems where more restrictingconstraints are applied to the system design. For these reasons Xilinx System Generator uses ﬁxed point format to represent all numerical values in the system. System generator provides some blocks to transform data provided from the software side of the simulation environment (in our case it is Simulink) and the hardware side (System Generator blocks). This is an important concept to understandduring the design process using Xilinx System Generator.
This tutorial will demonstrate the process of creating a simple DSP system using Xilinx System Generator 10.1. The System Generator runs within the Simulink simulation environment which is part of MATLAB mathematical package. In this tutorial a simple DSP system will be simulated using Simulink and then a co-simulation isperformed using Spartan 3E Starter Board. Co-simulation integrates Simulink simulation capabilities with a hardware implementation to verify the functionality of the system. The following steps are described in this tutorial: • Starting System Generator with MATLAB. • Creating a DSP system using Simulink and System Generator. • Simulating the DSP system using Simulink. • Preparing System Generatorfor Co-Simulation on Spartan 3E Board. • Performing Hardware/Software Co-Simulation for the DSP system.
You must have the following software installed on your PC to complete this tutorial: • Windows 2000 SP2/Windows XP
• ISE 10.1i. • System Generator 10.1 • MATLAB R2007 with Simulink. Besides the following is required to complete this tutorial: • Familiarity withSimulink Simulation Environment with MATLAB. • Familiarity with Xilinx ISE and FPGA design ﬂow. • Spartan 3E starter kit and xilinx UBS download cable
Starting System Generator
• To Start Xilinx System Generator, select Start → All Programs → Development → Xilinx ISE Design Suite 10.1 → DSP Tools→ Xilinx System Generator 10.1. • This will start MATLAB and Simulink simulation environment as shownin Figure 1. • The Simulink library browser shows a list of all the diﬀerent Toolboxes installed within MATLAB. Xilinx System Generator components will appear under three categories: 1. Xilinx Blockset 2. Xilinx Reference Blockset 3. Xilinx XtremeDSP Kit The category Xilinx Blockset contains all the basic blocks used in various number of applications and will be used in this tutorial. • Create anew Simulink model by selecting File → New → Model.
Creating a DSP system
In this part of the tutorial we will create a simple DSP system that will be used to evaluate Equation ??: z =5×x+3×y The main operations required to implement this system are: • Two multiplication operations. • One addition operation. • Two storage elements to store the factors (5, 3). In this tutorial we will use aconstant block for these two factors. For each of these operations a System Generator Block exists. Besides, any System Generator model requires a System Generator block to perform various hardware operations on the model (1)
Figure 1: Simulink and MATLAB
Building the Hardware Model
For the new model created in Section 2 we will place several block from the System Generator blockset...