第4节 基于System Generator的硬件协仿真
推荐给好友
打印
加入收藏
更新于2008-05-28 10:57:22

7.4.1 硬件协仿真平台的介绍与平台安装

1.硬件协仿真介绍

通常情况下,在设计基于FPGA的大型信号处理系统的时候,设计人员往往需要进行费时费力的仿真。以Xilinx System Generator for DSP为代表的FPGA设计工具,通过提供可靠的硬件在环接口(该接口可以直接将FPGA硬件置入设计仿真),来解决这种问题。通过在硬件上模拟部分设计,这些接口可以大大提高仿真的速度——通常可以提高一个甚至多个数量级。使用硬件在环还可以让设计人员实时进行FPGA硬件调试和验证。

System Generator for DSP可以为多类FPGA开发平台提供硬件在环接口。这些平台通常通过不同的物理接口和PC建立通信。举例来说,一个JTAG协仿真接口可以允许任何一个具备JTAG头和Xilinx FPGA的FPGA板在System Generator for DSP内部进行协仿真。其它类型的板卡,比如XtremeDSP开发工具套件,是通过PCI总线进行通信的。目前,具有高存储带宽和吞吐率要求的系统协仿真(例如视频和图像处理),还只能在那些通过PCI或者是PCMCIA接口直接与PC建立通信的开发板上进行。

2.硬件协仿真平台的安装

1)安装必备条件

在安装前要确保具备以下硬件:电路板和PC机的以太网接口、并口PC4下载线或USB下载线以及14脚的带状电缆。同时,要安装以下软件:ISE、System Generator以及WinPcap 4.0版。

2)基于以太网接口协仿真平台的安装

  1. 打开PC“网络邻居”中的“网络连接”,在“本地连接”图标上单击右键,选择“属性”命令,双击“Internet 协议(TCP/IP)”,将IP地址设为192.168.8.2,子网掩码设为255.255.255.0.
  2. 单击属性页面的“配置”按键,在弹出的对话框中选择“高级”页面,将属性“Flow Control”和“Speed & Duplex”的值都设为Auto。
  3. 通过以太网连线将电路板和PC机通过以太网接口连接起来。

3)基于JTAG接口协仿真平台的安装


基于JTAG接口协仿真平台不需要特殊安装,只要将JTAG接口通过PC4/USB下载线连接到PC即可。

7.4.2 硬件协仿真的基本操作

1.编译硬件模型

一旦安装了硬件协仿真平台,接下来的基本操作就是建立能在硬件板中实际运行的System Generator模型或子系统。能进行协仿真的模型必须要包括一个System Generator模块,该模块定义了如何将模型编译成硬件。其制作的典型步骤如下:

1)选择编译目标

在设计中双击打开System Generator模块,在“Compilation”栏单击,选择“Hardware Co-Simulation”命令,如果用户使用Xilinx相关的开发板(ML402、ML506),可直接选择;若使用用户板,则选择“New Compilation Target..”,如图7-36所示。



图7-36 硬件协仿真编译目标选择界面

选择了“New Compilation Target..”命令后,会弹出开发板参数配置界面。需要填入开发板的名称、系统时钟的频域与管脚约束、JTAG选项、开发板上FPGA芯片的型号以及非存储器映射端口;如果用户已具有电路板的SBDBuilder描述文件(后缀为.xml),则直接点击“Load”键加载即可。输入电路板信息后,点击 “Save Zip”按键,保存当前设置到相关目录,且后缀为.zip。需要注意的是:要保证.zip的存放路径和MATLAB的当前路径一致。如加载了Spartan3E开发板的.xml文件后,配置页面如图7-37所示。



图7-37 目标板配置界面示意图

完成上述步骤后,System Generator会提示用户安装Plugin,也可取消后在MATLAB命令行输入xlInstallPlugin('s3e_starter.zip'),会自动弹出图7-38所示的提示界面,单击“OK”确认。



图7-38 用户板安装完成提示界面

2)调用代码生成器

在编译过程中,System Generator不仅生成了HDL代码和网表,还运行了下载工具将网表转化成可配置比特文件。因此,点击图8-13中的“Generator”按键,即可调用代码生成器生成适合硬件协仿真的配置比特流文件。该文件不仅包含了模型设计的硬件代码,还包括附加的额外逻辑,在PC和硬件平台之间建立一个物理接口,保障System Generator和平台之间的双向通信。此外,设计中的特殊电路也包含在其中,如DCM模块、外部读写组件等。

2.硬件协仿真模块

