FPGA编程和配置

这个例子说明如何使用HDL的工作流程顾问实施上的Speedgoat FPGA金宝app I / O板的Simulink算法:

  1. 指定一个FPGA电路板和其I / O接口。

  2. 合成Simulink的算法FP金宝appGA编程。

  3. 生成的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

步骤1. Sim金宝appulink的域模型

Simu金宝applink的FPGA域模型包含一个子系统(算法)将被编程到FPGA芯片。利用该模型,您可以在模拟环境中,你下载算法的FPGA板前测试您的FPGA算法。

  1. 创建包含要加载到F金宝appPGA,在这种情况下,环回测试的算法的Simulink模型。

  2. 放置在一个子系统块内的FPGA进行编程的算法。该模型可以包括用于测试其他模块和子系统。然而,一个子系统必须包含FPGA算法。

  3. 设置或确认的子系统运行轨迹和外埠名称和数据类型。的HDL编码器HDL工作流顾问使用这些设置用于路由和映射算法信号到I / O连接器通道。

  4. 保存模型。

这种模式是你的FPGA领域模型。它代表着你的FPGA板上的时钟的模拟采样率。例如,的Speedgoat IO331具有板载125 MHz时钟。模拟一秒等于模型125e6迭代。

对于FPGA域模型的一个例子,请参见dslrtSGFPGAloopback_fpga。该伺服系统子系统包含FPGA算法。

步骤2. FPGA终端配置

此过程使用dslrtSGFPGAloopback_fpga例。您必须已经创建了在FPGA领域模型的FPGA子系统(算法),并开发了一个FPGA子系统的计划。

  1. 打开FPGA领域模型dslrtSGFPGAloopback_fpga

  2. 在FPGA模型中,用鼠标右键单击FPGA子系统(伺服系统)。从上下文菜单中选择HDL代码>HDL工作流顾问。该HDL流程顾问对话框显示几个任务子系统。地址只有你所需要的任务子集。

  3. 展开设置目标文件夹并选择任务1.1设置目标设备和综合工具

  4. 目标工作流程金宝appSimulink的实时FPGA I / O

  5. 来自目标平台列表中,选择在这种情况下的Speedgoat FPGA I / O板安装在您的Speedgoat目标机,的Speedgoat IO331。检查HDL流程顾问设置综合工具赛灵思ISE设计套件。

  6. 请点击运行此任务

步骤3. FPGA目标接口配置

您必须已经配置的FPGA目标。

  1. 在里面设置目标文件夹,选择任务1.2设置目标接口

  2. 在里面处理器/ FPGA同步中选择自由奔跑

  3. 对于信号赫温hwOut, 在里面目标平台接口栏,选择LVCMOS I / O通道[0:63]。在里面位范围/地址/ FPGA引脚列中,输入信道值的每个信号,或者采取默认值。

  4. 对于信号pciReadpciWrite, 在里面目标平台接口栏,选择PCI接口。在里面位范围/地址/ FPGA引脚列中,使用自动生成的值。不要输入PCI地址值。

  5. 请点击运行此任务

步骤4. FPGA目标频率配置

您必须已经配置的FPGA目标接口。

  1. 在里面设置目标文件夹,选择任务1.3的设定频率(可选的)。该设定频率窗格包含表示FPGA输入时钟频率(固定)和FPGA系统时钟频率的字段。FPGA的系统时钟频率默认为FPGA的输入时钟频率。

  2. 指定一个不同的系统时钟频率(例如,50MHz的),在字段中键入新的值FPGA的系统时钟频率(MHz)。用于系统时钟率的允许范围,请参阅的Speedgoat板特性表。该系统集有时从你指定的值不同。

  3. 请点击运行此任务

步骤5 Simu金宝applink的实时接口子系统代

此过程产生用于dxpcSGFPGAloopback_fpga例如接口子系统文件。

分配不同的名称,以包含不同的HDL代码块。接口子系统的文件的名称是直接从块名称的。如果包含不同的HDL代码的两个块具有相同的名称,名称冲突和块的人得到了错误的代码。

您必须已经配置的FPGA目标接口和所需的目标频率。如果您指定的向量inports或outports,您必须已经选择了Scalarize矢量端口复选框。此复选框上编码风格节点的标签全局设置,在节点HDL代码生成在配置参数对话框。

  1. 展开下载到目标文件夹,右键单击任务5.2生成Simulink金宝app的实时接口

  2. 在此窗格中,单击运行到选定的任务

这个动作:

  • 运行剩余的任务。

  • 创建于FPGA比特流文件hdlsrc夹。Simu金宝applink的实时接口子系统引用在编译和下载过程这个比特流文件。

  • 生成一个名为模型gm_dslrtSGFPGAloopback_fpga_slrt,其中包含了Simulink的实时接口子系金宝app统。

这里是高密度脂蛋白HDL编码器工作流程顾问的这一行动之后的示例。

生成的接口子系统看起来像这个数字。

这个生成的模型包含具有相同的名称作为在Simulink FPGA域模型子系统掩蔽子系统。金宝app虽然外观相似,该子系统不包含Simulink的算法。金宝app相反,该算法在FPGA中实现的比特流。您参考和算法加载到从该子系统的FPGA。

第6步Simul金宝appink的实时域模型

使用Simulink金宝app的实时软件,变换的Simulink或Stateflow®域模型到Simulink实时域模型并执行它Speedgoat目标机,用于实时测试应用程序上。创建的Speedgoat FPGA接口子系统后。然后,您可以通过插入接口子系统包括在Simulink的实时域模型的FPGA板。金宝app

  1. 创建要与FPGA的金宝app算法模拟功能的Simulink的实时域模型。离开断开FPGA子系统的inports和outports。

  2. 保存模型。

Simu金宝applink的实时域模型看起来这个数字。见例模型dslrtSGFPGAloopback_slrt

第7步Simul金宝appink的实时接口子系统集成

在Simuli金宝appnk实时接口子系统面具,设置三个参数:

  • 设备索引

  • PCI插槽

  • 采样时间

要集成接口子系统:

  1. 在Simuli金宝appnk编辑器,打开gm_dslrtSGFPGAloopback_fpga_slrt

  2. 复制Simulin金宝appk的实时接口子系统,并将其粘贴到Simulink的实时域模型。

  3. 保存或放弃gm_dslrtSGFPGAloopback_fpga_slrt。您可以重新使用HDL编码器HDL工作流程顾问它作为必需的。

  4. 在领域模型中,连接信号到接口子系统的inports和outports。

  5. 根据在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

步骤8:实时应用程序执行

做这个程序,您必须已经创建了包括从HDL编码器HDL工作流程顾问生成的Simulink的实时接口子系统Sim金宝appulink的实时域模型。

  1. 配置Speedgoat目标机,并将其连接到开发计算机。

  2. 建立和下载Simulink的实时应用。金宝app实时应用程序加载到Speedgoat目标机,以及FPGA算法位流加载至FPGA。

  3. 如果使用的是I / O线(信道),确认是否已被测连接线到外部硬件。

Simulink的实时模型的启动和停止控制FPGA算金宝app法的启动和停止。该FPGA算法执行在FPGA I / O板的时钟频率,同时根据与模型样品时的实时应用程序执行。

相关话题