本工程面向 TEC-8 + EPM7128SLC84-15,显示格式为 HH:MM:SS。
本版按照 PPT 平台约束修正为稳定同步结构:CP2 只用于内部同步与按键采样,CP3 作为外部秒脉冲输入,避免 PULSE/QD 被综合成异步控制后在板上乱跳。扬声器蜂鸣单独由 CP1 分频产生,不再输出直流常量。
CLR#:低电平异步复位到00:00:00QD:正常状态下运行/暂停切换;闹钟响起后按下可消音PULSE:暂停状态下单步设置K0=1:PULSE加 1 小时K1=1:PULSE加 1 分钟K2=1:查看/设置闹钟时间K3=1:闹钟使能,K3=0:闹钟关闭
普通分钟校时时只调整分钟,保留当前秒显示。闹钟设置显示为 HH:MM:00,只保存时和分。
K2=1 时只响应 K0/K1/PULSE 的闹钟设置操作,QD 不会切换运行/暂停或消音,避免设置闹钟时误退出暂停走时。
CP1:扬声器蜂鸣基准,接 PPT 中的100KHz/10KHz引脚;推荐选择100KHzCP2:同步采样时钟,接 PPT 中的1KHz/100Hz引脚CP3:运行计时基准,接 PPT 中的10Hz/1Hz引脚
结合 实验五+六-预习.pdf 的引脚说明,上板时建议:
- 将
DZ8短接到1Hz,让CP3提供每秒一次计时脉冲 - 将
CP2选择为1KHz,用于同步QD/PULSE/K0/K1/K2/K3 - 将
CP1选择为100KHz,分频后给扬声器提供约3.125KHz的方波蜂鸣,声音更尖锐但仍在人耳可听范围内;如果选10KHz,声音会变成约312.5Hz
这样既符合 PPT 的接法,也能避免按键/脉冲直接进异步控制后导致显示乱跳。
- 只有一组闹钟,保存
时:分 K2=1且暂停时,可用K0/K1 + PULSE设置闹钟时分- 到达闹钟时间
HH:MM:00时,扬声器输出由CP1分频得到的方波蜂鸣 - 响铃期间电子钟继续正常走时
- 响铃时按
QD消音 K3拉低会关闭闹钟并立即停止响铃,但不会影响电子钟本身运行K2处于闹钟查看/设置时,QD被屏蔽;需要先退出K2再用QD控制走停或消音- 扬声器复用
PIN_52,也就是平台资料中的LG1-D7//Speaker
- 设置闹钟后必须保持
K3=1,否则到达闹钟时间也不会置位响铃状态 CP1必须有有效时钟输入,推荐选择100KHz;如果CP1停止或未接入,alarm_active即使成立也不会形成可听方波PIN_52是LG1-D7//Speaker复用脚,听声音时要确认板上接的是扬声器通道,而不是只观察数码管小数点/段线- 若
K3=1且CP1=100KHz仍不响,优先确认下载的是最新clock.pof,再检查PIN_52连接和扬声器硬件
LG1:秒个位,采用共阴极 7 段直译码LG2:秒十位,BCDLG3:分个位,BCDLG4:分十位,BCDLG5:时个位,BCDLG6:时十位,BCD
iverilog -g2001 -o sim/tb_clock.vvp src/clock.v sim/tb_clock.v
vvp sim/tb_clock.vvp
quartus_sh --flow compile clockQuartus输出编程文件:clock.pof- 资源占用:
109 / 128 macrocells