D08 02-19 【完】

【置换音频部分,控制部分不用动,只换歌词】 你是FPGA资深工程师,请根据报错更改代码,并且加上注释。我第一天学习FPGA, 还不是很熟悉,请根据搜素历史记录给出保姆级的指导。 需要在Quartus上面能够直接运行,Verilog-2001兼容版,实现FPGA功能, 请将音频更换为《只因你太美》,“只因你太美,多看一眼就会爆炸,靠近一点就会融化.....”。 代码1: /* * @Projcet: beep * @Author: Yang. * @Date: 2023-08-23 08:31:27 * @LastEditors: Yang. * @LastEditTime: 2023-09-18 17:59:34 */ //---------<模块及端口声名>------------------------------------------------------ module beep_ctrl( input clk , input rst_n , output beep ); //------------------------<音节代码>--------------------------- localparam G1 = 5'd01 , G2 = 5'd02 , G3 = 5'd03 , G4 = 5'd04 , G5 = 5'd05 , G6 = 5'd06 , G7 = 5'd07 ; localparam M1 = 5'd08 , M2 = 5'd09 , M3 = 5'd10 , M4 = 5'd11 , M5 = 5'd12 , M6 = 5'd13 , M7 = 5'd14 ; localparam D1 = 5'd15 , D2 = 5'd16 , D3 = 5'd17 , D4 = 5'd18 , D5 = 5'd19 , D6 = 5'd20 , D7 = 5'd21 ; parameter MAX_700MS = 26'd35_000_000 ; parameter MAX_FLAG = 7'd55 ; reg beep_r ;//控制蜂鸣器 reg [5:0] flag ;//记录蜂鸣器的音节位置 reg [4:0] music_r ;//记录音节内容 reg [25:0] cnt_700ms ;//时间计数器 wire add_cnt_700ms ; wire end_cnt_700ms ; reg [17:0] MAX_music ;//用于记录音节频率 reg [17:0] cnt_music ;//记录单个音节的震荡次数 //------------------------<单个音节振动时间>--------------------------- always @(posedge clk or negedge rst_n)begin if(!rst_n)begin cnt_700ms <= 0 ; end else if (add_cnt_700ms) begin if (end_cnt_700ms) begin cnt_700ms <= 0 ; end else begin cnt_700ms <= cnt_700ms + 1 ; end end end assign add_cnt_700ms = 1'b1 ; assign end_cnt_700ms = add_cnt_700ms && cnt_700ms == MAX_700MS - 1 ; //------------------------<记录音节位置>--------------------------- always @(posedge clk or negedge rst_n)begin if(!r
03-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值