VerilogLED数码管驱动电路设计.doc
!-项目编号Item No.06项目名称ItemLED数码管驱动电路设计训练对象Class微电子技术专业学时Time4课程名称Course可编程逻辑器件应用教材TextbookCPLD/FPGA应用技术目 的Objective1.熟练使用Quartus II,掌握整个CPLD/FPGA开发流程;2.掌握LED数码管静态显示的Verilog HDL设计方法;3掌握LED数码管动态显示的Verilog HDL设计方法实训2 LED数码管驱动电路设计与实现一、实训设备、工具与要求1实训设备、工具PC电脑、FPGA开发系统、Quartus II应用软件。 2实训要求 每位学生独立完成项目的制作并撰写实训报告; 项目制作完成后由制作者按“验收标准”测试功能与参数,指导教师验收并登记成绩; 项目经指导教师验收后,由学生将全部实验设备整理后交指导教师验收并登记; 实训结束后1周内交实训报告。二、实训涉及的基本知识1.请画出七段LED数码管显示电路的输入输出结构七段LED数码管显示电路in0in1in2in3abcdefgabcdefgdp2.列表描述共阴七段数码显示电路的输入输出关系和显示结果? 七段数码管显示电路输入七段数码管显示电路输出LED显示字形in3 in2 in1 in0gfedcba000001111110000100001101001010110112001110011113010011001104010111011015011011111006011100001117100011111118100111001119三、实训综合电路(七段译码器电路框图)动态显示电路框图:模10计数单个数码管显示电路框图:四、实训步骤1. 阅读Altera CyclongII 开发系统用户手册,画出七段数码管的电路图和连接引脚。信号clkrstled6led5led4led3led2led1led0scan3scan2scan1scan0引脚89907374758385868797100102104值868773747515381828396981001022.设计应用工程,将十进制的0-9的BCD码转换成七段数码管的显示码(组合逻辑电路)七段LED数码管显示电路的Verilog代码:module qiduan_0(cnt,led);input3:0cnt;output6:0led;reg6:0led;always(cnt)begincase(cnt)4b0001:led=7b0000110;4b0010:led=7b1011011;4b0011:led=7b1001111;4b0100:led=7b1100110;4b0101:led=7b1101101;4b0110:led=7b1111100;4b0111:led=7b0000111;4b1000:led=7b1111111;4b1001:led=7b1101111;4b1010:led=7b1110111;default:led=7b0111111;endcaseendendmodule七段LED数码管显示电路仿真波形图:3. 设计应用工程,四个数码管依次静态显示“1”、“2”、“3”、“4”; module led_1(a,led);input1:0a;output10:0led;reg10:0led;always(a)beginif(a=2b00)led<=11b00010000110;else if(a=2b01)led<=11b00101011011;else if(a=2b10)led<=11b01001001111;elseled<=11b10001100110;endendmodule4. 设计应用工程,单个数码管完成从模10计数功能;分频器:module fenpin25(clk,rst,clk_1hz);inputclk;inputrst;outputclk_1hz;regclk_1hz;reg23:0cnt;always(posedge clk or posedge rst)beginif(rst=1b1)cnt<=24d0;else if(cnt=13107119)begincnt<=24d0;clk_1hz<=clk_1hz;endelsecnt<=cnt+1;endendmodule十进制计数器:module cnt10(rst,clk,cnt);inputrst,clk;output3:0cnt;reg3:0cnt;always(posedgeclk)beginif(rst=1b0)cnt<=4b000;else if(cnt=4d9)cnt<=4b000;elsecnt<=cnt+1;endendmodule十进制计数器仿真波形图:LED译码器:module qiduan(cnt,led,scan);input3:0cnt;output6:0led;output3:0scan;reg6:0led;wire3:0scan;assign scan=4b0001;always(cnt)begincase(cnt)4b0001:led=7b0000110;4b0010:led=7b1011011;4b0011:led=7b1001111;4b0100:led=7b1100110;4b0101:led=7b1101101;4b0110:led=7b1111100;4b0111:led=7b0000111;4b1000:led=7b1111111;4b1001:led=7b1101111;4b1010:led=7b1110111;default:led=7b0111111;endcaseendendmoduleLED译码器仿真波形图:顶层电路Verilog HDL代码:module cnt10led(rst,clk,led,scan);inputrst;inputclk;output6:0led;output3:0scan;wire3:0cnt;wire6:0led;wire3:0scan;fenpin25u0(.clk(clk),.rst(rst),.clk_1hz(clk_1hz);cnt10u1(.clk(clk_1hz),.rst(rst),.cnt(cnt);qiduanu2(.cnt(cnt),.led(led),.scan(scan);endmodule框图:5. 设计应用工程,LED数码管动态显示“1,2,3,4”,完成Verilog HDL设计;分频器:module div24(clk,rst,sclk);inputrst;inputclk;outputsclk;wiresclk;reg23:0cnt;always(posedge clk)beginif(rst=1b0)cnt<=24d0;elsecnt<=cnt+1;endassign sclk=cnt23;endmodule二位计数器:module cnt2(sclk,rst,cnt);inputsclk;inputrst;output1:0cnt;reg1:0cnt;always(posedge sclk)beginif (rst=1b0)cnt<=2b00;elsecnt<=cnt+1;endendmodule二位计数器仿真波形图:LED译码器:module ledyima(cnt,led);input1:0cnt;output10:0led;reg10:0led;always(cnt)begincase(cnt)2b00:led=11b00010000110;2b01:led=11b00101011011;2b10:led=11b01001001111;2b11:led=11b10001100110;endcaseendendmoduleLED译码器仿真波形图:顶层电路Verilog HDL代码:module led_0(clk,rst,led);inputclk;inputrst;output10:0led;wiresclk;wire1:0cnt;div24u0(.clk(clk),.rst(rst),.sclk(sclk);cnt2u1(.sclk(sclk),.rst(rst),.cnt(cnt);ledyimau2(.cnt(cnt),.led(led);endmodule框图:五、验收标准 1) 程序运行正常; 2)仿真功能和下载功能正常;六、扩展与改进