今天摸索了一下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 的使用的更多相关文章

  1. MatLab之HDL coder

    1 Workflow The workflow for applying HDL code generation to the hardware design process requires the ...

  2. 基于Hdl Coder实现卡尔曼滤波算法

    总所周知,FPGA极其不擅长复杂算法的运算,但是如果项目中又涉及一些高级算法的实现,在没有可封装IP核调用的形式下,我们应该如何进行程序开发呢?今夕已经是2020年,我们一味依赖于用verilog写代 ...

  3. matlab中fspecial Create predefined 2-D filter以及中值滤波均值滤波以及高斯滤波

    来源: 1.https://ww2.mathworks.cn/help/images/ref/fspecial.html?searchHighlight=fspecial&s_tid=doc_ ...

  4. matlab中floor 朝负无穷大四舍五入

    来源:https://ww2.mathworks.cn/help/matlab/ref/floor.html?searchHighlight=floor&s_tid=doc_srchtitle ...

  5. matlab中num2str 将数字转换为字符数组

    参考:https://ww2.mathworks.cn/help/matlab/ref/num2str.html?searchHighlight=num2str&s_tid=doc_srcht ...

  6. matlab中imread 从图形文件读取图像

    来源:https://ww2.mathworks.cn/help/matlab/ref/imread.html?searchHighlight=imread&s_tid=doc_srchtit ...

  7. matlab中bitshift 将位移动指定位数

    来源:https://ww2.mathworks.cn/help/matlab/ref/bitshift.html?searchHighlight=bitshift&s_tid=doc_src ...

  8. matlab中reshape 重构数组

    来源:https://ww2.mathworks.cn/help/matlab/ref/reshape.html?searchHighlight=reshape&s_tid=doc_srcht ...

  9. matlab中find 查找非零元素的索引和值

    来源:https://ww2.mathworks.cn/help/matlab/ref/find.html?searchHighlight=find&s_tid=doc_srchtitle f ...

随机推荐

  1. 20145217《网络对抗》 Web安全基础实践

    20145217<网络对抗> Web安全基础实践 一.实践任务 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 二.实验后回答问题 (1)SQL注入攻击原理,如 ...

  2. Python 面向对象的综合应用

    # 面向对象的综合应用 # 计算器:实现一些基本的计算操作,已经打印结果 # --------------- 代码1 ---------------------- def add(x, y): ret ...

  3. Luogu-3648 [APIO2014]序列分割

    Luogu-3648 [APIO2014]序列分割 题目链接 题解: 首先要发现一个重要的性质:分割的顺序是不会影响答案的 证明: 首先对于没有交的两段区间,显然先后顺序改变不会有影响 而对于在同一段 ...

  4. notepad++使用正则表达式的查找替换

    使用正则表达式可以很好地完成很多繁琐耗时的工作,以下抄录editplus正则表达式的使用,同样适用于notepad++:表达式 说明\t 制表符.\n 新行.. 匹配任意字符.| 匹配表达式左边和右边 ...

  5. thinkphp Composer安装指南

    1.首先我们去composer的官网下载composer,当然也可以用命令行的形势下下载,我是在windows安装的.https://www.phpcomposer.com/ 2.下载以后进行安装,一 ...

  6. DPDK-KERNEL NIC INTERFACE(内核NIC接口)

    DPDK编程指南(翻译)( 二十一) 21.内核网络接口卡接口 DPDK Kernel NIC Interface(KNI)允许用户空间应用程序访问Linux *控制面. 使用DPDK KNI的好处是 ...

  7. JSON Web Token (JWT) 简介

    JSON Web Token (JWT) 是一种基于 token 的认证方案. JSON Web Token 的结构 一个 JWT token 看起来是这样的: eyJhbGciOiJIUzI1NiI ...

  8. 智课雅思词汇---二十四、形容词后缀-al-ial-ar-ary-ic-id-ish-ile-ine-oid-ory

    智课雅思词汇---二十四.形容词后缀-al-ial-ar-ary-ic-id-ish-ile-ine-oid-ory 一.总结 一句话总结: 1.形容词后缀-al? autumnal 英 [ɔː'tʌ ...

  9. Netty原理

    1. Netty简介Netty是一个高性能.异步事件驱动的NIO框架,基于JAVA NIO提供的API实现.它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都 ...

  10. delete 与 delete []的区别

    一. 针对类class,这两种方式的效果是不同的. 当你通过下列方式分配一个类对象数组:   class A   {   private:      char *m_cBuffer;      int ...