Quartus音乐播放器verilog代码青创QC-FPGA开发板

名称:Quartus音乐播放器verilog代码青创QC-FPGA开发板(文末获取)

软件:Quartus

语言:Verilog

代码功能:

音乐播放器设计

1、可以通过蜂鸣器播放歌曲,循环播放

2、可以通过按键控制开始、暂停、复位

3、led灯显示节奏

本代码已在青创QC-FPGA开发板验证,青创QC-FPGA开发板如下,其他开发板可以修改管脚适配:

青创QC-FPGA开发板.png

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. Modelsim仿真

仿真了启动、暂停、停止等情况下的波形

6.1 整体仿真

6.2 音乐控制模块

6.3 频率控制字模块

部分代码展示:

module music(sysclk,switch,stop_key,start_key,led, spkout);
   input           sysclk;//50M晶振
input           stop_key;//reset
input           start_key;//开始
input           switch;//SW1,拨到上面是正常,拨到下面暂停
   output          spkout;//蜂鸣器输出
output      [1:0] led;//指示灯
wire       [9:0] tonestep;
   wire      [7:0] tonecode;
wire      [3:0] music_num;
wire clk_valid;
assign clk_valid=sysclk & switch;
   //调用频率控制字产生模块
   musicdec u_musicdec
(
.tonecode(tonecode),//输入简谱
.tonestep(tonestep)//输出频率控制字
);
//音乐控制模块
music_ctrl i_music_ctrl(
.sysclk(clk_valid), 
.start_key(start_key),
.stop_key(stop_key),
.tonecode(tonecode),//简谱
.tonestep(tonestep),//频率控制字
.spkout(spkout),
.led(led)
);
endmodule

完整代码

 扫描文章末尾的公众号二维码

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于Quartus II的Verilog语言实现的CRC-12编码器的完整代码,供您参考: ```verilog module crc12_encoder ( input clk, // 时钟信号 input rst, // 复位信号 input [11:0] data_in, // 待编码的数据 output reg [11:0] crc_out // CRC-12校验码 ); reg [23:0] remainder; // 余数 parameter [11:0] divisor = 12'b100000001111; // CRC-12生成多项式 always @(posedge clk, negedge rst) begin if (~rst) begin remainder <= 0; crc_out <= 0; end else begin remainder <= {data_in, 4'b0000}; // 将数据左移4位,留出4位给余数 for (int i = 0; i < 12; i = i + 1) begin if (remainder[23-i] == 1'b1) begin remainder <= remainder ^ (divisor << (11 - i)); // 如果余数的最高位为1,就进行异或操作 end end crc_out <= remainder[23:12]; // 将余数右移4位,输出最高的12位为CRC-12校验码 end end endmodule ``` 这个模块输入一个12位的数据,并输出对应的12位CRC-12校验码。在模块中,我们定义了CRC-12生成多项式0x80F,并将输入的数据左移4位,留出4位给余数。然后,我们从左到右依次处理数据和余数,如果余数的最高位为1,就进行异或操作。最后,我们将余数右移4位,输出最高的12位作为CRC-12校验码。 此外,这个模块还包括时钟和复位信号。在时钟上升沿时,模块会根据输入的数据计算CRC-12校验码;在复位信号为低电平时,模块会将余数和CRC-12校验码清零。 在Quartus II中,您可以将这个代码保存为crc12_encoder.v文件,并在项目中添加该文件。然后,您可以使用Quartus II进行逻辑仿真、综合和实现,生成FPGA上的电路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值