1、功多能数字时钟的设计eda课程设计报告毕业设计多功能数字时钟的设计1 绪论1.1设计目的 本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,加深对计算机体系结构的理解。通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用数字钟的设计,巩固和综合运用计算机原理的基本理论和方法,理论联系实际,提高设计、分析、解决计算机技术实际问题的独立工作能力。1.2设计要求 (1)熟练掌握VHDL语言的结构特点并能运用到具体实际中。 (2)学会利用复杂的可编程逻辑器件进行简单的电子系统设计。 (3)熟悉并掌握基
2、于EDA实验开发系统设计实际问题的方法和步骤。 (4)通过设计过程提高自己运用所学知识来分析解决问题的能力。1.3设计内容本课程设计中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35开发板上的资源和QuartusII软件,实现一个多功能数字时钟。本设计的任务要求显示格式为 小时分钟秒钟,整点报时,报时时间为10秒,即从整点前10秒钟开始进行报时提示,喇叭开始发声,直到过整点时,在 5秒LED开始闪烁,过整点后,停止闪烁。系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10,000次分频。调整时间的的按键用按键模块的S1和S
3、2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示000000。扩展内容:用16*16点阵显示实现日期的动态显示用44键盘阵列键盘替换按键实现日期、时钟的调整,用液晶显示模块日期、时间的显示。1.4设计环境 本次课题设计方要用到的开发环境是Altera公司的EDA设计工具软件QuartusII。Altera公司的工作与EDA厂家紧密结合,使QuartusII软件可以与其它工业标准的设计输入、综合和校验工具相连接。设计者可以使用Altera或标准EDA输入工具进行设计,使用QuartusII编译器对Altera
4、器件的设计进行编译,并使用Altera或其它EDA校验工具进行仿真。目前,QuartusII支持与Cadence,Mentor Graphics, Synopsys, Viewlogic等EDA工具接口。QuartusII的设计输入、处理和校验功能都集中在统一的开发环境下,这样可以加快动态调试,缩短开发周期。QuartusII软件支持多种硬件描述语言设计输入,包括VHDL,Verilog HDL和Altera自己的硬件描述语言AHDL。 QuartusII软件提供丰富的库单元供设计调用,其中包括74系列的全部器件和一些基本的逻辑门,多种特殊的逻辑宏功能(Macro-Function)以及新型的
5、参数化的兆功能(Mage-Function).调用库单元进行设计,可以大大减轻工作量。 2 VHDL简介 2.1VHDL硬件描述语言简介模块是VHDL的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述; 设计的数据流行为使用连续赋值语句进行描述; 时序行为使用过程结构描述。一个模块可以在另一个模块中使用。说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。语句定义设计的功能和结构。说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。为了使模块描述清晰和
6、具有良好的可读性, 最好将所有的说明部分放在语句前。本书中的所有实例都遵守这一规范。在模块中,可用下述方式描述一个设计:(1) 数据流方式;(2) 行为方式;(3) 结构方式;(4) 上述描述方式的混合。VHDL模型中的所有时延都根据时间单位定义。 在顺序过程中出现的语句是过程赋值模块化的实例。模块化过程赋值在下一条语句执行前完成执行。过程赋值可以有一个可选的时延。时延可以细分为两种类型:(1) 语句间时延: 这是时延语句执行的时延。(2) 语句内时延: 这是右边表达式数值计算与左边表达式赋值间的时延。在VHDL中可使用如下方式描述结构:(1) 内置门原语(在门级);(2) 开关级原语(在晶体
7、管级);(3) 用户定义的原语(在门级);(4) 模块实例 (创建层次结构)。3 各模块电路及其简介3.1 分频器模块 图3.1 分频器模块因为本实验选用频率为10KHZ,对于秒表的计时和进行数码管的动态扫描来说,频率都太大了,因此要将10KHz进行分频处理,本次设计将分成1Hz频率。3.2 控制调节模块图3.2 控制调节模块 本模块用于时间与日期的切换与时间的调节、日期的调节以及复位调节,其中K1用于时间与日期的切换,S1、S2用于时间的调节,S3、S4、S5用于日期的调节,最后S8为复位按键。3.3 报警模块 图3.3 报警模块 报警模块中有两个报警输出,其一为蜂鸣器,在整点前十秒开始发声
8、;其二为LED灯显示输出,在最后5秒按照一定的规律亮灯。本模块受到前一模块输出分、秒的控制。3.4 数码管显示模块 图3.4 数码管显示模块很显然,此模块是用来进行数码管显示的,先进行动态扫描,然后将程序中要求输出的部分通过7段数码管显示出来。其中K1用于控制显示部分是日期还是时间。比之于静态显示,动态显示有着不可替代的优点:占用数据线少,功耗小。3.5 16*16点阵控制模块 图3.5 16*16点阵控制模块 本模块用于控制后面的16*16点阵显示模块,其中keyc用于控制点阵的行扫描,S为4根数据总线,用于控制点阵数据的动态显示。3.6 16*16点阵显示模块 图3.6 16*16点阵显示
9、模块 该模块用于满足实验内容中用16*16点阵动态显示日期的要求。可以看出,输出为每一行的数据,通过动态扫描之后就可以动态的显示所有的16行数据。4 设计步骤4.1新建一个工程(1)打开Quartus II 12.1sp1仿真软件,点击File=New Project Wizard按钮创建一个新的工程。弹出如图所示对话框: (2)再点击Next按钮出现下一对话框并将工程名和文件名都命名为zjh:(3)然后再点击Next按钮出现下一对话框将Family设置为cycloneIII,将Package设置为FBGA,将Picount设置为780,将Speed grade设置为8并选择EP3C80F78
10、0C8器件,如图所示:(4)最后点击Next=Finish按钮完成新工程的创建。4.2新建一个VHDL文件(1)点击File=New按钮出现如图所示对话框: (2)选择VHDL File完成文件创建,创建完成后如图所示:4.3VHDL程序的编译及仿真4.3.1VHDL程序的编译 将编写好的符合实验要求的VHDL程序复制在上图所示的对话框内,然后点击Processing=Start Compilation按钮开始进行编译,编译完成并确保程序无误后开始进行管脚分配。4.3.2管脚分配(1)点击Assignments=Assignments Editor按钮出现如图所示对话框:(2)再点击List、
11、OK按钮出现如图所示管脚分配对话框:(3)然后按如下表所示的管脚顺序进行分配:Display0LocationPIN_G16YesDisplay1LocationPIN_G17YesDisplay2LocationPIN_F18YesDisplay3LocationPIN_G18YesDisplay4LocationPIN_G15YesDisplay5LocationPIN_G14YesDisplay6LocationPIN_G12YesDisplay7LocationPIN_M21YesK1LocationPIN_AH12Yeskeyc0LocationPIN_L5Yeskeyc1Locat
12、ionPIN_H6Yeskeyc2LocationPIN_H7Yeskeyc3LocationPIN_H5Yeskeyr0LocationPIN_C17Yeskeyr1LocationPIN_D15Yeskeyr2LocationPIN_D14Yeskeyr3LocationPIN_D13Yeskeyr4LocationPIN_D12Yeskeyr5LocationPIN_D10Yeskeyr6LocationPIN_C10Yeskeyr7LocationPIN_C9Yeskeyr8LocationPIN_D21Yeskeyr9LocationPIN_C21Yeskeyr10LocationP
13、IN_D20Yeskeyr11LocationPIN_D19Yeskeyr12LocationPIN_C19Yeskeyr13LocationPIN_D18Yeskeyr14LocationPIN_C18Yeskeyr15LocationPIN_D17Yesled0LocationPIN_AE8Yesled1LocationPIN_J22Yesled2LocationPIN_M24Yesled3LocationPIN_L24YesS1LocationPIN_AF5YesS2LocationPIN_AH6YesS3LocationPIN_AH7YesS4LocationPIN_AH8YesS5L
14、ocationPIN_AG10YesS8LocationPIN_AG7YesSEG_SEL0LocationPIN_C22YesSEG_SEL1LocationPIN_D22YesSEG_SEL2LocationPIN_G9YesspkLocationPIN_L23ClkLocationPIN_A14Yes(4)分配完成后再进行一次编译以使管脚分配生效。4.3.3下载与仿真 用下载线将电脑USB接口和试验箱VGA接口相连接,点击Tools=Programmer按钮将Output File内的文件添加进去,再点击Start按钮将结果下载到试验箱内。观察并操作试验箱看仿真结果能否满足数字时钟的设计需求。5 心得与体会 这次的EDA课程设计是我大学的第三次课程设计,由于刚开始设计思路不清晰,对Quartus II 12.1sp1仿真软件的运用也不熟练而且相关的知识准备也不充分,所以拿到设计题目后感觉不知所措,不知道如何开始。但是通过一段时间的查阅资料和请教同学老师我发现设计多功能数字时钟也并不十分困难,在他们
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1