fpga中16位乘法器需要使用多少个le,fpga中乘法的使用问题
来源:整理 编辑:亚灵电子网 2023-03-11 05:08:41
本文目录一览
1,fpga中乘法的使用问题
*当然可以综合,肯定要消耗LE,能生成电路。IP核是调用的硬件乘法器,是独立的,不占用LE。硬件乘法器的性能是要优于LE的。/号不一定能综合,要看厂家综合器,QuartusII下是可以综合的。你好!*应该是可综合的吧。。消耗LE的时候就没消耗乘法块了吧。。用语句写的应该是消耗LE的。。打字不易,采纳哦!
2,fpga小数乘法怎么搞
看看开发环境下是否有支持浮点数乘法的IP核,如果有,得先搞清楚端口、时序,再使用.如果没有,可以通过扩大2的N次方倍的方式近似计算.比如,0.2134扩大65536倍(相当于左移16位),变为13985.3824,可以去掉小数部分,近似为13985(如果精度还不够,可以继续增大N值,当然,位宽增大,资源消耗增加,需权衡FPGA的资源),对于1023.4,则可以扩大1024倍(相当于左移10位),变为1047961.6,可以近似为1047961,然后用 一般的整数乘法器计算13985*1047961,得到结果后,始终记住结果扩大了2的26次方倍.
3,FPGA的问题 我在网上需找到的一种基于FPGA的算法说是要用到
首先,FPGA内部的多路选择器、异或门通常都是用查找表(LUT)实现的,当然也有独立实现的。我自己写的FPGA程序,一般只要寄存器(REG)资源够,都是能够综合下的,前提是你的逻辑部分消耗资源不复杂。但如果逻辑很复杂的话,要考虑查找表够不够了。如果你选的器件,一个LE有一个查找表,那么很显然LE数目要大于查找表的数目才行。 具体到器件上,一个LE有几个查找表,查找表是几位的(通常是16x1),要看器件手册。不过,建议你选器件的时候,不要纠结于有多少个LE,这有什么用?直接看LUT和REG够不够就好了嘛!例如Spartan XC3S500E,LUT和REG比例为1:1,有9300多个,应该够用了。Altera的EP3C10E144C8N,一个LE对应一个16位LUT和一个REG,LE共有10000多个,也够用了用fpga实现算法,简单理解就像用c语言实现算法一样。不过fpga用硬件描述语言,如verilog等。可以根据算法先用c实现,然后再用verilog实现。c和verilog有种一一对应的关系。综合之后有需要可以进行布局,约束和优化等。因为fpga可以并行执行,所以实现算法要比cpu类型的器件(如dsp、mcu等)有优势。5517,一般情况下一个LE是由一个LUT加一个进位逻辑和一个Register 组成的
4,fpga中乘法器位宽怎么确定
1、理论上大于10m就ok了,但是实际中肯定要留有余量的,40m可以,主要看你的主频能做到多少了。2、不管是正数还是负数,在FPGA中最好都用补码表示。3、截位当然是截断最低的位,高位截断了数据就错了。还有问题就是你这样做肯定只能用并行的方法来做了,因为你用大于10m的采样频率,如果你用10阶的FIR滤波器,同时需要9个乘法器,不知道你的数据是多少位的,也不知道你的FIR是多少阶的,如果位数宽,且阶数多的话,你的FPGA可能没有这么多的乘法器,还有不知道FPGA里面的乘法器是不是补码乘法器,如果不是的话,你的数据表示方法如果用补码的话,乘法之前要求原码,乘法器之后还要再求补码,可能得不偿失,这样的话可以考虑用原码表示整数和负数。关于补充:你的第一个问题没有提到时钟频率啊。如果你的时钟频率比采样频率高很多的话,就可以用串行的方法来做,这样的话需要很高的时钟频率,但是省资源(乘法器和加法器),如果你没有很高的时钟,只能串行做,这种方法适用于时钟频率等于或者略大于时钟频率。硬件类一般都上硬之城看那里比较专业,专业的问题专业解决,这是最快的也是最好的方法,好过自己瞎搞,因为电子元器件的电子型号那些太多了一不小心就会弄错,所以还是找专业的帮你解决。你最好仔细研究一下数的补码表示和运算法则。这个会告诉你完整的答案。 很对。就是这样的。它有一套法则。比如1111 1111 是表示-1,你加0000 0001就变成0了,这个是正确的。但是0111 1111(+127),你加0000 0001就成1000 0000(-128)了,这个明显不对,这就发生了溢出错误,说明位数不够。注意这些就行了。乘法复杂一些,不过也是通过各种移位,相加完成的。
文章TAG:
fpga中16位乘法器需要使用多少个lefpga 乘法 乘法器