完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
本帖最后由 elle12 于 2014-10-22 22:48 编辑
使用EP1C6Q240C8不能播放以下程序!!!! ![]() 老师要答辩,根本不能用啊LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENtiTY music IS PORT ( CLK_50M: IN STD_LOGIC; SPK : OUT STD_LOGIC; --乐曲输出信号 S1: INSTD_LOGIC; --拨码开关的输入端口 通过改变拨码开关来选择乐曲一 S2: INSTD_LOGIC; --拨码开关的输入端口 通过改变拨码开关来选择乐曲二 S3: IN STD_LOGIC; --拨码开关的输入端口 通过改变拨码开关来选择乐曲三 LEDOUT: OUTSTD_LOGIC_VECTOR(8 DOWNTO 0)--LED灯的显示 ); END music; ARCHITECTURE music OF music IS SIGNAL FULL: STD_LOGIC; SIGNAL CNT_14: INTEGER RANGE 0 TO 16384; SIGNAL CLK_12M: STD_LOGIC; SIGNAL CLK_3M: STD_LOGIC; SIGNAL CLK_4HZ: STD_LOGIC; SIGNAL q1: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL q2: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL q3: integer range 0 to 4200000; SIGNAL i: INTEGER RANGE 0 TO 500; TYPE SONG1 IS ARRAY (1 TO 192)OFinteger; --第一首乐曲 《送别》的音符预置数组 CONSTANT DATA1:SONG1:= (12566,12566,12566,12566,11858,11858,12566,12566,13553,13553,13553,13553,13553,13553,13553,13553, 12974,12974,12974,12974,13553,13553,13553,13553,13553,12566,12566,12566,12566,12566,12566,12566, 12566,12566,12566,12566,10723,10723,11324,11324,11858,11858,11858,11858,11324,11324,10723,10723, 11324,11324,11324,11324,11324,11324,11324,11324,16383,16383,16383,16383,16383,16383,16383,16383, 12566,12566,12566,12566,11858,11858,12566,12566,13553,13553,13553,13553,13337,13337,13337,13337, 12974,12974,12974,12974,13553,13553,13553,13553,13553,12566,12566,12566,12566,12566,12566,12566, 12566,12566,12566,12566,11324,11324,11858,11858,12116,12116,12116,12116,12116,12116,10286,10286, 10723,10723,10723,10723,10723,10723,10723,10723,16383,16383,16383,16383,16383,16383,16383,16383, 12974,12974,12974,12974,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553, 13337,13337,13337,13337,12974,12974,13337,13337,13553,13553,13553,13553,13553,13553,13553,13553, 12974,12974,13337,13337,13553,13553,12974,12974,12974,12974,12566,12566,11858,11858,10723,10723, 11324,11324,11324,11324,11324,11324,11324,11324,16383,16383,16383,16383,16383,16383,16383,16383); TYPE SONG2 IS ARRAY (1 TO 128)OFINTEGER ; --第二首乐曲 《梁祝》的音符预置数组 CONSTANT DATA2:SONG2:= (7347,7347,7347,7347,7347,7347,7347,7347,8749,8749,8749,8749,8749,8749,9565,9565, 10723,10723,10723,10723,10723,10723,11324,11324,9565,9565,10723,10723,8749,8749,8749,8749, 12566,12566,12566,12566,12566,12566,13553,13553,12974,12974,12553,12553,11858,11858,12566,12566, 11324,11324,11324,11324,11324,11324,11324,11324,11324,11324,11324,11324,11324,11324,11324,11324, 11324,11324,11324,11324,11324,11324,11858,11858,10286,10286,10286,10286,9565,9565,9565,9565, 12566,12566,12566,12566,12566,12566,9565,9565,10723,10723,10723,10723,11324,11324,11324,11324, 7347,7347,7347,7347,10723,10723,10723,10723,9565,9565,8749,8749,9565,9565,10723,10723, 8749,8749,8749,8749,8749,8749,8749,8749,8749,8749,8749,8749,8749,8749,8749,8749); TYPE SONG3 IS ARRAY(1 TO 128)OF INTEGER ; --第三首乐曲 《世上只有妈妈好》的音符预置数组 CONSTANT DATA3:SONG3:= (14123,14123,14123,14123,14123,14123,13853,13853,13853,13853,13853,13853,14249,14249,14123,14123, 14123,14123,14123,14123,14123,14123,13553,13553,13553,13553,13553,13553,16383,16383,16383,16383, 13553,13553,13553,13553,14476,14476,14476,14476,14476,14476,14249,14249,14249,14249,13853,13853, 13853,13853,13853,13853,13853,13853,13853,13853,13853,13853,13853,13853,13853,13853,13853,13853, 14123,14123,14123,14123,14123,14123,13853,13853,13853,13853,13853,13853,14249,14249,14123,14123, 14123,14123,14123,14123,14123,14123,13553,13553,13553,13553,13553,13553,16383,16383,16383,16383, 12974,12974,12974,12974,13553,13553,13553,13553,13553,13553,13553,13553,13853,13853,13553,13553, 13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553,13553); BEGIN P0: PROCESS(CLK_50M) BEGIN IF CLK_50M'EVENT AND CLK_50M='1' THEN q1<=q1+1; END IF; END PROCESS P0; CLK_3M<=q1(3); P1: PROCESS (CLK_3M) BEGIN IF CLK_3M'EVENT AND CLK_3M='1' THEN q3<=q3+1; if(q3=681250)then q3<=0; elsif(q3<290625)then CLK_4HZ<='1'; else CLK_4HZ<='0'; end if; END IF; END PROCESS P1; P2: PROCESS(CLK_3M,i) BEGIN IF CLK_3M'EVENT AND CLK_3M='1' THEN IF CNT_14=16384 THEN IF S1='0' THEN --如果外部的拨码开关选择乐曲一时 CNT_14<=DATA1(i); --当计数器计满时 将乐曲一数组中的下一个预置数给计数器 这样使音符一个一个的演奏下去 形成乐曲 elsif S2='0' THEN --如果外部的拨码开关选择乐曲2时 CNT_14<=DATA2(i); --当计数器计满时 将下一个预置数给计数器 这样使音符一个一个的演奏下去 形成乐曲 elsif S3='0' THEN --如果外部拨码开关选择乐曲3时 CNT_14<=DATA3(i); --当计数器计满时 将下一个预置数给计数器 这样使音符一个一个的演奏下去 形成乐曲 END IF; ELSE CNT_14<=CNT_14+1; --否则的话 计数器继续做减一操作 if(CNT_14<15621) then --用于拓宽一个周期内高电平的长度 FULL<='1'; --使溢出标志信号为高电平 else full<='0'; --使溢出标志位为低电平 end if; END IF ; END IF; END PROCESS P2; SPK<=full; P3: PROCESS (CLK_4HZ) --在4HZ时钟下播放乐曲也就是每拍为0.25S BEGIN IF CLK_4HZ'EVENT AND CLK_4HZ='1' THEN --当时钟为上升沿时 IF S1='0' THEN --如果当下选择播放的是乐曲一 IF i=192 THE --i的值为第一首乐曲总的音符数时 i<=1; --当满足条件时,说明乐曲播放完毕这时要使乐曲循环播放,使计数变量为1 ELSE i<=i+1; --当乐曲数组中音符没有播放完毕时,则技术变量加一计数,使乐曲向后推进播放 END IF ; elsif S2='0' THEN --当选定为第二首乐曲时,逻辑原理同上 IF i=128 THEN i<=1; ELSE i<=i+1; END IF; elsif S3='0' THEN --当选定为第三首乐曲时,逻辑原理同上 IF i=128 THEN i<=1; ELSE i<=i+1; END IF ; ENDIF ; END IF ; END PROCESS; END ; 引脚图 |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
NVMe高速传输之摆脱XDMA设计52:主要功能测试结果与分析4(NVMe 指令提交与完成机制测试)
866 浏览 0 评论
NVMe高速传输之摆脱XDMA设计51:主要功能测试结果与分析3 nvmePCIe高速存储 PCIe高速存储
546 浏览 0 评论
NVMe高速传输之摆脱XDMA设计50:主要功能测试结果与分析2 nvmePCIe高速存储
524 浏览 0 评论
NVMe高速传输之摆脱XDMA设计49:主要功能测试结果与分析1
1568 浏览 0 评论
1031 浏览 0 评论
4523 浏览 64 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 06:29 , Processed in 0.707183 second(s), Total 73, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3197