Module 大数余弦和正弦值的VHDl

Module 大数余弦和正弦值的VHDl,module,vhdl,xilinx,trigonometry,Module,Vhdl,Xilinx,Trigonometry,我想用VHDL实现CPM调制,我的设备是Spartan 3A DSP。在数学运算之后,提供的数据是三角函数的参数,我正试图使用Xilinx 14.7中的CORDIC IP核来实现这一点,问题是CORDIC的输入数据必须介于-pi到pi之间,我不知道如何做到这一点,它才能被合成!目前,我正在尝试在基带中实现调制,只发送所提供数据的余弦和正弦值。例如,我需要cosine234.56的值,但我不知道怎么做!!如果有人能在这方面帮助我,我将不胜感激。一个解决方案是在BlockRAM中实现正弦/余弦函数作

我想用VHDL实现CPM调制,我的设备是Spartan 3A DSP。在数学运算之后,提供的数据是三角函数的参数,我正试图使用Xilinx 14.7中的CORDIC IP核来实现这一点,问题是CORDIC的输入数据必须介于-pi到pi之间,我不知道如何做到这一点,它才能被合成!目前,我正在尝试在基带中实现调制,只发送所提供数据的余弦和正弦值。例如,我需要cosine234.56的值,但我不知道怎么做!!如果有人能在这方面帮助我,我将不胜感激。

一个解决方案是在BlockRAM中实现正弦/余弦函数作为查找表。通常,该值不会存储为浮点数,也不会存储在请求的范围内。诀窍是缩放和移动输入值和中间值,使[-PI..PI]中的数字适合二进制数的范围;可以映射到内存地址,避免浮点运算最佳情况:整数运算;中等情况:定点操作。这里可以找到一个简单的正弦/余弦查找表:您可能应该从仔细阅读这个CORDIC IP核心的文档开始,以了解输入和输出数据是如何表示的。我从来没有用过它,但我猜它们是以一种固定点格式表示的,在二进制点的左边和右边有给定数量的位。也可能是二进制点的位置由专用的其他输入指定。在这种情况下,您将有一种浮点表示。最后但并非最不重要的一点是,请注意刻度度数、弧度、其他以及有符号或无符号的符号。@Paebbels这里有办法从大数字中减去2Pi倍数吗?