主要内容

hdlverifier.FILSimulation

费尔仿真与MATLAB

描述

FILSimulation系统对象™连接一个FPGA执行MATLAB®试验台。它是通过将输入信号应用于和阅读输出信号从一个高密度脂蛋白模型运行在一个FPGA。您可以使用这个对象模型的源或汇设备配置对象的输入或输出端口。

运行一个模拟组成的MATLAB试验台与FPGA执行:

  1. 定制hdlverifier。FILSimulation对象使用FPGA-in-the-Loop向导

  2. 在设计中创建对象并设置其属性。

  3. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

创建一个hdlverifier.FILSimulation系统对象,使用FPGA-in-the-Loop向导自定义FILSimulation系统对象。FILWizard的输出是一个文件最高级的_fil,最高级的是顶级HDL模块的名称。然后您可以创建一个系统对象通过分配到一个局部变量。

filobj = toplevel_fil创建定制的系统对象FPGA-in-the-Loop向导。最高级的是顶级的名字在HDL代码模块。

您可以创建系统对象并设置其属性:

filobj = toplevel_fil (InputSignals,{‘/高级/ in1’,‘/高级/ in2},…OutputSignals,{/高级/着干活,“/高级/ out2”},…OutputDataTypes,{“双”、“定点”},…“OutputSigned”,真、假);
您还可以调整可写属性系统在创建对象:
filobj = toplevel_fil;filobj。OutputDataTypes =字符(“定点”、“整数”、“定点”);filObj。OutputSigned =(假的,真的,真的);

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

这个属性是只读的。

参数与FPGA板连接,指定为一个特征向量或字符串标量。向量由三部分组成:

  • 连接类型

  • 董事会的IP地址

  • 董事会MAC地址(可选)

例子:char (UDP,期间的“192.168.0.2 00-0A-35-02-21-8A)期间,指定一个UDP连接IP地址192.168.0.2董事会的MAC地址在哪里00-0A-35-02-21-8A。

这个属性是只读的。

设计测试(DUT)顶级名称指定为一个特征向量或字符串标量。

例子:“inverter_top”

这个属性是只读的。

FPGA板名称指定为一个特征向量或字符串标量。

路径FPGA编程文件,指定为一个特征向量或字符串标量。

例子:“c: \ \工作文件名

这个属性是只读的。

FPGA芯片供应商的名称,指定为“Xilinx”,“Microsemi”,或“阿尔特拉”

例子:“阿尔特拉”

这个属性是只读的。

输入宽度,指定为一个整数或一个向量的整数。这个属性是一个整数时,所有输入都有相同的宽度。当整数这个属性是一个向量,向量的数量必须相同大小输入,其中每个值指定了一个不同的输入宽度。

例子:10——所有输入10位宽。

例子:[12 6 1]——设计有三个输入:一个是12位宽,一个是6位宽,一个是1位宽。

这个属性是只读的。

在HDL代码输入路径,指定为一个特征向量,单元阵列的特征向量,标量字符串或字符串数组。

例子:“/高级/ in1”

例子:char(“三机”、“in2”)

这个属性是只读的。

输出位宽度,指定为一个整数或一个向量的整数。

如果您指定一个标量,输出每个有相同的宽度。如果您指定一个向量,向量的数量必须相同大小输出。

例子:10——所有的输出都是10位宽。

例子:[12 6 1]——设计有三个输出:一个是12位宽,一个是6位宽,一个是1位宽。

输出数据类型指定为一个特征向量,单元阵列的特征向量,标量字符串或字符串数组。

如果您指定只有一个数据类型,所有的输出都有相同的类型。否则,指定一个相同大小的单元阵列的输出。

例子:“整数”

例子:char(“整数”、“定点”、“整数”)

指定的输出,将采样因子和相位两个整数的一个向量。第一个整数指定将采样因子,是积极的。第二个整数指定阶段和零个或积极但小于将采样的因素。

例子:(3,1)

输出部分的长度,指定为一个整数或一个向量的整数。

如果你只指定一个标量,每个输出分数相同的长度。否则指定相同大小的一个向量作为输出的数量。

例子:10——所有的输出部分长度是10位。

