我试图在泰勒级数中使用Verilog实现COS X函数。向我呈现的问题陈述如下使用泰勒级数近似计算cosx的Verilog代码
“写一个Verilog代码来使用泰勒级数近似计算cosX请将8位输出的源代码和测试代码以带符号的十进制基数格式附加到X = 0 °到360°,增量为10°“
我在继续之前需要了解一些事情。 请指正,如果我错某处
分辨率计算: 10°的增量,以覆盖0°到360°=> 36个位置
36以十进制可以通过6位来表示。由于我们可以使用6位,因此使用64个字时分辨率会稍微好一些。 64个字代表0°到360°,因此每个字代表5.625°的分辨率,即以5.625°为增量从0°到360°的所有Cos值。 因此分辨率为5.625°
泰勒级数计算 泰勒级数为COS由Cos x approximation by Taylor series
COS X = 1 − (X^2/2!) + (X^4/4!) − (X^6/6!) ..... (using only 3~4 terms)
给出我有几个查询
1)的虽然很容易使用乘法器生成X * X(X平方)或X立方项,我不知道如何处理计算X平方或X立方项时产生的额外位s。 输出为8位只有
例如X = 6个比特; X平方= 12位; X立方= 18位。
不管怎样,我是否会生成它们,然后忽略它们,只考虑整个结果的MSB 8位? ......这样的cos波会吸? 2)我不知道如何处理泰勒级数开始处+1的加法...... COS X = - (X^2/2!)+(X^4/4!)。 ...我是直接添加二进制1还是我必须缩放1为2^8 = 255或2^6 = 64因为我使用6位输入和8位输出?