基于可编程逻辑器件秒表.docx
- 文档编号:23832920
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:14
- 大小:1.04MB
基于可编程逻辑器件秒表.docx
《基于可编程逻辑器件秒表.docx》由会员分享,可在线阅读,更多相关《基于可编程逻辑器件秒表.docx(14页珍藏版)》请在冰豆网上搜索。
基于可编程逻辑器件秒表
课程论文
(可编程逻辑器件-1/100秒表)
专业:
电子信息工程
班级:
09电信三班
姓名:
陈赛
学号:
20092305905
1/100S计时器常用于比赛中及各种要求较精确的各领域,如果是中小规模集成电路也可以实现这个功能的,但是这个系统的体积较大可操作性差,所以这次使用VHDL语言和硬件相结合制作一个计时器。
这样的体积的可以大大缩小的,并且也是可以保证基本功能的前提下可以附加一些额外的功能的,比如系统的复位和指示。
一、功能要求
(1)精度大于1/100s
计时器能显示1/100s的时间,故提供给计时器的内部定时的时钟脉冲频率大于100hz,可选1khz。
(2)计时器的最长计时时间为1h
在一般的短时计时器的应用中,1h是足够了,为此需要一个6位的显示器,显示的最长时间为59分59.99秒.
(3)设置复位和启/停开关
复位开关用来使计时器清零,并做好计时的准备。
启/停开关的使用方法应与传统的机械式计数器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关终止。
复位开关可以在任何的情况下使用,即使在计时的过程中,只要一按复位开关,计时进程应立即终止,并对计时器清零。
二、1/100s计时器的结构设想
1/100s计时器的结构如下图2.1所示。
从图中可以看到,1/100s计时器由复位开关、启/停开关、系统电源复位电路、时钟脉冲发生器、7段LED显示器和1/100s计时控制芯片组成。
复位开关reset_sw和start_stop_sw都是高电平有效。
另外,开关的消抖电路应在控制芯片中。
系统复位输入端sysres是计时器加电复位的输入端,其复位电路是为外加的,不包含在芯片中。
时钟输入clk是由外加时钟脉冲发生器的输出提供的,本设计中要求输入一个频率稳定的1Khz时钟脉冲。
6位显示器需要6个7段LED,控制芯片的7条段输出线segment(6TO0)与7段LEDd对应连接。
控制芯片的6条common(5TO0)输出线分别接到各个LED,用来选择显示LED。
Common以166Hz的频率使6个LED按次序循环点亮,从而可以得到一个人眼观察无闪烁感觉的稳定的显示输出。
图2.11/100s计时器的结构图
三、1/100s计时器控制芯片设计
(1)输入信号
复位输入-------reset_sw;
启/停输入--------Start_stop_sw;
系统复位输入---sysres;
时钟输入---------clk.
(2)输出信号
LED7段输出----segment(6TO0),共7条输出线。
LED公共端输出----common(5TO0),共6条输出线。
四、计时控制芯片的各个模块的仿真和说明
1)系统模型构造
为了便于描述,现将整个计时控制芯片分成5大子模块;键输入子模块(keyin)、时钟产生子模块(clkgen)、控制子模块(ctrl)、计时计数器模块(cntblk)和显示子模块(disp)各子模块之间的信号连接关系如下图4.1所示。
图4.1各子模块之间的信号连接图
2)各个模块的仿真和说明:
以下是各个模块的仿真图和简单的说明。
4.2四进制
4.3十进制
4.4六进制
从图4.24.34.4中可以很清晰的看到cnt4和cnt6及cnt10的数值是从0-3、0-5、0-9循环的,值得一提的是这个进位的信号是在最后一个状态开始的时候出发的,持续一个状态的,到下一个新的循环到来时候也会清零的。
4.5Clkgen(时钟产生信号)仿真
此模块是把1KHz的频率通过cnt10分频成为100Hz的频率通过cntclk输出留给控制模块使用的,然后把这个100Hz的通过cnt4分频成为25Hz的频率供给键盘输入keyin模块使用。
4.6Keyin(键输入子模块)仿真图
从图中可以看出当keyclk的下降沿触发的时候RES0的值赋值给RES1,RES0接受RESET_SW的值,同理STST0的值赋值给STST1,STST0接受START_STOP_SW的值。
其中的输出RES,当KEYCLK=RES0=1、并且RES1=0的时候RES为1;同理输出STST,当KEYCLK=STST0=1、并且STST1=0的时候RES为1;图4.6中可以很明显看出
4.7Ctrl控制子模块仿真示意图
从图中可以清楚的看到只有当SYSRES=RES='0'的时候系统才工作的,并且是要cntclk为1的时候在STST的上升沿触发的时候输出的CNTEN会自动取反。
4.8Disp显示模块
如图4.8所示common为位选择,每次只选择6位中的一个数码管有效,当速度较快的时候,就可以实现动态显示的功能的。
Segment则为数码管段码显示,如上图显示不同的段码代表不同的的数字。
4.9stop_watch仿真图
本模块为最终的系统仿真模块,计时控制芯片的实体名为stop_wactch实体对输入端口clk,sysres,reset_sw,start_stop_sw和输出端segment,common经行定义和说明,分析后不难发现这个系统调用了5个子模块的,就是上述的五个子模块的构成stop_wactch。
五、电路设计图
下面是电路设计图:
CPLD芯片和外围电路连接,其中CPLD芯片为EPM1270T144C5N,外围电路包括6位数码管一个,开关几个,如5.1所示的电路图所示。
5.1系统总框图
5.2EPM1270T144C5N构造图
5.3六位数码管示意图
六、Max+PLUSII使用和管脚锁定
1.Max+PLUSII设计概述
我们接触的设计的主要的流程是:
新建项目—保存—文本或图形编辑—编译查错—波形仿真—管脚锁定—下载配置,如下图6.1所示。
其中如果是查错编译有问题的话,要返回文本或图形编辑经行修改,直至编译通过。
如果是波形仿真不符合要求的,也是要回到文本或者是图形编辑经行修改,直到符合设计的要求的。
如果是波形仿真通过,但是实际的电路的功能不符的话,可以查询下是否是管脚锁的有误的。
图6.1设计流程
1)文本编辑
出现“New”对话框,选择“TextEditorfile”,按“OK”如下图6.2所示,然后保存好相应的文件名后缀为.vhd后就可以输入相应的文本的信息。
此处要注意保存的名称的要和程序中的实体名一致的。
6.2文本编辑示意图
2)查错编译
在输入完相应的文本信息后的,可以点击下编译的按钮的,编译器将一次性完成编译、综合、优化、逻辑分割和适配/布线等操作,如下图6.3所示。
如果是有错误提示的,可以通过鼠标点击下相应的错误信息的,在了解错误信息提示的内容下,双击下相应的错误提示信息就可以直接定位到相应有问题的地方的,方便改错。
6.3查错编译
仿真顶层设计TOP:
选择“New”的“WaveformEditorfile”产生波形文件。
然后在“Node”的“EnterNodesfromSNF…”产生信号节点,给相应的信号以初值,经行波形仿真如果下图6.4所示。
6.4波形仿真
2.管脚锁定
芯片的管脚锁定就是将设计实体的管脚与目标芯片特定的可输入输出管脚建立一一映射的过程。
它包括两个方面:
一是需设定未用的管脚;二是根据需要进行管脚的锁定。
1)打开【Assignments】菜单下的【Pins】命令,打开引脚锁定窗口,如图所示。
先用鼠标指到要锁定的端口信号名与【Location】栏交汇的地方,这时此处呈蓝色,然后双击对应的交汇处,在出现的下拉栏中选择对应端口信号名的器件引脚号(例如对应ENA,选择PIN_99),引脚锁定后将下拉菜单复原,则系统自动保存该锁定。
7.1引脚锁定窗口的打开及管脚的锁定
2)直接编辑 .qsf文件进行引脚锁定。
引脚的锁定信息保存在工程文件夹中与工程同名的*.qsf文件中,可以通过编辑*.qsf文件来改变或设定引脚,如图7.2所示。
7.2编辑 .qsf文件进行引脚锁定
七、配置下载方法
编程下载及验证步骤包括:
①编程下载硬件准备;②打开编程器窗口;③建立被动串行配置链;④器件编程下载。
图7.1是编程下载的操作界面。
对于只含一个模块的系统,其设计与测试过程可按上述步骤进行,但对含有多个模块多个层次的设计与测试,通常按照自底向上的方法进行设计与测试,因此往往是2~5步交错在一起先进行低层次各模块的设计,待低层次各模块的设计与测试完毕后,再按照2~7步进行顶层模块的设计与测试。
7.1编程下载设置及过程
八、思想和感悟
通过这个实习,我进一步的加深了对可编程逻辑器件的认知和感悟。
以前在专科的时候,对于这个可编程逻辑器件只是操作一些简单的功能,对于相应的原理和过程没有深究的,后续的在这个实训中我也学会了相应的器件的调用,值得一提的是祁老师的教学备课充分,上课的时候一贯的流利,给我留下了深刻的影像,同时我也感觉到了自己的学艺不精的,很多的时候的程序认知不足,还是要不断的学习才能试用社会的发展。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 可编程 逻辑 器件 秒表