例子:8][16日——一个输出部分长度是16位,另一个有一小部分长度为8位。

这个属性是只读的。

高密度脂蛋白顶层模块输出端口名称,指定为一个特征向量,单元阵列的特征向量,标量字符串或字符串数组。

例子:着干活的,

例子:char(“着干活”、“out2”)

输出的迹象,指定为false(无符号),真正的(签署),或作为一个逻辑向量。

如果你只提供一个标量,每个输出具有相同的信号。否则,您应该提供一个向量的大小相同的输出。

例子:真正的

例子:(真的,真的,假的)——三个输出组成的签名值,一个无符号值,和一个签署了价值。

硬件超频因素,指定为一个整数。

例子:3

这个属性是只读的。

FPGA在JTAG扫描链的位置,指定为一个正整数。

例子:1

帧大小的来源,指定为一个整数。这个属性只对高密度脂蛋白相关源块,也就是说,高密度脂蛋白块没有输入。

例子:1

使用

描述

例子

(hdloutputs)= filobj ((hdlinputs])连接到FPGA,写道hdlinputsFPGA和读取hdloutputs从FPGA。

输入参数

全部展开

在FPGA上运行,输入指定为数组的值。数组的大小必须匹配的数量输入模块的FPGA上执行。

例子:[RealFft, ImagFft] = fft_obj (12);值3和12到FPGA驱动。

数据类型:int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|定点

输出参数

全部展开

从FPGA,返回输出指定为数组的值。数组的大小相匹配的输出模块在FPGA上执行。

例子:[RealFft, ImagFft] = fft_obj (real_in imaginary_in);返回一个复数从FPGA两个值:RealFftImagFft

数据类型:int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|定点

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

这个示例使用MATLAB®系统对象和一个FPGA验证寄存器传输级(RTL)设计的快速傅里叶变换(FFT)的8号用Verilog编写的。FFT是数字信号处理中常用来产生信号的频率分布。

来验证这个FFT的正确性,提供testbench MATLAB系统对象。这个testbench生成一个周期性的正弦输入HDL设计测试(DUT)和阴谋复平面的傅里叶系数。

FPGA设计的软件环境

在使用FPGA-in-the-Loop之前,确保你的系统环境访问FPGA设计软件的设置正确。您可以使用函数hdlsetuptoolpathFPGA设计软件添加到当前MATLAB系统路径。

发射FilWizard

启动费尔向导FFT例子来填充信息。输入你的FPGA板信息在第一步中,按照向导的每一步和生成FPGA编程文件和费尔系统对象。

filWizard (“fft_hdlsrc / fft8_sysobj_fil.mat”);

FPGA程序

程序生成的FPGA编程文件。在继续之前,确保费尔向导完成FPGA编程文件生成。还要确保你的FPGA板打开并连接正常。

运行(“fft8_fil / fft8_programFPGA”);

实例化SineWave系统对象

下面的代码实例化的系统对象代表了正弦波发生器(F = 100 hz,抽样= 1000 hz,复杂修复点输出)。

SinGenerator = dsp.SineWave (“频率”,100,“振幅”,1“方法”,“查表”,“SampleRate”,1000,“OutputDataType”,“自定义”,“CustomOutputDataType”,numerictype ([] 10 9),“ComplexOutput”,真正的);

实例化FPGA-in-the-Loop系统对象

fft8_fil是一个定制的FILSimulation系统对象,它代表的HDL实现FFT的FPGA仿真系统上运行。

Fft = fft8_fil;

运行仿真

这个例子模拟正弦波发生器和FFT HDL实现通过FPGA-in-the-Loop系统对象。这部分的代码调用处理循环处理数据取样。

2 = 1:1000%读1样本正弦波发生器ComplexSinus =步骤(SinGenerator);%的发送/接收1样品/ HDL FFT FPGA[RealFft, ImagFft] =步骤(Fft,实际(ComplexSinus),图像放大(ComplexSinus));% FFT样本存储在一个向量ComplexFft (ii) = RealFft + ImagFft * 1我;结束

显示傅里叶系数

傅里叶系数在复平面的阴谋。

%抛弃第一12个样本(高密度脂蛋白的FFT算法的初始化)ComplexFft (1:12) = [];
%显示FFT情节(ComplexFft“罗”);标题(在复平面的傅里叶系数);包含(“实轴”);ylabel (“虚轴”);

这个结论是“FPGA-in-the-Loop使用MATLAB仿真系统对象”的例子。

版本历史

介绍了R2012b