西北工业大学 《FPGA 技术实验》 实验报告四 (四位秒表的设计与实现) 学 院: 软件与微电子学院 学 号: 姓 名: 专 业: 微电子学 实验时间: 2011.11.16 实验地点: 毅字楼 335 指导教师: *** 西北工业大学 2011 年 11 月 一、实验目的及要求 实验目的:学会复杂编程的思想,综合运用 verilog 语言,进行复杂电路设计及根据模拟综合仿真结果对设计进行优化。 实验要求:设计时长度为 1 小时,计时精度为 1 秒;初始值为:00:00 计时最大值:59:59。按照三个模块进行,顶层模块不做逻辑设计,只对底层模块例化,底层模块分为计时模块和译码模块。 二、实验设备(环境)及要求 本次实验使用的主要工具为:Synplify Pro 9.6.2 和 ModelSim SE 6.2b。 三、实验内容与步骤 1. 实验总体设计思路 按照题目要求本次实验的总体分为三块,即:顶层模块、计时模块和译码模块。先设计底层模块,然后在顶层模块进行例化。计时模块:通过在例化时对分频系数的改变,得到 1 秒,10 秒,1 分,10 分的输出,再对每位计数值的最大值进行例化。在译码模块:对输出要显示的时间数字进行译码。系统框图如图 1 所示: 图 1 数字秒表总体框图 下面具体说说每一个模块的实现原理: 分频计数模块 时钟分频 500Hz 通 用扫 描显 示模块 个秒位 0 到 9 显示 十秒位 0 到 5 显示 个分位 0 到 9 显示 十分位 0 到 5 显示 Rst_n 控制端 系统 时钟 1KHz 计数模块:我们要实现“分分:秒秒”显示的电子秒表,需要设计计数频率为 1Hz 的计数器。因为“分分:秒秒”的结构对应有 4 个十进制数字(个位的秒,十位的秒,个位的分,十位的分),考虑到需要用硬件实现,在此,我们将每个显示的值分别进行计数,即分别针对个位的秒、十位的秒、个位的分、十位的分设计对应的计数器,其中个位的秒计数频率为 1Hz,即在现实生活中的 1 秒 个位的秒变化一次,其从 0 到 9 计数,当从 9 回到 0 时,同时向十位秒前进一位,使得十位的秒进行计数加 1。十位的秒从 0 到 5 计数,当从 5 回到 0 时,向前进一位,使得个位的分进行计数加 1。个位的分从 0 到 9 计数,当从 9 回到 0 时,向前进一位,使得十位的分进行计数加 1。十位的分则从 0 到 5 计数,计数到 5 时,又回到 0。当四位都达到最大值后,下一秒从 0 开始。有分频计数,但我们在此...