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 ...
随机推荐
- Asp.Net Web API 2 官网菜鸟学习系列导航
链接地址: http://www.cnblogs.com/aehyok/p/3446289.html
- Android应用程序用真机调试步骤
仅供参考: 1.开启调试模式 2.安装 Adb.exe 将platform-tools文件夹里面adb.exe AdbWinApi.dll AdbWinUsbApi.dll拷贝到tools ...
- jQuery全屏图片焦点图
在线演示 本地下载
- Hbase:简单介绍一下Hbase表的结构
HBase 是一个NoSQL数据库,用于处理海量数据,可以支持10亿行百万列的大表,下面我就和大家分享一下数据是如何存放在HBase表中的 为了更好的理解HBase表的思路,先回顾一下关系数据库中表的 ...
- cocoa应用程序中NSStatusItem的使用
mac上的应用程序除了左上方会有菜单之外,在屏幕的右上方也会有一个图标样的菜单,这个类似于windows上右下角的system tray. 本文讲述如何给自己的应用程序添加一个system tray( ...
- 基于 CodeIgniter 的各类开源项目大全
名称:STBlog 介绍:STBlog 是一套由CI中国社区驱动,基于Codeigniter MVC 框架编写的多权限博客系统,轻巧/快速/安全/易拓展/界面友好是它的最大特点. 官方:http:// ...
- Codeforces Round #448 (Div. 2) B
题目描述有点小坑,ij其实是没有先后的 并且y并不一定存在于a中 判断y的个数和所给数组无关 对于2 - 7来说 中间满足%2==0的y一共有3个 2 4 6 这样 可以看出对于每个数字a 都能够二分 ...
- [ SSH 两种验证方式原理 ]
SSH登录方式主要分为两种: 1. 用户名密码验证方式 说明: (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户: (2) 用户会根据服务器发来的公钥对密码进行加密: (3) 加密后的信 ...
- 英语每日阅读---3、VOA慢速英语(翻译+字幕+讲解):哈佛大学被控歧视亚裔学生
英语每日阅读---3.VOA慢速英语(翻译+字幕+讲解):哈佛大学被控歧视亚裔学生 一.总结 一句话总结:Harvard Accused of Discriminating Against Asian ...
- Django开发点菜系统学习笔记
1.使用django-simple-captcha包的时候,会调用到: register_form = RegisterForm(request.POST) 但是这个时候captcha不进行错误检验, ...