ISE实现多功能数字钟设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、任务要求

用FPGA器件和EDA技术实现多功能数字钟的设计。

基本功能要求:能显示小时、分钟、秒钟(时、分用7段LED显示器,秒用LED灯)。

小时计数器为同步24进制;

要求手动校时、校分。

扩展功能要求:任意时刻闹钟;

小时显示(12/24)切换电路

自动报整点时数。

二、建立工程

在ISE 14,9软件中建立名为clock 的工程文件。芯片系列选择Spatan3E,具体芯片型号选择XC3S100E,封装类型选择CP132,速度信息选择-5。

三、原理设计

四、顶层模块设计

创建名为top_clock的文件,本设计中顶层模块用于调用各个子模块,以及将闹钟与整点报时模块综合在内,顶层源码如下:

module top_clock(

input Hchange, LK_50M(CLK_50),

.nCLR(nCR),

.CLK_1HzOut(CP_1Hz));LK_50M(CLK_50),

.nCLR(nCR),

.CLK_1HzOut(CP_200Hz));

(Q),

.nCR(nCR),

.EN(EN),

.CP(CP)

);

parameter PERIOD =40;

(Q),

.nCR(nCR),

.EN(EN),

.CP(CP)

);

parameter PERIOD =40;

ntH(CntH),

.CntL(CntL),

.nCR(nCR),

.EN(EN),

.CP(CP)

);

parameter PERIOD =40;

CLR(nCLR),

.Clk(Clk),

.EN(EN),

.CntH(CntH),

.CntL(CntL)

);

parameter PERIOD =40;将文件导入至xc3s5001中

右击xc3s5001,选择program选项,将程序烧录至FPGA实

验板中

1.观察运行情况

1)测试基本功能:

打开使能开关L3,数码管可以正常显示分和时,拨动时分和秒的切换显示开关G3,数码管可以切换显示秒。拨动

K3和B4,可以实现校时功能。拨动清零开关P11,可以实

现清零功能。当时间到23:59时,能运行至00:00。

2)测试扩展功能:

拨动F3,可实现24小时与12小时的切换。当时间为整点时,LED灯G1会根据当前整点时数闪烁对应次数,拨

动N3,闹钟使能。拨动E2,进入闹钟设置状态,此时设置

闹钟时间。当正常时间跳到闹钟设置时刻时,闹钟对应LED

灯N4会常亮,表示闹钟响。当正常时间已经越过闹钟设置

时间时,N4会熄灭。闹钟响时关闭闹钟使能端N3时,N4也

会熄灭。

五、实验总结

本次实验是一个中等规模的设计实验,相比步进电机实验,难度

明显上升,这就对我们的分析和设计能力有了更高的要求。要实现这个多功能的数字钟,关键要做到思路清晰,先构思好顶层架构,再一一考虑需要调用的模块,最后依次编写各个模块。在调试的时候,先要做到各子模块调试无误,再通过整机联调观察出现的不正常结果,列出可能的错误,再去对应的位置进行改正。

本次实验中,不可避免地出现了若干错误之处,例如在实现24进制和12进制转换时,没有发现代码中的计算方式是以8421BCD码来进行计算的,于是在最后的12进制显示中出现了很多不正常状态,花费了一些时间才找到解决办法。这也提醒我在之后的学习过程中要保持细心的态度,不断学习纠正错误的方法,提高效率。

相关文档
最新文档