这个例子说明如何使用HDL的工作流程顾问实施上的Speedgoat FPGA金宝app I / O板的Simulink算法:
指定一个FPGA电路板和其I / O接口。
合成Simulink的算法FP金宝appGA编程。
生成的Simulink金宝app实时™接口子系统模型。
该接口子系统模型包含块以对FPGA进行编程和实时应用程序执行过程中与FPGA I / O板通信。您所生成的子系统添加到您的Simulink实时域模型。金宝app
整个工作流程看起来像这个数字。
本例使用的Speedgoat IO331。您可以使用Simulink的Real-Time和HDL编码器,以金宝app满足速度,大小和型号的引脚金宝app排列要求支持的FPGA I / O模块。
HDL编码器™
在开始之前,完成FPGA子系统的计划。
对于IO331板,高密度脂蛋白工作流程顾问需要赛灵思ISE工具集。要安装此工具集,在命令窗口中,键入:
hdlsetuptoolpath( '工具名称', '赛灵思ISE', '刀具路径',刀具路径)
哪里刀具路径
是综合工具可执行文件的完整路径。
对于其他板的工具集的要求,请参阅支持第三方工具和硬件(HDL编码器)。金宝app
Simu金宝applink的FPGA域模型包含一个子系统(算法)将被编程到FPGA芯片。利用该模型,您可以在模拟环境中,你下载算法的FPGA板前测试您的FPGA算法。
创建包含要加载到F金宝appPGA,在这种情况下,环回测试的算法的Simulink模型。
放置在一个子系统块内的FPGA进行编程的算法。该模型可以包括用于测试其他模块和子系统。然而,一个子系统必须包含FPGA算法。
设置或确认的子系统运行轨迹和外埠名称和数据类型。的HDL编码器HDL工作流顾问使用这些设置用于路由和映射算法信号到I / O连接器通道。
保存模型。
这种模式是你的FPGA领域模型。它代表着你的FPGA板上的时钟的模拟采样率。例如,的Speedgoat IO331具有板载125 MHz时钟。模拟一秒等于模型125e6迭代。
对于FPGA域模型的一个例子,请参见dslrtSGFPGAloopback_fpga
。该伺服系统
子系统包含FPGA算法。
此过程使用dslrtSGFPGAloopback_fpga
例。您必须已经创建了在FPGA领域模型的FPGA子系统(算法),并开发了一个FPGA子系统的计划。
打开FPGA领域模型dslrtSGFPGAloopback_fpga
。
在FPGA模型中,用鼠标右键单击FPGA子系统(伺服系统
)。从上下文菜单中选择HDL代码>HDL工作流顾问。该HDL流程顾问对话框显示几个任务子系统。地址只有你所需要的任务子集。
展开设置目标文件夹并选择任务1.1设置目标设备和综合工具。
组目标工作流程至金宝appSimulink的实时FPGA I / O
。
来自目标平台列表中,选择在这种情况下的Speedgoat FPGA I / O板安装在您的Speedgoat目标机,的Speedgoat IO331
。检查HDL流程顾问设置综合工具赛灵思ISE设计套件。
请点击运行此任务。
您必须已经配置的FPGA目标。
在里面设置目标文件夹,选择任务1.2设置目标接口。
在里面处理器/ FPGA同步中选择自由奔跑
。
对于信号赫温
和hwOut
, 在里面目标平台接口栏,选择LVCMOS I / O通道[0:63]
。在里面位范围/地址/ FPGA引脚列中,输入信道值的每个信号,或者采取默认值。
对于信号pciRead
和pciWrite
, 在里面目标平台接口栏,选择PCI接口
。在里面位范围/地址/ FPGA引脚列中,使用自动生成的值。不要输入PCI地址值。
请点击运行此任务。
您必须已经配置的FPGA目标接口。
在里面设置目标文件夹,选择任务1.3的设定频率(可选的)。该设定频率窗格包含表示FPGA输入时钟频率(固定)和FPGA系统时钟频率的字段。FPGA的系统时钟频率默认为FPGA的输入时钟频率。
指定一个不同的系统时钟频率(例如,50MHz的),在字段中键入新的值FPGA的系统时钟频率(MHz)。用于系统时钟率的允许范围,请参阅的Speedgoat板特性表。该系统集有时从你指定的值不同。
请点击运行此任务。
此过程产生用于dxpcSGFPGAloopback_fpga例如接口子系统文件。
分配不同的名称,以包含不同的HDL代码块。接口子系统的文件的名称是直接从块名称的。如果包含不同的HDL代码的两个块具有相同的名称,名称冲突和块的人得到了错误的代码。
您必须已经配置的FPGA目标接口和所需的目标频率。如果您指定的向量inports或outports,您必须已经选择了Scalarize矢量端口复选框。此复选框上编码风格节点的标签全局设置,在节点HDL代码生成在配置参数对话框。
展开下载到目标文件夹,右键单击任务5.2生成Simulink金宝app的实时接口。
在此窗格中,单击运行到选定的任务。
这个动作:
运行剩余的任务。
创建于FPGA比特流文件hdlsrc
夹。Simu金宝applink的实时接口子系统引用在编译和下载过程这个比特流文件。
生成一个名为模型gm_dslrtSGFPGAloopback_fpga_slrt
,其中包含了Simulink的实时接口子系金宝app统。
这里是高密度脂蛋白HDL编码器工作流程顾问的这一行动之后的示例。
生成的接口子系统看起来像这个数字。
这个生成的模型包含具有相同的名称作为在Simulink FPGA域模型子系统掩蔽子系统。金宝app虽然外观相似,该子系统不包含Simulink的算法。金宝app相反,该算法在FPGA中实现的比特流。您参考和算法加载到从该子系统的FPGA。
使用Simulink金宝app的实时软件,变换的Simulink或Stateflow®域模型到Simulink实时域模型并执行它Speedgoat目标机,用于实时测试应用程序上。创建的Speedgoat FPGA接口子系统后。然后,您可以通过插入接口子系统包括在Simulink的实时域模型的FPGA板。金宝app
创建要与FPGA的金宝app算法模拟功能的Simulink的实时域模型。离开断开FPGA子系统的inports和outports。
保存模型。
Simu金宝applink的实时域模型看起来这个数字。见例模型dslrtSGFPGAloopback_slrt
。
在Simuli金宝appnk实时接口子系统面具,设置三个参数:
设备索引
PCI插槽
采样时间
要集成接口子系统:
在Simuli金宝appnk编辑器,打开gm_dslrtSGFPGAloopback_fpga_slrt
。
复制Simulin金宝appk的实时接口子系统,并将其粘贴到Simulink的实时域模型。
保存或放弃gm_dslrtSGFPGAloopback_fpga_slrt
。您可以重新使用HDL编码器HDL工作流程顾问它作为必需的。
在领域模型中,连接信号到接口子系统的inports和outports。
根据在Speedgoat目标机,在FPGA I / O板设置块参数。
如果你有一个单一的FPGA I / O板,离开该设备指数和PCI插槽的默认值。您可以设置采样时间或离开它-1
继承。
如果你有多个FPGA I / O板,给每个板上的唯一设备索引。
如果有相同类型的两个或更多个板(例如两个的Speedgoat IO331材),指定每个板上的PCI槽([总线,时隙])。获取与SimulinkRealTime.target.get金宝appPCIInfo功能这一信息。
6保存模型。
更新Simulink的实金宝app时域模型看起来这个数字。见例模型dslrtSGFPGAloopback_slrt_wiss
。
做这个程序,您必须已经创建了包括从HDL编码器HDL工作流程顾问生成的Simulink的实时接口子系统Sim金宝appulink的实时域模型。
配置Speedgoat目标机,并将其连接到开发计算机。
建立和下载Simulink的实时应用。金宝app实时应用程序加载到Speedgoat目标机,以及FPGA算法位流加载至FPGA。
如果使用的是I / O线(信道),确认是否已被测连接线到外部硬件。
Simulink的实时模型的启动和停止控制FPGA算金宝app法的启动和停止。该FPGA算法执行在FPGA I / O板的时钟频率,同时根据与模型样品时的实时应用程序执行。