1、 EDA 技术 课 程 设 计 题 目 LCD1602 显示控制器设计 系 (部) 班 级 姓 名 学 号 指导教师 2014 年 06 月 30 日至 07 月 06 日 共 1 周2014 年 07 月 02 日课程设计说明书2课程设计成绩评定表出勤天数 出勤情况 缺勤天数出勤情况及设计过程表现(20 分)课设答辩(20 分)硬件调试 设计说明书设计成果(60 分)成绩评定总成绩(100 分)提问(答辩)问题情况综合评定指导教师签名:年 月 日课程设计说明书3目 录目 录 31 引言 42 VHDL/ QuartusII 简介 .53 系统设计 63.1 整体功能 .63.2 各模块功能设
2、计 .63.2.1 功能 63.2.2 模块引脚 63.2.3 程序 73.2.4 仿真图 124 系统调试及下载 135 设计总结 14课程设计说明书41 引言通过对 LCD1602LCD12864 显示模块控制时序和指令集的对比分析,利用Verilog HDL 描述语言完成了多功能 LCD 显示控制模块的 IP 核设计,所设计的LCD 显示控制器具有很好的可移植性,只需通过端口的使能参数配置便可以驱动 LCD1602LCD12864 模块实现字符或图形的实时显示,并且该多功能 LCD 控制器的可行性也在 Cyclone系列的 EP2C5T144C8 FPGA 芯片上得到了很好的验证。基于
3、FPGA 设计 LCD 显示控制器 ,关键在于采用硬件描述语言设计有限状态机(FSM)来控制 LCD 模块的跳转,文献中就是使用 FSM 实现了对 LCD 模块的显示控制,但是它们都是针对一种类型 LCD 模块的某种显示模式,不具有多模式的显示控制能力。因此,多功能 LCD 显示控制器的有限状态机就需要设置更多的条件转换,来实现多种控制模式。系统上电后,首先完成持续大约 0.1 s(根据时钟频率配置)的自动复位,然后才根据模块的端口参数选择不同显示模式所对应的初始化命令,在状态机中设置有初始化命令、起始行地址和屏显示数据3 条转换路径来适应 LCD 屏的工作状态,同时也在关键转换路径上设置有可
4、以配置的延时循环,这样既能方便 LCD 模块的工作调试,又能使 LCD 模块一直工作在写屏模式(RW=0)。对于 LCD 屏的显示数据存储可以完全采用 FPGA 内嵌的ROM/RAM 单元实现,如果使用双口 RAM(存储器读写独立)就能实现 LCD 模块的动态实时显示。课程设计说明书52 VHDL/ QuartusII 简介VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言。VHDL 主要用于描述
5、数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分) ,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。Quartus II 是 Altera 公司的综合性PLD/FPGA 开发软件,支持原理图、VHDL、Verilog
6、HDL 以及 AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。Quartus II可以在 XP、Linux 以及 Unix 上使用,除了可以使用 Tcl 脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方 EDA 工具的良
7、好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 EDA 工具。此外,Quartus II 通过和 DSP Builder 工具与Matlab/Simulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。课程设计说明书63 系统设计3.1 整体功能使用 VHDL 语言通过 FPGA 实现对 LCD1602 字符型液晶显示器的控制。在 LCD1602 字符型液晶显示器上面显示个人信息,包括姓名和学号。在 LCD1602 字符型液晶显示器上面显示动态字符,通过
8、按键输入相应的数字和字符。3.2 各模块功能设计3.2.1 功能1、分频模块 应用时钟分频,满足其工作需求。2、键盘模块 输入字母和数字用来实现动态字符,进行动态显示。3、消抖模块 消除抖动,使显示平稳进行。4、LCD 模块 实现静态显示,显示个人信息。3.2.2 模块引脚1、分频模块引脚如图所示2、键盘模块引脚如图所示3、消抖模块引脚如图所示课程设计说明书74、LCD 模块引脚如图所示3.2.3 程序1、分频模块程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity fenpin isPort ( clk : in std_logic; lcd_c
9、lk:out std_logic);end fenpin;architecture bhv of fenpin isbeginprocess(clk)-分频进程,CLK 输入,CLK_Out 输出,50MHz 输入,125Hz 输出,8msconstant m:integer:=500000;variable cout:integer range 0 to 50000000:=0;begin if clkevent and clk=0 then cout:=cout+1;if cout key_code key_code key_code key_code key_code key_code
10、key_code key_code key_code key_code key_code key_code key_code key_code key_code key_code key_code key_code key_code key_code store:=din;cnt:=cnt+1;when 1=if din=store thencnt:=cnt+1;elsestore:=din;cnt:=0;end if;when 2=if din=store thendout data data data data data rs=1;data=dout;end case;end if;end
11、 process;end bhv;3.2.4 仿真图课程设计说明书134 系统调试及下载程序编写完,仿真成功后,引脚设置对应好,在实验箱上连接好线,最后可以进行下载了,然后就可以在实验箱上观察实验结果了。课程设计说明书145 设计总结这次 EDA 课程设计历时一周,学到很多很多的东西,不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对 EDA 的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,可以说是错误百出,系统不停报错,特别是各元件之间的连接,以及信号的定义,
12、总是有错误,在细心的检查和请教同学后,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。其次,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正学到东西,从而提高自己的实际动手能力和独立思考的能力。在设计课
13、程设计说明书15的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的报时和时间调整还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。本次课程设计是我们俩人一起努力完成的,通过合作,我们的合作意识得到加强。合作能力得到提高。上大学后,很多同学都没有过深入的交流,在设计的过程中,我们用了分工与合作的方式,每个人负责一定的部分,同时在一定的阶段共
14、同讨论,以解决分工中个人不能解决的问题,在交流中大家积极发言,和提出意见,同时我们还向别的同学请教。在此过程中,每个人都想自己的方案得到实现,积极向同学说明自己的想法。能过比较选出最好的方案。在这过程也提高了我们的表现能力。在学习的过程中,不是每一个问题都能自己解决,向老师请教或向同学讨论是一个很好的方法,不是有句话叫做思而不学者殆。做事要学思结合。通过本次设计,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样把理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。在设计过程中,总是遇到这样或那样的问题。有时发现一个问题的时候,需要做大量的工作,花大量的时间才能解决。自然而然,我的耐心便在其中建立起来了。为以后的工作积累了经验,增强了信心,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!