首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Nexys ddr 4 FPGA上产生音频输出

如何在Nexys ddr 4 FPGA上产生音频输出
EN

Stack Overflow用户
提问于 2017-05-27 17:45:40
回答 1查看 1.1K关注 0票数 0

我想尝试使用Nexys 4产生汽车声音。我需要把声音存储在ROM中吗?创造声音的步骤是什么。我用的是verilog谢谢

EN

Stack Overflow用户

发布于 2017-05-28 07:20:50

Nexys 4板不包含音频编解码器,但它包含一个简单的低通(或带通)滤波器,产生来自PWM信号的声音输出。

您的编程挑战是创建一个PWM信号,其占空比代表声音输出信号的当前电平。

我会考虑以下伪代码(这里是C类代码,而不是Verilog类代码):

代码语言:javascript
复制
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_LEVELMIN_LEVEL是“级别”的最大值和最小值。例子:如果你想播放声音,声音被存储为8位有符号的值,你有MAX_LEVEL=127MIN_LEVEL=-128

寄存器levelAccu应该比level多1或2位。

请注意,时钟边缘必须比音频的采样速率快得多。

我需要把声音存储在ROM中吗?

取决于你想要创造什么样的声音。

如果你想播放录音的声音样本,你必须把它们存储在内存中(RAM,ROM.)。

如果您想以编程方式生成声音(如正弦波),则不必存储它们。

顺便提一下,

您的问题不是Verilog特定的,但它更多的是与FPGA共同的FPGA和接近FPGA的电路。

正因为如此,"electronics.stackexchange.com“才是解决这些问题的好地方。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44219932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档