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.把整个流程走了一遍,但是问题还有,需要下面进一步研究。
matlab中hdl coder 的使用的更多相关文章
- MatLab之HDL coder
1 Workflow The workflow for applying HDL code generation to the hardware design process requires the ...
- 基于Hdl Coder实现卡尔曼滤波算法
总所周知,FPGA极其不擅长复杂算法的运算,但是如果项目中又涉及一些高级算法的实现,在没有可封装IP核调用的形式下,我们应该如何进行程序开发呢?今夕已经是2020年,我们一味依赖于用verilog写代 ...
- matlab中fspecial Create predefined 2-D filter以及中值滤波均值滤波以及高斯滤波
来源: 1.https://ww2.mathworks.cn/help/images/ref/fspecial.html?searchHighlight=fspecial&s_tid=doc_ ...
- matlab中floor 朝负无穷大四舍五入
来源:https://ww2.mathworks.cn/help/matlab/ref/floor.html?searchHighlight=floor&s_tid=doc_srchtitle ...
- matlab中num2str 将数字转换为字符数组
参考:https://ww2.mathworks.cn/help/matlab/ref/num2str.html?searchHighlight=num2str&s_tid=doc_srcht ...
- matlab中imread 从图形文件读取图像
来源:https://ww2.mathworks.cn/help/matlab/ref/imread.html?searchHighlight=imread&s_tid=doc_srchtit ...
- matlab中bitshift 将位移动指定位数
来源:https://ww2.mathworks.cn/help/matlab/ref/bitshift.html?searchHighlight=bitshift&s_tid=doc_src ...
- matlab中reshape 重构数组
来源:https://ww2.mathworks.cn/help/matlab/ref/reshape.html?searchHighlight=reshape&s_tid=doc_srcht ...
- matlab中find 查找非零元素的索引和值
来源:https://ww2.mathworks.cn/help/matlab/ref/find.html?searchHighlight=find&s_tid=doc_srchtitle f ...
随机推荐
- Sybase:存储过程中采用临时表存储统计数据
Sybase:存储过程中采用临时表存储统计数据 作用 很有效的提升统计查询速度,对于数据量亿级.千万级多表之间关联查询,非常有效: 使用 --无需定义临时表,直接使用 --自动释放临时表 select ...
- web页面如何打包封闭成手机APP
所谓的webApp就是html页面跟原生app结合而成的一种应用,这种应用的开发可以节省不少的成本,做出来的app跟原生一样,webApp利用框架技术可以让你有使用app的感觉,具体可以看平安银行的a ...
- hive 数据清理--数据去重
hive> select * from (select *,row_number() over (partition by id) num from t_link) t where t.num= ...
- response.setHeader()用法
response.setHeader()下载中文文件名乱码问题 收藏 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data ...
- const对象 不能调用非const修饰的成员函数
class class UIRect:public RECT { public: UIRect(LONG leftT = 0, LONG topT = 0, LONG rightT = 0, LONG ...
- jmeter的学习(配置环境)
jmeter是一款开源工具.解压即可使用 前提要安装配置jdk.验证jdk是否安装配置成功.运行cmd输入“ java -version” 如上图所示.jdk安装配置成功:64位版本1.8 现在即可进 ...
- easyui-textbox高为0
之前在项目中也遇到过,一段时间没遇到这种问题居然又忘记了,想着还是在博客中记录一下,方便自己记忆,也供大家参考. 大家是否也遇到过easyui-textbox高为0的情况呢 像这样: 用户名:< ...
- 51nod1241 lis变形
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1241 1241 特殊的排序 题目来源: 摩根斯坦利的比赛题 基准时间限制 ...
- lucas定理学习
Lucas定理是用来求 c(n,m) mod p,p为素数的值. 表达式: C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 当我们遇到求一个N,M很大的组合数的时候,递推法就显得很耗 ...
- vue项目中报常见错误
最近做项目,添加了less样式之后报错, 添加了如下样式: 报错如下图: 于是,就把相关的依赖也都安装了 以为这样会好使啦,后来发现原来是vue-style-loader的问题, 安装的vue-sty ...