作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想尝试使用Nexys 4产生汽车声音。我需要将声音存储在ROM中吗?创建声音的步骤是什么?我正在使用verilog。谢谢
最佳答案
Nexys 4板不包含音频编解码器,但包含一个简单的低通(或带通)滤波器,可从PWM信号产生声音。
编程上的挑战是创建一个PWM信号,其占空比代表声音输出信号的当前电平。
我会考虑以下伪代码(此处类似于C,而不是Verilog):
signed int levelAccu = 0;
on_Every_Clock_Edge()
{
int level = getCurrentSoundLevel();
levelAccu += level;
if(levelAccu > 0)
{
setOutputPin(HIGH);
levelAccu -= MAX_LEVEL;
}
else
{
setOutputPin(LOW);
levelAccu -= MIN_LEVEL;
}
}
getSoundLevel()
表示声音输出的当前所需“级别”。 (如果使用采样的声音,则当前采样的值。)
MAX_LEVEL
和
MIN_LEVEL
是“级别”的最大值和最小值。示例:如果要播放存储为8位带符号值的声音,则可以使用
MAX_LEVEL=127
和
MIN_LEVEL=-128
。
levelAccu
应该比
level
多1或2位。
Do I need to store the sound in ROM?
关于audio - 如何在Nexys DDR 4 FPGA上生成音频声音输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44219932/
我是一名优秀的程序员,十分优秀!