基于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板的音乐盒的设计相关推荐

  1. 基于FPGA的遥控数字时钟设计

    基于FPGA的遥控数字时钟设计报告 ​ ​ Author:张宏宇 摘要 ​ 数字时钟是一种通过数字显示时间的计时装置,本次项目采用Cyclone Ⅳ系列芯片,使用QuartusII开发环境,使用Ver ...

  2. 基于FPGA的智力抢答器设计

    配套FPGA开发板(含该设计的工程代码):https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4676525296.4.6e8950ed57YPh ...

  3. 基于 FPGA Vivado 的数字钟设计(附源工程)

    今天给大侠带来基于 FPGA Vivado 的数字钟设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说,上 ...

  4. 基于FPGA的USB接口控制器设计(VHDL)(中)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第二篇,中篇,USB通信原理.USB 系统开发以及设计实例.话不多说,上货. 之前有关于 Veril ...

  5. 基于FPGA通用异步收发器UART设计

    摘要 通用异步收发器(UART)是一种能同时支持近距离和远距离传输的异步串行接口,具有传输速率较高.传输距离长.抗干扰性能好.电路结构简单以及节省布线资源等优点.然而,随着社会的发展,信息传输容量越来 ...

  6. imut FPGA课设 基于FPGA的VGA弹球游戏设计 *秋昊

    写在前面的话: 本文主要呈现了一篇IMUT的FPGA课设报告. 课设报告内容(word版),视频演示,程序源码,专业创新实践简介,专业创新实践指导书均已放入下面的百度云链接中,也不大,总共不到20MB ...

  7. 简谈基于FPGA的千兆以太网设计

    简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货. 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学 ...

  8. 基于FPGA的XPT2046触摸控制器设计

    基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com  发 ...

  9. 计算机组成原理课程设计:基于FPGA的Verilog模型机设计。

    理解简单模型机的工作原理,理解程序计数器,算数逻辑运算单元,控制单元,的工作原理.学会设计以及使用指令完成一定的功能,并将程序写入FPGA开发板并结合led灯数码管予以显示. 通过模型机设计可以掌握用 ...

  10. 基于FPGA的SPI FLASH控制器设计

    1.SPI FLASH的基本特征 本文实现用FPGA来设计SPI FLASH,FLASH型号为W25Q128BV.支持3种通信方式,SPI.Dual SPI和Quad SPI.FLASH的存储单元无法 ...

最新文章

  1. HDU 3333-Turing Tree(线段树解决离线询问)
  2. 用Python爬取WordPress官网所有插件
  3. python Selenium 常见操作 元素定位
  4. 社区奖品之原木双面记事板
  5. Oracle数据库数据泵导入导出
  6. linux内核数据结构实现--链表、队列和哈希
  7. Linux下安装memcache以及扩展
  8. Digital Filters
  9. 201771010112罗松《面向对象程序设计(java)》第十六周学习总结
  10. 【UCOSii源码解析】事件控制块
  11. 深度解析PHP数组函数array_combine
  12. Domain Adaptive在无监督语义分割上的应用
  13. 下载IEEE期刊Latex模板步骤
  14. EVE桥接网卡和加载镜像
  15. keypress,keydown,keyup的区别:
  16. python语句print(type([1、2、3、4))_Python语句print(type([1,2,3,4]))的输出结果是() 。...
  17. 圣诞树太俗气,圣诞牛才够创意----阿里巴巴B2B高上大玩法的启示
  18. stm32ftp服务器实现文件传输,stm32 ftp服务器
  19. October——Just believe youself,you really did good job
  20. eSpeak与ekho交叉编译

热门文章

  1. Windows部署的gogs开机自启动
  2. MacBook在任意文件夹目录打开终端
  3. 爬虫精进(八) ------ selenium
  4. 单片机AD采样的几种算法
  5. python色彩变换CMYK,RGB,HSI
  6. HTML5游戏引擎(十四)-颜色效果——混合模式 滤镜 颜色矩阵滤镜 矩阵数据说明
  7. Python练习题 013:求解a+aa+aaa……
  8. ios storyboard 传参 返回传参(segue)
  9. 短视频去除logo(抖音)
  10. PS自学教程是Ads设计必备 盘点精彩对比式Ads