硬件协仿真模块也是一类专用模块,一旦将设计编译成FPGA比特流文件,System Generator会自动创建一个新的硬件协仿真模块,同时还会生成一个Simulink库来存储生成的模块。此外,用户可将该模块从库中复制到其余的Simulink设计中使用。硬件协仿真模块会自动指定驱动其模块或子系统的外部端口,而且它的端口名和类型都与原始设计的端口一致,其原理如图7-39、7-40所示。



图7-39 硬件协仿真PC端网络配置界面示意图                           图7-40 PC属性值选择界面示意图

硬件协仿真模块在Simulink设计中和普通模块的使用方法一样的。在仿真期间,该模块和所使用的FPGA平台交互,自动完成芯片配置、数据传输和时钟等任务。一旦输入端口写入数据,协仿真模块会自动将相应的数据发送到硬件中合适的位置。同样,如果数据输出端口有变化,模块自动将数据从硬件中取回。

协仿真模块可以被Xilinx定点信号类型、Simulink定点信号类型以及Simulink双精度类型驱动。输出信号类型则取决于和其级联的模块,如果输出端口驱动了System Generator模块,则其输出数据为Xilinx定点信号类型;如果输出端口驱动了Simulink模块,则输出数据为Simulink数据类型。需要注意的是:一旦输入、输出数据为Simulink类型,则所有数据通过四舍五入的方法来量化,溢出则采用饱和处理。

同样,协仿真模块也可具备参数化配置的能力,这是由FPGA平台决定的,不同的平台提供不同的参数化模型。

3.硬件协仿真时钟

1)确定目标板时钟频率

在电路板上,一般只有单一系统时钟,到了FPGA内部,可通过DCM模块得到不同的频率,但是在协仿真中只能使用不高于系统时钟的某些特定频率值。例如Xilinx公司的ML402开发板,系统时钟为100MHz,但可用的硬件协仿真频率只能为100MHz、66.7MHz、50MHz以及33.3MHz。

在System Generator中,点击协仿真模块的“Settings…”按键,在弹出配置对话框的“Clock Frequency”栏的下拉框中选择相应的频率,如图8-41所示。



图7-41 用户板安装完成提示界面

2)时钟模式

协仿真模块和相关联的FPGA芯片建立同步时钟的方法有两种:单步时钟(Signal-Step Clock)和自由运行时钟(Free-Running Clock)。在前一种模式下,FPGA的时钟受Simulink控制,数据是同步采样的;在后一种模式下,FPGA由自身内部提供时钟,当Simulink启动硬件仿真时,数据是通过异步采样得到的。其时钟模式配置界面如图8-42所示。



图7-42 协仿真模块的时钟模式配置界面

在单步时钟模式下,硬件通过一个时钟脉冲在每个仿真阶段和软件同步,从而保证了硬件协仿真模块和原始模型是真正意义上的比特一致或周期一致。但由于硬件协仿真模块只在Simulink调用它时,才产生硬件工作所需的时钟信号,因此它与Simulink模块的通信开销以及FPGA芯片和Simulink的开销是比较大的,在一定程度上限制了硬件的性能。从经验上来讲,只要FPGA内部的计算量远大于通信开销时,就能明显起到硬件加速的功能。

和单步时钟模式不同的是,在自由运行模式中,硬件运行和软件仿真是异步的,且不受软件控制,其时钟是连续运行的。这样,FPGA的端口不再同步于Simulink仿真端口的事件,协仿真模块和原始模型就不是比特一致的。例如,当Simulink端口有事件发生时,需要硬件平台在此时将数据读进或写出到相应的端口上,但是由于延迟了未知的时钟周期后,硬件的状态已不能接收或发送数据,就会造成仿真出错。因此,在自由运行模式中,必须在原始模型中就加入严格的同步机制。

4.指定板级IO端口

在实际的电路板中,一般都有多个芯片和FPGA通信,如外部存储器、ADC以及DAC等。如果在协仿真中直接利用这类硬件资源,将会得到更高的仿真性能。在System Generator中可通过指定板级IO(board-specific I/O)端口来实现与FPGA外部芯片交互的功能。板级特殊IO端口在编译时将被指定到FPGA的端口上,它与标准的硬件协仿真端口是不同的,是通过特殊的non-memory mapped gateway模块来实现的。non-memory mapped gateway模块在Simulink中常用来描述被包括在Simulink子系统或库中的器件,包括LED、按键以及外部存储器等。

当System Generator将板级IO模块编译成硬件代码时,IO端口将通过外部器件接口模块连接到FPGA管脚上。常见的接口模块如图8-43所示。



图7-43 协仿真模块板级IO接口示意图

注意:如果使用了“Gateway In”或“Gateway Out”模块,在编译时,不会将信号连接到FPGA管脚上,而是相应的Simulink端口上。

