发现乘除法运算狂占资源啊,真是吃不消,有没有好的瘦身方法
Step <= max - (max -min)*cnt/cnt_all;上面这样的运算耗费了两百多的 LE,吃不消啊 。。。 可以自己写个乘法器。 HDL!=programming language 没有使用嵌入式乘法器吗?还是你的fpga没有? 不知道你建模做过定点算法没,不用太精确的话可以查表;不行就硬乘法器,自己写的乘法器不是太靠谱的。 【4楼】 freud
不知道你建模做过定点算法没,不用太精确的话可以查表;不行就硬乘法器,自己写的乘法器不是太靠谱的。
-------------------------------------------------------------------------------------------------------------------
没做过定点算法,HDL也是才涉及不久。
精度要求不高,查表如何操作? 回复【5楼】wangwenjia
【4楼】 freud
不知道你建模做过定点算法没,不用太精确的话可以查表;不行就硬乘法器,自己写的乘法器不是太靠谱的。
-------------------------------------------------------------------------------------------------------------------
没做过定点算法,hdl也是才涉及不久。
精度要求不高,查表如何操作?
-----------------------------------------------------------------------
你搜搜网上有一堆的 写程序要动点儿脑筋吧,让语言去综合出一个乘法器?不现实 【7楼】philoman
写程序要动点儿脑筋吧,让语言去综合出一个乘法器?不现实
-----------------------------------------------------------------------
正好,我也有这个疑问回复
我也是搞不明白,直接用HDL里提供的这个*和硬件或者HDL写一个乘法器出来有什么区别? 难道用HDL里的这个*的话,综合器直接用组合逻辑的方式实现一个乘法器?(就是数电里列出真值表然后画个什么图的方法用与非或门弄一个乘法器出来) 幸亏不是高精度乘法.......
前几天某同学一道输入两个数 输出两数的乘积的题目
怎么也通不过。。。。
时间限制1s
竟然是50000位高精度乘法 得用FFT 我一直不明白的路过。。 回复【9楼】aheadlead瓦之
幸亏不是高精度乘法.......
前几天某同学一道输入两个数 输出两数的乘积的题目
怎么也通不过。。。。
时间限制1s
竟然是50000位高精度乘法 得用fft 我一直不明白的路过。。
-----------------------------------------------------------------------
50000位,您玩笑开大了吧! 在QuartusII中执行入下步骤:
1、Tools -> MegaWizard Plug-in Manager 弹出兆函数对话框,选择单选项创建新的兆函数(megafuction),点击next。
2、在出现的对话框中的左侧,有一些列的IP核,选中Arithmetic(运算),选择ALTFP_MULT,在右侧选择生产的语言类型(VHDL还是Verilog?),并给它取个名字,然后点击next;
3、出现了相应的界面,按提示一步步操作即可。
用了芯片提供的乘法器,直接写*或者/的话用的芯片的le资源。 自己弄个循环乘法器,我以前自己写了个16*16的定点并行乘法器,好像4级流水线,用了1万门 查找表构建:通常用case语句给出特定的输入,和相应的输出 我晕,你没用megacode啊 不建议试验VHDL语言编写乘除法,太耗资源 芯片已经自带乘法器,直接用就可以了。 如果时延要求不是很高的话.可以用移位器和加法器实现乘法器,多占几个时钟周期来实现
页:
[1]