jsyzgaochao的CPLD DIY进程贴 目录
2、CPLD“木鱼声”发生器...........................................1楼
3、关于有源蜂鸣器和无源蜂鸣器的讨论.......................8楼
4、CPLD数字秒表....................................................9楼
7月1号听同学介绍的CPLD DIY活动,早就想学习CPLD和FPGA,于是就申请了PCB和套件。
7月3号收到套件之后,立马开焊,花费了三个小时终于焊完。。
下面是焊好后的开发板图:
在焊接过程中遇到一点小波折,和大家分享一下:
1、焊完之后下载数码管测试程序,发现每一位数码管右下角的段都不亮,分析原因后发现,三极管的基极和集电极电阻焊反了(R67和R77),结果三极管集电极LED限流电阻为10K,LED自然不亮了。。。
2、拨码开关焊完一边准备焊另一边的时候发现焊反了,于是拆下来重焊,由于是双面板,正反两面都有焊盘,正反两面都有焊锡,而且焊反的那边是拨码开关的下边,和地的铺铜相连,热量很容易散开,导致十分难拆。最后拿镊子翘,再往焊盘上上大量的锡,费了九牛二虎之力终于搞下来了。。所以以此告诫大家,焊东西前一定要看清。。
7月4日,9月份有全国电赛,所以暑假里学校有电赛培训。老师给我们布置了几个题,有个声音定位的。。于是整个实验室里就充斥着此起彼伏的“嘟嘟嘟”类似敲木鱼的声音。。感觉很不爽,于是拿CPLD写了一个“木鱼声发生器”。。
刚开始写的时候,用了求余运算(主要之前对单片机比较熟悉),结果编译一看,用了800多个逻辑单元。直接就爆了。。。后来修改程序,用62个,OK~代码如下:
module beep(CLK,BP);
input CLK;
output BP;
reg BP;
reg[17:0] COUNT;
reg[7:0] BPDELAY;
initial
begin
COUNT=18'd0;
BPDELAY=8'd0;
BP=1'd1;
end
always @(posedge CLK)
begin
COUNT=COUNT+1;
if(COUNT==18'd62500)
begin
COUNT=1'd0;
BPDELAY=BPDELAY+1;
if(BPDELAY==250) BPDELAY=8'd0;
if(BPDELAY<125)
BP=!BP;
else
BP=1'd1;
end
end
endmodule
只是咱的蜂鸣器拼不过人家的大喇叭啊。。。
这个程序没什么技术含量,看到底下回复,于是把工程传上来:beep.rar