《EDA技术及应用》课程设计基于VHDL数字时钟的设计与实现.doc
《《EDA技术及应用》课程设计基于VHDL数字时钟的设计与实现.doc》由会员分享,可在线阅读,更多相关《《EDA技术及应用》课程设计基于VHDL数字时钟的设计与实现.doc(23页珍藏版)》请在三一办公上搜索。
1、装 订 线2008-2009学年第 一 学期 物电 学院期末考试卷 EDA技术及应用 学号: 200672020240 姓名: 班级: 2006级电子(2)班 成绩:评语:(考试题目及要求)1. 设计一个数字时钟,具有按秒走时功能,能够分别显示小时(2位24小时)、分种(2位)、秒(2位)。具有整点报时、时间调整功能。也可设计成十二小时计时方案(AM,PM)。具有美观、清晰、人性化的显示界面设计,走时精度不劣于3秒/月。2. 设计条件:VHDL语言,MAXPLUSII开发工具,EPM7128可编程逻辑芯片,蜂鸣器,20MHz时钟源,8位七段数码管,128X32像素单色液晶显示屏。3. 设计报告
2、至少应包含这些内容:系统方案设计、显示界面设计、程序设计思路,电路设计框图、电路图,选用器件的功能、性能、使用方法介绍以及接口时序分析,有详细注释的源程序清单以及程序分析,结果说明与描述(最好附照片),芯片资源占用率及程序优化度分析,芯片管脚分配与连线说明,基于时序图的功能仿真分析,在线测试方法、测试数据与测试结果,走时误差分析与功能、性能偏离分析,设计总结,参考文献。基于VHDL数字时钟的设计与实现作者姓名: 学 号:专 业:电子信息工程指导老师: 完成日期:2008年12月29日基于VHDL数字时钟的设计与实现摘要:随着EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自
3、动控制及计算机应用领域的重要性日益突出。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑优化和仿真测试,直至实现既定的电子线路系统功能。本文介绍了基于VHDL硬件描述语言设计的多功能数字时钟的思路和技巧。关键词:数字时钟、VHDL、MAX+plus引言:VHDL硬件描述语言在电子设计自动化(EDA)中扮演着重要的角色,它出现极大的改变了传统的设计方法、设计过程乃至设计观念。由于采用了“自顶向下”(Top-Down)的全新设计方法,使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的
4、思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短了产品的研制周期。这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的外,VHDL的语言形式和描述风
5、格与句法十分类似与一般的计算机高级语言。VHDL程序结构特点是将一个电路模块或一个系统分成端口和内部功能算法实现两部分。对于一个电路模块或者数字系统而言,定义了外部端口后,一旦内部功能算法完成后,其他系统可以直接依据外部端口调用该电路模块或数字系统,而不必知道其内部结构和算法。一、系统设计方案1、设计任务与要求 设计一个数字时钟,具有按秒走时功能,能够分别显示小时(2位24小时)、分种(2位)、秒(2位)。具有整点报时、时间调整功能。也可设计成十二小时计时方案(AM,PM)。具有美观、清晰、人性化的显示界面设计,走时精度不劣于3秒/月。2、设计条件及选用器件说明软件:VHDL语言,MAXPLU
6、SII开发工具硬件:EPM7128可编程逻辑芯片,蜂鸣器,20MHz时钟源, 128X32像素单色液晶显示屏。2.1 MAXPLUSII开发工具MAX+plusII界面友好,使用便捷,被誉为业界最易学易用的EDA软件。它支持原理图、VHDL和Verilog语言文本文件,以及波形与EDIF等格式的文件作为设计输入,并支持这些文件的混合设计。MAX+plusII具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。2.2 EPM7128可编程逻辑芯片 本系统选用EPM7128SLC84-15芯片,此芯片是MAX7000S系列器件,采用08m CMos EPROM技术制造。是高密度、高
7、性能的CMOS EPLD (可擦除可编程的逻辑器件)器件。它分为8个逻辑阵列块(LAB),每一LAB又分为16个宏单元。其宏单元由逻辑阵列、乘积项选择矩阵和可编程触发器三个功能块组成。它共有2500个可用门,128个宏单元组成。它的4个专用输入,既可以作为通用输入,也可以作为每个宏单元和IO引脚的高速、全局控制信号, 如时钟(Clock)、清除(Clear)和输出(Output Enable)等。逻辑阵列实现组合逻辑,给每个宏单元提供5个乘积项。“乘积项选择矩阵”分配这些乘积项作为到“或” 门和“异或” 门的主要逻辑输入,以实现组合逻辑函数,或者把这些乘积项作为宏单元中触发器的辅助输入。2.3
8、 128X32像素单色液晶显示屏 1.中文液晶显示模块(OCMJ128X32)的引脚说明引脚名称方向说明其它1VLED+I背光电源正极(LED+5v)2VLED-I背光电源负极(LED-5v)3VSSI地4VDDI(+5v)5REQI请求信号,高电平有效。6BUSYO应答信号=1:已经收到数据并正在处理中 =0:模块空闲,可以接受数据7-14DB0DB7I数据0数据72.用户命令格式(1)实验用液晶显示器模块(OCMJ)命令帧分为操作码及操作数两部分。(2)字符命令:1、显示国标汉字,2、显示8X8ASCII字符,3、显示8X16ASCII字符 图形显示命令:4、显示位点阵,5、显示字节点阵
9、屏幕控制命令:6、清屏,7、上移,8、下移、9、左移、10、右移(3)命令帧 1)显示显示8X8ASCII字符 命令格式:F1 XX YY AS 该命令为4字节命令(最大执行时间为0.8ms,Ts2=0.8ms),其中 XX:为以汉字为单位的屏幕行坐标值,取值范围00到0F。 YY:为以汉字为单位的屏幕列坐标值,取值范围00到1F。 AS:坐标位置上要显示的ASCII字符码。 2)显示显示8X16ASCII字符 命令格式:F9 XX YY AS 该命令为4字节命令(最大执行时间为1.0ms,Ts2=1.0ms),其中 XX:为以汉字为单位的屏幕行坐标值,取值范围00到0F。 YY:为以汉字为单
10、位的屏幕列坐标值,取值范围00到1F。 AS:坐标位置上要显示的ASCII字符码。3)接口时序说明编号名称单位最小值最大值说明1TruS0.4-数据线上数据稳定时间2TbuS220最大模块响应时间3TrtuS11-最小REQ保持时间4Ts1uS2045最大数据接收时间5Ts2uS-0.1-30最大命令指令处理时间3、设计思路 本系统采用自顶向下的模块化设计方法,将数字时钟化分为多个模块:分频器模块,时、分、秒计数五个模块、数据选择模块、译码显示和整点报时模块。系统原理框图如下: (1)为本系统提供的时钟信号源频率为20MHz,而秒计数器的计数时钟信号为1Hz的标准信号,数据选择器和显示驱动的时
11、钟信号为1MHz左右的时钟信号。因此,需将时钟信号源做多次分频,最终得到不同频率的时钟信号。 (2)时、分、秒计时模块采用六进制、十进制和二十四进制计数器共同构成,本系统采用异步进位计数法,1Hz的计数时钟信号就是秒个位信号,高位的计数时钟为低位的进位信号。当秒个位计时器为9时,当系一个时钟到来时秒个位计数器清零同时产生一个进位信号,此信号作为秒十位的时钟信号,以后类同。(3)数据选择模块将需显示的数据以扫描的方式送到显示器,要显示的字符共有10个,因此需设计一个十进制计数器,来选择显示数据。(4)译码显示驱动模块,需要将秒、分和小时的每一位输出信号输入至译码电路来得到相应的显示信息,通过十进
12、制计数器来控制位译码器。分频器 六进制计数器十进制计数器十进制计数器六进制计数器二十四进制计数器数据选择器显示驱动20MHz1Hz置数控制器LD液晶屏REQDATABUSYC1C2C3C4蜂鸣器CO数字时钟原理框图 4、设计方案 本系统可采用24小时计时方式,即当计时到23小时59分59秒时清零;同时也可采用12小时计时方式,即当计时到11小时59分59秒时清零,同时上午与下午之间切换。为了具有美观、清晰、人性化的显示界面,因此本系统选择第二种方案。显示界面如下图:23365624小时计时方案界面A/PM 12365612小时计时方案界面二、各模块详细设计 本问设计时,首先用VHDL语言编写各
13、个功能模块,分别在MAX+plus开发环境下编译、仿真,然后再用顶层文件将各功能模块连接起来。1、分频器模块 时钟控制电路的输入信号为20MHz的时钟信号,为得到1Hz的信号,需将20MHz的信号经过模为20000和模为1000的分频器最终得到秒的输入信号,如果只经过20000分频则得到数据选择器与译码显示驱动电路的输入信号。其VHDL程序实现如下:-1000分频器PROCESS(CLK) BEGIN -CLK为20MHz的时钟信号IF RISING_EDGE(CLK) THEN IF CNT0=X1F3 THEN -CNT0为500进制计数信号 CNT0=X000;CLK_NUM1=NOT
14、CLK_NUM1; -每记满500CLK_NUM1取反一次 ELSE cnt0=cnt0+1; CLK_NUM1=CLK_NUM1;END IF;END IF;END PROCESS;PROCESS(CLK) -20000分频器 BEGINIF RISING_EDGE(CLK_NUM1) THEN -分频方式同上 IF CNT00=X270F THEN CNT00=X0000;CLK_NUM2=NOT CLK_NUM2; ELSE cnt00=cnt00+1;CLK_NUM2=CLK_NUM2;END IF; END IF;END PROCESS;2、计数置数模块 计数器又分为五个模块,六进制
15、计数器和十进制计数器个两个再加一个二十四进制计数器。采用异步时钟,十进制计数器每记满一次产生一个进位信号,作为六进制计数器的时钟信号,后面以此类推。置数一控制端LD,当LD=1时为秒十位置数;当LD=2时为分个位置数;当LD=3时为分十位置数;当LD=4时为时个位置数;当LD=5时为时十位置数。所置数由一时钟脉冲为1Hz的十进制计数器滚动置数。(1)其VHDL程序实现如下:-秒个位PROCESS(CLK_NUM2) BEGINIF CLK_NUM2EVENT AND CLK_NUM2=1 THEN - DOUT12为秒个位计数信号 IF LD=000 THEN -当LD=0时正确计数 IF D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA技术及应用 EDA 技术 应用 课程设计 基于 VHDL 数字 时钟 设计 实现
链接地址:https://www.31ppt.com/p-4146851.html