5.硬件协仿真示例

本章7.7节将结合FIR滤波器给出硬件协仿真的具体示例,这里就不再介绍。

7.4.3 共享存储器的操作

System Generator硬件协仿真接口允许将共享存储器以及相关模块(共享FIFO以及共享寄存器等)编译到FPGA中完成协仿真。这些接口使得基于硬件的共享存储资源映射到PC机的通用地址空间。共享存储单元有助于在PC机和FPGA之间完成高速的数据传输,以及实时的硬件协仿真。本节以共享FIFO模块为例,介绍共享存储器在协仿真中的使用方法。其余类型共享存储器的操作步骤是类似的。

1.编译共享存储器

包含共享存储器设计的硬件协仿真和普通协仿真设计的编译过程是一样的,选择编译目标,并在System Generator对话框上点击“Generater”按键。在协仿真中被编译的共享存储器都会在硬件中通过IP Core或者HDL单元来实现。表8-11给出了共享存储单元和硬件实现的映射关系。

表7-11 共享存储器模块列表

 

2.含有FIFO的协仿真

在硬件协仿真中,可以生成To FIFO模块、From FIFO模块以及共享FIFO对模块,其中共享FIFO对模块由一个命名相同的To FIFO模块和From FIFO模块组成,To/From FIFO可通过Core Generator配置成独立时钟。

异步FIFO在多时钟应用中是最安全的交换时钟的方法。如果选择自由运行时钟模式,则FPGA和Simulink仿真是异步的,也就是二者没有保持同步锁相,必然会建立两个时钟域:Simulink仿真时钟域和FPGA自由运行时钟域。此时,共享FIFO提供了最可信、最安全的方式来完成PC和FPGA芯片的数据交互。此外,共享FIFO还在协仿真期间支持突发传送数据的能力,使得单次传送一个矢量或数据帧成为可能。

在协仿真中生成一个共享FIFO对,则仿真中的两个FIFO模块会被一个独立的异步FIFO代替。如图8-44所示,FIFO的读、写端全部连接到用户设计逻辑(用户逻辑由原始Simulink设计驱动)。同时,由于FIFO的两端全部连接到用户逻辑, PC端就不能在设计中控制FIFO。



图7-44 共享FIFO对的典型连接示意图

从图8-44中可以看出,虽然异步FIFO的两个时钟全部预留了,但是其时钟源来源于同一信号,和多时钟域工作还是不同的。单个共享FIFO和共享FIFO对的使用是有所不同的。FIFO的一端连接到PC接口逻辑上,另一端连接到原始的To/From FIFO模块上,这样控制逻辑就分布在PC和FPGA之间。如图8-45所示,当一个To FIFO模块编译成硬件后,FIFO的写控制端连接到用户逻辑上,读控制端连接到PC接口上,允许PC在仿真期间从FIFO接口读数。



图7-45 单个写FIFO的典型连接示意图

如图8-46所示的应用中,FIFO的读控制端连接到和用户设计中,写控制端被连接到PC接口上,允许PC在仿真期间向FIFO中写数。



图7-46 单个读FIFO的典型连接示意图

在硬件协仿真系统中,共享FIFO对经常分布于Simulink软件和FPGA硬件两端,也就是说一部分在FPGA中实现,另一部分通过To/From FIFO在软件中模拟,将软件和硬件合起来就构成了一个完整的异步FIFO。如果一个软件/硬件共享FIFO对被仿真,则System Generator会有效管理PC和FPGA之间的必要传输。在仿真中,当数据被写入软件端的To FIFO模块中时,相同的数据也会在硬件中写到FIFO中,硬件设计可通过读取数据获得该数据。类似地,如果在硬件中,将数据写入FIFO中,则在软件端,可通过From FIFO模块将数据读出来。

需要注意的是:共享FIFO的空指示信号、满指示信号、读使能、写使能并不能很好地反映出硬件FIFO的状态。在硬件协仿真中,将一个软件共享FIFO连接到硬件共享FIFO最简单的方法就是通过共享FIFO的名字指定(这里需要展开分析名字指定吗??)。

3.共享内存的限制

在System Generator中使用共享内存,需要满足以下限制条件:

  •  一旦编译后,共享存储器的访问特性不允许再改变;
  • 共享存储器的地址数据位宽不能超过24比特,最深的访问深度为16,777,216字;
  • 共享存储器,包括寄存器、FIFO等单元,其数据位宽不能超过32比特;
  • 全部的共享存储器都是通过内部的块RAM来实现的,目前还不支持利用分布式RAM以及外部存储器来实现的功能;
  • 共享存储器是不能重复命名的。

 

<<上一节    下一节>>




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.