您的当前位置:首页正文

基于QuartusⅡ的LED驱动设计

2024-05-07 来源:好走旅游网


数字系统设计与Verilog HDL

基于QuartusⅡ的LED驱动设计

姓 名: 黄立 学 号: 09325206 专 业: 电子信息工程 班 级: 093252 指导教师: 黄河

2012年11月 09日

目录

一. 实验目的```````````````````````````````````````````````````````````````````````3 二. 实验内容```````````````````````````````````````````````````````````````````````3 三. 实验原理与说明````````````````````````````````````````````````````````````3 四. 实验过程```````````````````````````````````````````````````````````````````````4

4.1利用QuartusⅡ建立工程````````````````````````````````````````````4 4.2电路仿真```````````````````````````````````````````````````````````````````9 4.3波形仿真`````````````````````````````````````````````````````````````````10

五.观察LED的状态及实验结果`````````````````````````````````````````11 六.实验程序````````````````````````````````````````````````````````````````````````12 七.心得体会````````````````````````````````````````````````````````````````````````14 八.参考文献````````````````````````````````````````````````````````````````````````15 九.课程设计评分表`````````````````````````````````````````````````````````````16

一. 实验目的

通过实验,使同学们能够逐步了解、熟悉和掌握FPGA开发软件QuartusⅡ的使用方法及VHDL语言的编程方法。

二. 实验内容

利用有限状态机设计一个彩灯控制器,要求控制18个LED灯实现如下的演示花型: 1从两边往中间逐个亮;全灭; 2从中间王两边逐个亮;全灭; 3循环执行上述过程。 具体包括:

(1)使用QuartusⅡ建立工程; (2)QuartusⅡ工程设计;

(3)设置编译选项并编译硬件系统; (4)下载硬件设计到目标FPGA; (5)观察LED状态。

三. 实验原理与说明

彩灯控制器的Verilog描述图下文所示,状态机部分采用双过程描述:一个用于实现状态转移,另一个用于产生输出逻辑,这样使整个设计结构清晰,便于修改。需要注意的是采用了引脚属性定义语句进行引脚锁定,需要说明的是,该属性定义语句只是用于QuartusⅡ软件,并且事先指定目标器件。

FPGA器件同单片机一样,为用户提供了许多灵活独立的输入/输出I/O口。FPGA每个I/O口可以配置为输入、输出、双向I/O、集电极开路和三态门等各种组态。做输出口时,FPGA的I/O口可以吸收最大为24mA的电流,可以直接驱动发光二极管LED等器件。所以只要正确分配并锁定引脚后,在相应的引脚上输出低电平“0”,就可实现点亮该发光二极管的功能。

四. 实验过程

4.1利用QuartusⅡ建立工程

4.1.1进入软件界面

4.1.2选择File—New-Verilog HDL File

4.1.3进入下图所示工作页面 输入所需程序

4.1.4保存文件,输入工程工作路径、工程文件名以及顶层实体名

4.1.5添加设计文件

4.1.6选择设计所用器件

4.1.7设置EDA工具

4.1.8查看新建工程总结

4.1.9运行程序 运行成功后出现如下界面

4.2电路仿真

4.2.1继续选择功能键出现如下电路仿真图

4.3波形仿真

4.3.1在File-new中创建仿真输入波形文件

4.3.2添加信号节点

4.3.3进行波形仿真

五. 观察LED的状态及实验结果

观察实验箱上的发光二极管LED1—LED8, 结果显示为首先从两边往中间逐个亮;全灭;从中间王两边逐个亮;全灭;循环执行上述过程。与设计结果完全符合。

六. 实验程序

module liushuiled(clk50M,reset,z); input clk50M; input reset; output reg[17:0] z;

reg[4:0] state; reg[23:0]count; wire clk4hz; parameter

S0='d0,S1='d1,S2='d2,S3='d3,S4='d4,S5='d5,S6='d6,S7='d7,S8='d8,S9='d9,S10='d10,S11='d11,S12='d12,S13='d13,S14='d14,S15='d15,S16='d16,S17='d17,S18='d18,S19='d19; always @(posedge clk50M)

begin if(count==12500000) count<=0; else count<=count+1; end

assign clk4hz=count[23]; always @(posedge clk4hz) begin if(reset) state<=S0; else case(state)

S0: state<=S1; S1: state<=S2; S2: state<=S3; S3: state<=S4; S4: state<=S5; S5: state<=S6; S6: state<=S7; S7: state<=S8; S8: state<=S9; S9: state<=S10; S10: state<=S11; S11: state<=S12; S12: state<=S13; S13: state<=S14; S14: state<=S15; S15: state<=S16; S16: state<=S17; S17: state<=S18; S18: state<=S19; S19: state<=S0; default: state<=S0;

endcase end

always @(state) begin case(state)

S0:z<=18'b000000000000000000; S1:z<=18'b100000000000000001; S2:z<=18'b110000000000000011; S3:z<=18'b111000000000000111; S4:z<=18'b111100000000001111; S5:z<=18'b111110000000011111; S6:z<=18'b111111000000111111; S7:z<=18'b111111100001111111; S8:z<=18'b111111110011111111; S9:z<=18'b111111111111111111; S10:z<=18'b000000000000000000; S11:z<=18'b000000001100000000; S12:z<=18'b000000011110000000; S13:z<=18'b000000111111000000; S14:z<=18'b000001111111100000; S15:z<=18'b000011111111110000; S16:z<=18'b000111111111111000; S17:z<=18'b001111111111111100; S18:z<=18'b011111111111111110; S19:z<=18'b111111111111111111; default:z<=18'b000000000000000000; endcase; end endmodule

七. 心得体会

通过本次课程设计,我基本对FPGA的设计流程有了入门的了解和认识,在课堂之外进一步加深了对EDA课程各知识点的学习和以及quartusII软件开发平台的操作。也深深地感受到,工科的学习是来不得半点虚伪的,一定要自己动手操作,不懂就是不懂。对于程序的编写过程其实就是一个改错的过程,通过改错就会发现自己只是的不足。做课程设计的过程也是一个升华自我耐心的机会,不能因为一时找不到方法就放弃。课程设计与此同时也让我加深强了对课题的专业知识的认识和对专业文件检索能力。

我们总结,首先要学会使用图书馆等网络资源,当我们编写程序遇到一些无法理解得错误时,我们最终都可以从网络上找到前人的经验和教训。因此不能闭门造车,要多学习别人的经验和教训。其次是在编写程序之前要有一个清晰的框架,自己要实现哪些功能,以及要实现哪些功能得需要哪些方法来实现,只有在自己脑子里有一个很清晰的框架之后,然后再进行编写,编写一个完整的程序是需要一定的时间去思考调试的。只要努力花时间,静下心来找出程序的错误,改进不足之处,最后一定能够编写出一个满意的程序。

八. 参考文献

[1]王金明.数字系统设计与VerilogHDL[M].北京:电子工业出版社,2006:285-294.

[2]栾佳明、张秀娟.基于FPGA可调信号发生器的设计.Electronic Design Engineering,2010第5期

东华理工大学长江学院

课程设计评分表

学生姓名: 黄立 班级: 093252 学号:09325206 课程设计题目:基于QuartusⅡ的LED驱动设计

选 题 项目内容 能结合所学课程知识、有一定的能力训练。符合选题要求 (5人一题) 工作量适中,难易度合理 能熟练应用所学知识,有一定查阅文献及运用文献资料能力 能 力 水 平 理论依据充分,数据准确,公式推导正确 能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等 能体现创造性思维,或有独特见解 总体设计正确、合理,各项技术指标符合要求。 说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰 设计说明书栏目齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合国家标准 有一定篇幅,字符数不少于5000 指导教师评语: 指导教师签名: 年 月 日

满分 10 10 10 10 10 10 10 10 10 10 100 实 评 成 果 质 量 总 分

因篇幅问题不能全部显示,请点此查看更多更全内容