基于FPGA板的音乐盒的设计
基于FPGA板的音乐盒的设计
本实验室基于Cyclone IV E:EP4CE6E22C8的FPGA板的音乐盒设计,播放的音乐是《世上只有妈妈好》,根据模块化设计的思想,我们需要先设计底层模块,大概需要计数器,4分频,任意分频器,音调译码器,分频器预置数译码器。
以下是各个子模块:
计数器:
module count(clk4,num,full);
input clk4;
output[7:0]num;
output full;
reg full;
reg[7:0]num;
always@(posedge clk4)
begin
if(num==127)
begin
full=1;
num=0;
end
else
begin
num=num+1;
full=0;
end
end
endmodule
音调译码器:
module decodeA(Qin,Q2);
input [7:0]Qin;
output [4:0]Q2;
reg [4:0]Q2;
always@(Qin)
begin
case(Qin)
0:Q2=13;
1:Q2=13;
2:Q2=13;
3:Q2=13;
4:Q2=12;
5:Q2=12;
6:Q2=12;
7:Q2=12;
8:Q2=10;
9:Q2=10;
10:Q2=10;
11:Q2=10;
12:Q2=12;
13:Q2=12;
14:Q2=12;
15:Q2=12;
16:Q2=15;
17:Q2=15;
18:Q2=15;
19:Q2=15;
20:Q2=13;
21:Q2=13;
22:Q2=12;
23:Q2=12;
24:Q2=13;
25:Q2=13;
26:Q2=13;
27:Q2=13;
28:Q2=10;
29:Q2=10;
30:Q2=10;
31:Q2=10;
32:Q2=12;
33:Q2=12;
34:Q2=13;
35:Q2=13;
36:Q2=12;
37:Q2=12;
38:Q2=12;
39:Q2=12;
40:Q2=10;
41:Q2=10;
42:Q2=9;
43:Q2=9;
44:Q2=8;
45:Q2=8;
46:Q2=6;
47:Q2=6;
48:Q2=12;
49:Q2=12;
50:Q2=10;
51:Q2=10;
52:Q2=9;
53:Q2=9;
54:Q2=9;
55:Q2=9;
56:Q2=9;
57:Q2=9;
58:Q2=9;
59:Q2=9;
60:Q2=10;
61:Q2=10;
62:Q2=10;
63:Q2=10;
64:Q2=12;
65:Q2=12;
66:Q2=12;
67:Q2=12;
68:Q2=12;
69:Q2=12;
70:Q2=13;
71:Q2=13;
72:Q2=10;
73:Q2=10;
74:Q2=10;
75:Q2=10;
76:Q2=9;
77:Q2=9;
78:Q2=9;
79:Q2=9;
80:Q2=8;
81:Q2=8;
82:Q2=8;
83:Q2=8;
84:Q2=12;
85:Q2=12;
86:Q2=12;
87:Q2=12;
88:Q2=10;
89:Q2=10;
90:Q2=10;
91:Q2=10;
92:Q2=9;
93:Q2=9;
94:Q2=8;
95:Q2=8;
96:Q2=6;
97:Q2=6;
98:Q2=8;
99:Q2=8;
100:Q2=5;
101:Q2=5;
102:Q2=5;
103:Q2=5;
default:Q2=0;
endcase
end
endmodule
4分频:module div4(clk1,clkout4);
input clk1;
output clkout4;
reg clkout4;
reg [31:0]q1;
always @(posedge clk1)
begin
if (q1==6249999)
begin q1=0;
clkout4=!clkout4;
end
else
q1=q1+1;
end
endmodule
预置数译码器:module dcodec(din,origin);
input [4:0]din;
output [31:0]origin;
reg [31:0]origin;
always@(din)
begin
case(din)
0:origin=50000000;
1:origin=95749;
2:origin=85266;
3:origin=75965;
4:origin=71695;
5:origin=63857;
6:origin=56883;
7:origin=50669;
8:origin=47819;
9:origin=42604;
10:origin=37948;
11:origin=35817;
12:origin=31908;
13:origin=28425;
14:origin=25332;
15:origin=23901;
16:origin=21291;
17:origin=18962;
18:origin=17903;
19:origin=15949;
20:origin=14209;
21:origin=12658;
default :origin=50000000;
endcase
end
endmodule
任意分频器:module divb(clk2,clkoutb,origin);
input clk2;
input[31:0]origin;
output clkoutb;
reg clkoutb;
reg [31:0]q2;
always @(posedge clk2)
begin
if (q2==origin)
begin q2=0;
clkoutb=!clkoutb;
end
else
q2<=q2+1;
end
endmodule
顶层模块:module song(clk,speaker);
input clk;
output speaker;
wire A1,A2,A3;
wire[7:0]B1;
wire[4:0]B2;
wire[31:0]C3;
reg speaker;
div4 u1(.clk1(clk),.clkout4(A1));
count u2(.clk4(A1),.num(B1),.full(A2));
decodeA u3(.Qin(B1),.Q2(B2));
dcodec u4(.din(B2),.origin(C3));
divb u5(.clk2(clk),.clkoutb(A3),.origin(C3));
always@(posedge A3)
begin
speaker=!speaker;
end
endmodule
基于FPGA板的音乐盒的设计相关推荐
- 基于FPGA的遥控数字时钟设计
基于FPGA的遥控数字时钟设计报告 Author:张宏宇 摘要 数字时钟是一种通过数字显示时间的计时装置,本次项目采用Cyclone Ⅳ系列芯片,使用QuartusII开发环境,使用Ver ...
- 基于FPGA的智力抢答器设计
配套FPGA开发板(含该设计的工程代码):https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4676525296.4.6e8950ed57YPh ...
- 基于 FPGA Vivado 的数字钟设计(附源工程)
今天给大侠带来基于 FPGA Vivado 的数字钟设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说,上 ...
- 基于FPGA的USB接口控制器设计(VHDL)(中)
今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第二篇,中篇,USB通信原理.USB 系统开发以及设计实例.话不多说,上货. 之前有关于 Veril ...
- 基于FPGA通用异步收发器UART设计
摘要 通用异步收发器(UART)是一种能同时支持近距离和远距离传输的异步串行接口,具有传输速率较高.传输距离长.抗干扰性能好.电路结构简单以及节省布线资源等优点.然而,随着社会的发展,信息传输容量越来 ...
- imut FPGA课设 基于FPGA的VGA弹球游戏设计 *秋昊
写在前面的话: 本文主要呈现了一篇IMUT的FPGA课设报告. 课设报告内容(word版),视频演示,程序源码,专业创新实践简介,专业创新实践指导书均已放入下面的百度云链接中,也不大,总共不到20MB ...
- 简谈基于FPGA的千兆以太网设计
简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货. 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学 ...
- 基于FPGA的XPT2046触摸控制器设计
基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com 发 ...
- 计算机组成原理课程设计:基于FPGA的Verilog模型机设计。
理解简单模型机的工作原理,理解程序计数器,算数逻辑运算单元,控制单元,的工作原理.学会设计以及使用指令完成一定的功能,并将程序写入FPGA开发板并结合led灯数码管予以显示. 通过模型机设计可以掌握用 ...
- 基于FPGA的SPI FLASH控制器设计
1.SPI FLASH的基本特征 本文实现用FPGA来设计SPI FLASH,FLASH型号为W25Q128BV.支持3种通信方式,SPI.Dual SPI和Quad SPI.FLASH的存储单元无法 ...
最新文章
- HDU 3333-Turing Tree(线段树解决离线询问)
- 用Python爬取WordPress官网所有插件
- python Selenium 常见操作 元素定位
- 社区奖品之原木双面记事板
- Oracle数据库数据泵导入导出
- linux内核数据结构实现--链表、队列和哈希
- Linux下安装memcache以及扩展
- Digital Filters
- 201771010112罗松《面向对象程序设计(java)》第十六周学习总结
- 【UCOSii源码解析】事件控制块
- 深度解析PHP数组函数array_combine
- Domain Adaptive在无监督语义分割上的应用
- 下载IEEE期刊Latex模板步骤
- EVE桥接网卡和加载镜像
- keypress,keydown,keyup的区别:
- python语句print(type([1、2、3、4))_Python语句print(type([1,2,3,4]))的输出结果是() 。...
- 圣诞树太俗气,圣诞牛才够创意----阿里巴巴B2B高上大玩法的启示
- stm32ftp服务器实现文件传输,stm32 ftp服务器
- October——Just believe youself,you really did good job
- eSpeak与ekho交叉编译