带有 VHDL 代码的 FPGA 上的声音发生器

Sound generator on FPGA with VHDL code

我需要使用键盘作为音符的输入,并使用 digilent 扬声器作为输出。 我打算只用一个八度。 我最感兴趣的问题是:

  1. 如何在 VHDL 代码中表示音符。

  2. 我如何(或我需要)实现使用 Spartan 3E Starter 内置 DAC 的 DAC 模块?我在其他论坛上看到它无法实施。我需要用它来将音符传送给扬声器。监督我和我同事项目的老师建议我为此研究 PWM(但我发现的都是电子方式的解释,没有附带的代码,也没有实现的解释)。

  3. 除了键盘控制器,一个处理模块(用于从音符向量中返回对应于按下的键的音符)和DAC,我目前已经想通了,我还需要什么需要。

有DAC(见评论)

Spartan-3E 入门套件上没有 DAC。使用低通 PWM 信号是从数字输出生成模拟信号电平的常用方法。

您需要为 PWM 定义一个精度,比方说 8 位或 256 级。对于每个要输出的音频样本,需要从0到255计数。当计数器小于所需的样本电平时,输出1,否则输出0。当计数器达到255时,将其重置并转到下一个样本.

因此,如果您想要 8 位精度(256 级)和 8KHz 信号,计数器必须 运行 在 256*8000 = 2.048MHz。

对于您的其他问题,没有简单的答案。作为设计师,这是你的工作。