liyuegbd 发表于 2010-8-15 15:41:19

关于verilog进行三角函数运算

不知道如何用verilog进行三角函数运算,希望大家指导指导!多谢了

semonpic 发表于 2010-8-15 15:51:19

这个哥哥上来不是三角函数就是开方的。FPGA做这个不是强项

akuei2 发表于 2010-8-15 16:47:59

学习nios!
用数学库就可以解决问题
(我是乱猜的,( ⊙ o ⊙ )啊!O(∩_∩)O哈哈~)

liyuegbd 发表于 2010-8-15 17:06:22

回复【1楼】semonpic
-----------------------------------------------------------------------

这位哥哥,比赛需要,我也没办法呀!呵呵,不过还是要谢谢你的回复昂!

823032003 发表于 2010-8-15 18:57:44

taylor or cordic 算法

liyuegbd 发表于 2010-8-15 22:39:35

回复【5楼】823032003 尼美根
---------------------------------------------------------------------
麻烦这位大哥说详细点!!谢谢啦

marsellite 发表于 2010-8-19 18:04:49

回复【6楼】liyuegbd
-----------------------------------------------------------------------

不同意楼上兄弟关于FPGA不适合数学_运算的说法。恰恰相反,进行大量高速数学_运算刚好是FPGA的强项。
其实,不管用软件,或者硬件(fpga)的方法来实现这样的复杂运算,首先都需要将运算分解为基本硬件能够完成的基本操作。对于软件,就是分解为一条一条指令,每一条指令对应的是一系列的硬件动作,这就是编译的过程。不管你针对的是什么cpu (or mcu or dsp or embedded soft-core),一般来说cpu可以完成的基本算术操做无外乎乘法,加法(浮点或者定点,也许某些cpu具有特殊的硬件支持,能够完成一些特别的运算,如fft等,不在此讨论之列)。cpu将这些指令按照顺序一条条执行后,就得到了运算的结果。所以cpu完成这样的运算是顺序执行的,需要大量复杂运算时就会力不从心。我们觉得用cpu完成这样的事情简单,只不过是因为编译器自带的数学库会帮我们翻译复杂函数为基本运算。
如果用fpga做同样的事情,我们可以利用很多乘法和加法器,同时并行完成乘加运算。需要大量数学_运算的时候,就可以这样并行化的方法,以面积来换取速度。
回到楼主的三角函数的问题,常用的有查表法,cordic方法,taylor展开则基本对所有的复杂函数都是适用的。楼主可以去找一些文章看看,类似的文章非常多,比到这里问效果好要多了。

barryyan2007 发表于 2010-8-20 09:06:24

用CORDIC可行的

40130064 发表于 2010-8-20 13:12:26

理论上计算是FPGA的强项,但实际是很难的。高级点的计算还是放到MCU比较实在.

就好像做个计算器,问题是你这计算器能不能做出来,要做多久.做出来了是很历害,但前题是你要有做计算器的能力.

牛谁都会吹,做起来我也不会,整个小数加法器都能把人给整趴下.

maqingbiao 发表于 2010-8-20 14:43:14

回复【9楼】40130064
理论上计算是FPGA的强项,但实际是很难的。
-----------------------------------------------------------------------
不仅理论上是这样,实际也是。我们想要更高效的实现某种功能,往往是以编程的复杂性来换取的。假如这些都很容易,每个人都能很轻松的掌握,那岂不是没什么竞争力了

vermon 发表于 2010-8-21 00:39:47

DSPbuild 结合MATLAB弄吧弄出来没问题
但是逻辑单元数量那是相当的高
页: [1]
查看完整版本: 关于verilog进行三角函数运算