没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
System
Generator for
DSP
User Guide
UG640 (v11.4) December 2, 2009
System Generator for DSP User Guide www.xilinx.com UG640 (v11.4) December 2, 2009
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.
© 2009 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, and other designated brands included herein are trademarks of Xilinx in the
United States and other countries. All other trademarks are the property of their respective owners.
System Generator for DSP User Guide www.xilinx.com 3
UG640 (v11.4) December 2, 2009
Preface: About This Guide
Guide Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
System Generator PDF Doc Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Typographical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Online Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Chapter 1: Hardware Design Using System Generator
A Brief Introduction to FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Note to the DSP Engineer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Note to the Hardware Engineer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Design Flows using System Generator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Algorithm Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Implementing Part of a Larger Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Implementing a Complete Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
System-Level Modeling in System Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
System Generator Blocksets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Signal Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Bit-True and Cycle-True Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Timing and Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Synchronization Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Block Masks and Parameter Passing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Resource Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Automatic Code Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Compiling and Simulating Using the System Generator Block . . . . . . . . . . . . . . . . . . 40
Viewing ISE Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Compilation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
HDL Testbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Compiling MATLAB into an FPGA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Simple Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Simple Arithmetic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Complex Multiplier with Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Shift Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Passing Parameters into the MCode Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Optional Input Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Finite State Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Parameterizable Accumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
FIR Example and System Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
RPN Calculator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Example of disp Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Importing a System Generator Design into a Bigger System. . . . . . . . . . . . . . . . . . 73
HDL Netlist Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Integration Design Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
New Integration Flow between System Generator & Project Navigator. . . . . . . . . . . 74
Table of Contents
4 www.xilinx.com System Generator for DSP User Guide
UG640 (v11.4) December 2, 2009
A Step-by-Step Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Configurable Subsystems and System Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Defining a Configurable Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Using a Configurable Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Deleting a Block from a Configurable Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Adding a Block to a Configurable Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Generating Hardware from Configurable Subsystems . . . . . . . . . . . . . . . . . . . . . . . . . 86
Notes for Higher Performance FPGA Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Review the Hardware Notes Included in Block Dialog Boxes . . . . . . . . . . . . . . . . . . . 88
Register the Inputs and Outputs of Your Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Insert Pipeline Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Use Saturation Arithmetic and Rounding Only When Necessary . . . . . . . . . . . . . . . . 88
Use the System Generator Timing and Power Analysis Tools . . . . . . . . . . . . . . . . . . . 88
Set the Data Rate Option on All Gateway Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Reduce the Clock Enable (CE) Fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Processing a System Generator Design with FPGA Physical Design Tools. . . . 89
HDL Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Generating an FPGA Bitstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Resetting Auto-Generated Clock Enable Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
ce_clr and Rate Changing Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
ce_clr Usage Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Design Styles for the DSP48. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
About the DSP48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Designs Using Standard Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Designs Using Synthesizable Mult, Mux and AddSub Blocks . . . . . . . . . . . . . . . . . . . 99
Designs that Use DSP48 and DSP48 Macro Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
DSP48 Design Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Using FDATool in Digital Filter Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Design Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Open and Generate the Coefficients for this FIR Filter . . . . . . . . . . . . . . . . . . . . . . . . 109
Parameterize the MAC-Based FIR Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Generate and Assign Coefficients for the FIR Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Browse Through and Understand the Xilinx Filter Block . . . . . . . . . . . . . . . . . . . . . . 113
Run the Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Generating Multiple Cycle-True Islands for Distinct Clocks . . . . . . . . . . . . . . . . 117
Multiple Clock Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Clock Domain Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Crossing Clock Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Netlisting Multiple Clock Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Step-by-Step Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Creating a Top-Level Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Using ChipScope Pro Analyzer for Real-Time Hardware Debugging . . . . . . . . 129
ChipScope Pro Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Tutorial Example: Using ChipScope in System Generator . . . . . . . . . . . . . . . . . . . . . 129
Real-Time Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Importing Data Into the MATLAB Workspace From ChipScope. . . . . . . . . . . . . . . . 138
Chapter 2: Hardware/Software Co-Design
Hardware/Software Co-Design in System Generator . . . . . . . . . . . . . . . . . . . . . . . . 140
Black Box Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
PicoBlaze Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
System Generator for DSP User Guide www.xilinx.com 5
UG640 (v11.4) December 2, 2009
EDK Processor Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Integrating a Processor with Custom Logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Memory Map Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Hardware Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Generating Software Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Writing Software for EDK Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Asynchronous Support for EDK Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
EDK Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Importing an EDK Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Exposing Processor Ports to System Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Exporting a pcore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Designing with Embedded Processors and Microcontrollers . . . . . . . . . . . . . . . . 150
Designing PicoBlaze Microcontroller Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Designing and Exporting MicroBlaze Processor Peripherals . . . . . . . . . . . . . . . . . . . 157
Tutorial Example - Designing and Simulating MicroBlaze Processor Systems . . . . 162
Using XPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Using Platform Studio SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Chapter 3: Using Hardware Co-Simulation
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
M-Code Access to Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Installing Your Hardware Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Ethernet-Based Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
JTAG-Based Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Third-Party Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Compiling a Model for Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Choosing a Compilation Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Invoking the Code Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Hardware Co-Simulation Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Hardware Co-Simulation Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Selecting the Target Clock Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Clocking Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Selecting the Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Board-Specific I/O Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
I/O Ports in Hardware Co-simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Ethernet Hardware Co-Simulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Point-to-Point Ethernet Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Network-Based Ethernet Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Shared Memory Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Compiling Shared Memories for Hardware Co-Simulation . . . . . . . . . . . . . . . . . . . . 201
Co-Simulating Unprotected Shared Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Co-Simulating Lockable Shared Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Co-Simulating Shared Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Co-Simulating Shared FIFOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Restrictions on Shared Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Specifying Xilinx Tool Flow Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Frame-Based Acceleration using Hardware Co-Simulation . . . . . . . . . . . . . . . . . . 212
Shared Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Adding Buffers to a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
剩余375页未读,继续阅读
资源评论
期待崛起
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功