如何在VHDL中添加LUT以生成正弦

时间:2019-06-12 10:12:18

标签: vhdl trigonometry fpga

我已经制作了一个I2S发送器,以在我的FPGA中产生“声音”。我想做的下一步是创建一个正弦波。我已经在LUT中制作了16个样本。我的问题是如何在VHDL中实现类似的功能。以及如何按顺序加载样本。谁已经尝试过此方法,并且可以分享他的知识?

我制作了一个包含16个样本的查找表:

     OrderID Creation Date User ID Days in Lab  Gender Sample Date  ID of Sample Card System Sample ID  ...
7386     NaN    1999-01-14     NaN         NaN  Male         NaN         000000000000              NaN  ...
[7387 rows x 96 columns]

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是制作ROM,这只是一个大写的说明。

FPGA综合工具会将其映射到其他LUT上。

请注意,对于较大的表,仅存储了1/4的波形,而其他值则被导出。


  

我想发送24位样本,您还知道如何使用此数据(二进制!)吗?

24位(带符号)意味着您必须将浮点值转换为-8388608..8388607范围内的整数值。 (出于对称原因,您将使用-8388608..8388607)

因此将正弦值(您知道在-1..1范围内)乘以8388607。

正弦波的频率取决于您发送的速度(每秒采样数)。