编辑: qksr | 2019-07-02 |
四、设计提示 1.关于输入时钟 试验板上可以输入4路时钟,并有多钟频率可以选择(详见后文实验板资源),问题:输入几路时钟?各多少赫兹?如何分频得到所需频率? 提示:选择时钟源的原则是:输入的时钟源尽量少,内部分频器也要尽量少.先查看一下需要哪些时钟. 计时的基准时钟:1Hz 跑表的基准时钟:100Hz 数字闪烁显示:2Hz 闹铃/整点提示音:节拍控制4Hz/1Hz,及声音频率1kHz/500Hz左右 快速调节:每秒8-10次 七段码扫描显示:>
=200Hz(每位数字至少25Hz,8位扫描至少要200Hz的扫描频率) 参考一:输入两路时钟源:8Hz和4096Hz 8Hz经分频得到:4Hz,2Hz,1Hz 4096Hz经分频得到音频与数码管的扫描脉冲:1024Hz,512Hz 4096Hz经41分频得到:100Hz(误差小于0.1%) 参考二:输入一路时钟源,由4096Hz分频得到全部所需时钟. 2.关于星期 星期的设定可以有自动和手动两种方案,自动是指根据当前年、月、日自动确定星期几;
手动方案是需要自己设定好星期,然后星期与日历同步走.手动设计相对简单一些,自动则需要利用Altera芯片提供的EAB来实现ROM型的查找表.做查找表时要考虑EAB的资源有限,EPF10K10共3个EAB,每个2048字节. 问题:一个EAB能放下几年的星期查找表?如果用一个表查找2000-2009年的星期,需要多大的查找表?太大怎么办? 提示:可以试试用两个表分步查找. 3.关于24/12小时制 设计中时间与闹钟定时都需要小时在两钟模式下显示,设计不好就会增加很多资源的开销.有三种设计方案: 两套计数器分别计24/12小时制的时间. 只计数24制小时,用组合逻辑来转换24->
12 用查找表来转换.注意的是两个地方都要转换,如何同享同一个查找表? 24/12小时对照表 24:
0 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
13 17
18 19
20 21
22 23 12:
12 1
2 3
4 5
6 7
8 9
10 11
12 1
2 3
4 5
6 7
8 9
10 11 AM PM 4.关于跑表的状态机设计 问题:这是个什么类型的状态机?如何设计? 提示:所需输出的变量Runing,Holding与状态有关,与输入无关,但需要控制的清
0、刷新保持显示的值不仅与状态有关,与输入也有关.但是可以设计三个状态下状态变量S的值分别为:00/01/11(格雷码),则Runing对应S的低位,Holding对应S的高位,这样需要改变的只有清0与刷新保持值的信号,可以当作Merly状态机来设计. 5.关于按键除抖动及固定宽度脉冲输出 按键除抖动的原理是:当检测到一个高电平时,延时一段时间(如10ms)再检测,如果仍是高电平就表明按键确实按下了.释放按键也是同样的检测方法. 固定宽度脉冲生成的原理是:在去除抖动的基础上,判断两个经过不同延时的按键信号,如果前一时钟检测到的是低电平,这一时钟检测到高电平,说明按键按下,输出一个时钟周期宽度的高电平. 6.关于试验板的资源与仿真模式 本实验中需要利用到的有时钟源、按键、数码管、LED和蜂鸣器.实验板上可以选择不同的模式来选择不同的输入输出方式,按使用说明书,本实验可选择模式
三、
七、八.后两种控制显示效果的能力强一些,做起来也相对复杂. 先介绍一下几种模式下的引脚定义,比较优缺点,并给出相关设计提示. 三种模式下时钟源、LED、蜂命器的定义完全相同: 资源名称 引脚名称 引脚号 功能 时钟 CLK0
3 1/4/16/64/1024/4096/16384/65536/12M/24M/48M CLK1