yghe07 发表于 2010-7-6 09:08:46

用vhdl写具有音乐报点的数字钟(作为初学者,还望各位多多指教)

功能:
1、具有时、分、秒计数显示功能,以24小时循环计时。
2、调节小时、分钟、秒钟功能。
3、整点时音乐(两只老虎)响起。

相关介绍:
    音符的产生:音符的产生是利用计数器对输入的时钟信号进行分频,然后输出不同的频率来控制扬声器发不同的声音。计数器必须是模可变的计数器,也就是其初始计数值可变,这样便可以对其进行初始化,使其从不同的初始值开始计数,实现对输入时钟信号的不同分频。各音符的频率见下表。
    节拍的产生:节拍也是利用计数器来实现,如果某一个音符需要维持的时间比较长,那么就可以在此计数器从计数值A到计数值B之间都维持该音符,很显然,A和B之间的间隔越大,那么该音符维持的时间也就越长。由于两只老虎中的最短拍数是1,估程序中设定0.25s为一拍。也就是说,每0.25s写一次分频系数以产生不同的音符效果。如果音符是多拍的,则将该音符的分频系数写入多次。

http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_566191T9DMH1.jpg
(原文件名:QQ截图未命名.jpg)

分频系数=CLK_6MHz/音符频率

因为用到的分频系数中最大的为11465,也就是说用14位二进制数来装分频系数就OK了。若不产生音符,则就将分频系数赋值为16383,然后在程序中判定它为无效。
                                                               

代码:
点击此处下载 ourdev_566188D78OEP.txt(文件大小:12K) (原文件名:DigitalClock.txt)

lin28 发表于 2010-7-6 09:46:50

小声问下 怎么不用verilog语言我是初学 用这个

tear086 发表于 2010-7-6 09:52:57

楼主哥,贴个思路呗。

wanwzy 发表于 2010-7-6 10:02:25

回复【2楼】tear086 .COM 缺氧
楼主哥,贴个思路呗。
-----------------------------------------------------------------------

同问

yghe07 发表于 2010-7-6 14:55:44

回复【1楼】lin28
-----------------------------------------------------------------------

因为旁边的人都用这个,呵呵

nobrains 发表于 2010-7-6 17:32:06

对于数字IC设计而言,中国和美国用verilog的多,欧洲用VHDL的多

jeasen 发表于 2011-8-8 23:02:36

看看

lzq397466976 发表于 2011-8-9 09:28:14

楼主 多说一点啊!

xue11 发表于 2011-8-9 11:02:25

这个不错。学习一下。

xue11 发表于 2011-8-9 11:02:59

能不能用FPGA做一个语音芯片呢?

小菜鸟001 发表于 2013-12-20 10:10:09

跪求楼主把思路说出来啊 啊啊
页: [1]
查看完整版本: 用vhdl写具有音乐报点的数字钟(作为初学者,还望各位多多指教)