matlab中hdl coder 的使用

今天摸索了一下hdl coder的使用方法,各个步骤主要是照猫画虎,有些地方还是不理解,先总结一下:

1.要想调用quartus或者Xilinx综合布局布线需要先设置,设置的方法有两种,命令窗口输入

hdlsetuptoolpath(‘ToolName‘, ‘Altera Quartus II‘, ...
‘ToolPath‘, ‘D:\altera\10.1\quartus\bin\quartus.exe‘);或者在matlab安装目录下找到toolbox\local新建一个startup.m把这条命令写进去,如果用的是quartus只需要把路径改一下,赛灵思的话就把工具名路径都改一下(startup.m也可以加其他命令,matlab会在启动时执行,比如把默认路径给改成经常使用的地址,等等)。

2.目录切换到工程目录下后,在命令行输入hdlcoder就会启动,输入工程名,工程路径,保存就建好工程了,这时候在matlab的右边会有一个提示框,分成两部分,function和test bench 把两个文件分别添加进来。

3.点击workflow advisor 就进入转换界面,我认为转换主要有3大块,1.浮点转定点。2.生成hdl文件。3.仿真文件生成。至于综合布局布线还是用quartus或者xilinx比较好,更顺手。分点来说,1.浮点转定点,转之前先执行第一步 define input types, 如果文件没问题的话运行一下就自动捕获到输入数据类型了。在定点转化之前,先固定一个长度,设置建议长度,有两个长度,一个是小数长度,一个是数据位宽,也就是生成Verilog后寄存器型数据的长度。毫无疑问肯定是固定小数长度选建议数据位宽了,看数据手册貌似有4%的余量,没有深究,之后点simulation就会仿真,仿真过程软件自动捕获数据范围并给出合理的位宽,当然如果觉得不合适还可以手动修改只需要在建议位宽处点击便会出现对话框更改。之后就是生成定点数表示的matlab程序,然后就是检查定点化的设计跟浮点设计相比的误差,会有相应的报告。当然选的位宽越大那误差相应就越小了。

4.转完定点就是hdl生成了,hdl生成有很多选项,其中我认为最主要的就是优化选项,包括pipeline的设置,资源共享,循环的展开等等,但是看了个视频人家可以用streaming减少乘法器和加法器的数量,但是我找不到streaming选项,不知道是版本的问题?(我用的2014a,视频用的2012a)还是其他问题,用user guide里的例子发现不是太复杂的例子就消耗了fpga25个乘法器,如果能找到优化办法就比较好了。算法设计中资源和速度的瓶颈就在于加法器乘法器,能够提高的话系统的速度就会上去。

5.仿真文件不仅包含hdl文件,还可以生成cosimulation文件matlab和modelsim同时仿真用得到,还有fpga-in-the-loop仿真文件,是matlab和fpga硬件的协同仿真需要的文件,暂时还用不到,不去深究。

6.把整个流程走了一遍,但是问题还有,需要下面进一步研究。

时间: 2024-08-26 13:46:24

matlab中hdl coder 的使用的相关文章

MatLab之HDL coder

1 Workflow The workflow for applying HDL code generation to the hardware design process requires the following steps:

Matlab中使用jython扩展功能

Matlab中面向对象能力并不强,通过使用jython引擎能够对其功能扩展. 1 编辑classpath.txt增加jython.jar 在matlab中输入 which classpath.txt 结果: /usr/local/MATLAB/R2013a/toolbox/local/classpath.txt 编辑该文件,加入 /home/your_user/jython2.5.3/jython.jar 2 又一次启动matlab 3 编写代码測试 import javax.script.In

【caffe-windows】 caffe-master 之Matlab中model的分类应用

此篇讲述在matlab中,如何将训练好的model用于图像分类.将以mnist为例,主要用到caffe-master\matlab\demo 下的classification_demo.m ,可参考我之前的博客 [caffe-windows] caffe-master 之 classfication_demo.m 超详细分析 (http://blog.csdn.net/u011995719/article/details/54135189) 首先贴大神的博客:http://blog.csdn.n

MATLAB中fft

一般的fft需要将点数补成2的整数次幂,MATLAB中有fft函数,输入N点序列则输出也是N点序列,其中N不一定为2的整数次幂.所以会疑惑MATLAB做的fft和N点序列对应的dft是否一样.经过验证,MATLAB中对N点序列做fft的结果与N点dft的结果是完全一样的,没有对N点序列进行补0后再做操作. 下面是MATLAB代码和结果. n = 0: 49; A = 444.128; a = 50 * sqrt(2.0) * pi; w0 = 50 * sqrt(2.0) * pi; T = 0

matlab中hold指令、figure指令及subplot指令的使用

一.hold指令使用 正常情况下,plot指令显示figure时,以前的数据丢失了.使用hold on指令后,此后添加的一系列plot曲线将叠加在前一个图上当使用hold off后,恢复为默认状况,plot后将取代旧的figure 代码: % 提示 disp ('该功能练习hold功能'); %初始化快捷式数组 x=-2*pi:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'b-'); title('sin(x)和cos(x)图形'); %该语句必须在p

matlab中同一文件定义子函数的方法

在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M文件名必须和主函数相同在一个m文件中通常有两种定义子函数的方法: 1.嵌套定义 myfunc1会和主函数共享变量名.这种情况下,使用相同的变量名,如果不是故意为之,就不合适了.function mainFunc(... a = myfunc1();...function myfunc1()...end end2. 非嵌套定义function mainFunc()...a = myfunc1();...end functi

Python 之 h5py 读取 matlab 中 .mat 文件 cell 方法浅析

采用 Python 读取 matlab 中 .mat文件的方法有很多,中外文的论坛上都不少,相关博文 可见:Python 从 mat 文件的读写和存储 到 h5py 文件包. 详址:http://blog.csdn.net/u013630349/article/details/47090299 但是,在读取matlab文件的时候,往往不是一层 .mat 就足以解决问题的,.mat 文件中可能是存放的 cell(100*200) 数据, cell(100*200)数据中又分为多个 cell .那么

Matlab中怎样将.dat格式的文件进行加载转化为一个矩阵??

在网上下载了一个数据集rating.dat,格式为.dat的,要在matlab中使用,必须将其转化为一个.mat格式的矩阵,下面写一下具体步骤: 第一步:打开matlab,界面如图: 然后点击“打开”选项:界面如下 例如选择rating.dat 文件 点击上图右下角“打开”,得到如下界面: 然后在“列分隔符”里进行选择,由于原文本文件格式如下图: 所以选择“列分隔符”中的::,然后选中所有数据,再点击"导入",选择其中的“导入数据”,则得到结果为m*4的矩阵:

MATLAB中绘制质点轨迹动图并保存成GIF

工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t).^2);y = sin(2*t).*(sin(t).^2);z = t;comet(x,y,0.1); %绘制二维%comet3(x,y,z,0.1); %绘制三维 这有一个问题在于comet或comet3无法控制绘制的动画的速度,为了实现这一点,一个可行的方法是重写comet和comet3,在每