




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
滁州职业技术学院滁州职业技术学院 ATAATA 软件学院软件学院 20082008 级级 毕毕 业业 设设 计计 姓姓 名 名 班班 级 级 08 应应用用电电子技子技术术 设计题目 设计题目 基于基于 Verilog 设计设计的的电电子子钟钟系系统统 指导教师 指导教师 宫宫 强强 20102010 年年 1212 月月 滁州职业技术学院应用电子专业毕业论文 II 目目 录录 目 录 II 摘 要 III 第一章 多功能数字电子钟设计要求 1 第二章 EDA 仿真环境简介 1 2 1 EDA 技术简介 2 2 2 Quartus 软件简介 2 2 3 Modelsim 软件简介 3 2 4Verilog HDL 语言简介 4 第三章多功能数字电子钟的设计原理 6 第四章 数字钟单元电路模块设计与仿真 8 4 1 秒脉冲电路模块 8 4 2 秒钟电路模块 15 4 3 分钟电路模块 18 4 4 小时计时电路模块 22 4 5 整点报时电路模块 25 4 6译码显示电路模块 28 第五章 总体系统设计与仿真 38 5 1 总体系统设计 38 5 2总体系统仿真 39 总 结 40 致 谢 41 参考文献 4141 滁州职业技术学院应用电子专业毕业论文 III 摘摘 要要 滁州职业技术学院应用电子专业毕业论文 1 第一章第一章 多功能数字电子钟设计要求多功能数字电子钟设计要求 数字钟是一种用数字电路技术实现时 分 秒计时的装置 与机械式时钟 相比具有更高的准确性和直观性 且无机械装置 具有更长的使用寿命 已得 到广泛的使用 本次设计是利用 EDA 基本知识以及 Verilog HDL 语言来设计的 一个多功能数字电子钟系统 以下是本次设计的主要要求 1 掌握系统设计的一般步骤与方法 掌握一个大系统中各子系统的相互制约关 系 2 运用所学 EDA 知识及 Verilog HDL 语言 自行设计并实现一个较为完整的小 型系统 通过程序设计 仿真与综合 写设计论文等环节 初步掌握一个工程 设计的具体步骤与方法 以提高分析问题与解决问题的能力 提高实际应用水 平 3 学会使用 Modelsim 与 Quartus 软件来设计一个符合要求的系统 并熟悉 使用 Verilog HDL 语言来编程 4 数字电子钟要求能显示时 分 秒 并且是 24 进制的即时间显示到 23 59 59 后转变为 00 00 00 5 分钟与秒钟是 8421BCD 码 60 进制计数器 6 系统能够复位 复位后显示 00 00 00 7 系统能够整点报时 滁州职业技术学院应用电子专业毕业论文 2 第二章第二章 EDA 仿真环境简介仿真环境简介 2 1 EDA 技术简介 2 2 Quartus 软件简介 2 3 Modelsim 软件简介 2 4Verilog HDL 语言简介 第三章多功能数字电子钟的设计原理 电子钟要求能够复位 复位显示 00 00 00 并且在整点的时候还可以报时 hfy 10kHz 系统基准时钟输入 作为七段数码管扫描频率 将其 10000 分频可 得到 1Hz 的数字钟工作频率 将 10kHZ 信号送入整点报时模块来驱动扬声器 使其产 嗒 的报时声 Rst 系统复位信号 低电平有效 复位后显示 00 00 00 Spk 输出到扬声器 发出 嗒 的报时声 Display 7 段数码管显示输出 在设计的时候从 0 到 7 共有 8 个 Display 就必须有 8 个数码管 要使电子钟实现上述功能 在设计的时候要有 6 个模块 分别为分频电路模 块 秒钟电路模块 分钟电路模块 小时电路模块 整点报时模块 报时需要 一个扬声器来发出声音 所以在整点报时模块后加了一个扬声器 译码显示模 块 显示模块需要讲数字显示出来 所以在显示模块后加了一个数码显示管 并将这些模块生成元件符号 最后用原理图输入方式 将各个模块连接起来编 译仿真 其系统框图如下所示 滁州职业技术学院应用电子专业毕业论文 3 图 3 2 多功能数字电子钟功能模块框图 由上面的功能模块框图可以看出 系统的基准时钟脉冲为 10kHz 分为三路 一路送到分频器模块 用以产生 10000 分频的秒脉冲信号 另外两路不用分频 直接送给整点报时模块和译码显示模块 用以驱动扬声器报时和数码管显示 秒钟模块 它的输入信号是分频器产生的 1s 脉冲信号 功能是秒计数即从 0 计到 59 然后产生进位信号 分钟模块 它的输入信号是秒钟模块产生的进位信号 功能是分计数即从 0 计数到 59 然后产生进位信号 小时模块 它的输入信号时分钟模块产生的进位信号 功能是小时计数即 从 0 到 23 然后复位 整点报时模块 它的驱动信号是系统基准时钟脉冲 10kHz 信号 秒钟模块 和分钟模块都为 0 的时候报时 实现整点报时功能 系统复位端 此端口是在嵌入在上述 6 个模块中的 它的输出分别送到秒 钟模块 分钟模块和小时模块是这三个模块同时清零 从而达到复位的效果 译码显示模块 它的驱动信号是系统基准脉冲 10kHz 信号 它将秒钟模块 分钟模块和小时模块送来的数据显示出来 第四章第四章 数字钟单元电路模块设计与仿真数字钟单元电路模块设计与仿真 滁州职业技术学院应用电子专业毕业论文 4 4 1 秒脉冲电路模块 一 模块作用 秒脉冲电路模块作用是提供 1Hz 秒脉冲来驱动秒模块 二 模块设计思路 它是将系统基准时钟的 10kHz 信号 10000 分频以产生 1Hz 的信号 即为 1s 一个时钟脉冲是从低电平跳变到高电平的 所以在这里将 10kHz 的信号 5000 分频得到 2Hz 也就是 0 5s 然后在跳变为高电平 运行 0 5s 两个加起 来就为 1 s 以达到 1s 时钟周期的目的 在设计程序时 定义模块名为 hfy 1s 运用了 always 语句 并且是 在系统基准时钟信号 hfy 上升沿有效 输入引脚为 hfy 输出引脚为 hfy 1Hz 图 4 1 1 秒脉冲电路元件符号 下面分别用 Quartus 和 Modelsim 进行编译和仿真 三 Quartus 仿真源程序 module hfy 1s hfy hfy 1Hz input hfy output hfy 1Hz reg hfy 1Hz reg 12 0 hfy count1 always posedge hfy begin if hfy count1 4999 begin hfy count1 0 hfy 1Hz hfy 1Hz end else hfy count1 hfy count1 1 end 滁州职业技术学院应用电子专业毕业论文 5 endmodule 四 Quartus 仿真 第一步 双击桌面的 Quartus 图标进入 Quartus 仿真编译环境 第二步 输入源程序 选择菜单 File New 命令 在弹出的 New 对话框的 Device Design Files 页面中选择源文件的类型 这里选择 Verilog HDL File 类型 然后输入上述源程序 如图 4 1 3 和 4 1 4 所示 图 4 1 2 源文件类型选择 第三步 编辑好源程序后保存并建立一个工程 保存时文件名要和模块名一 样 第四步 点击上步之后弹出的对话框中的 是 后出现 New Project Wizard 对话框 第五步 单击对话框中的 Next 创建工程的名称 工程名为 hfy 1s 单击 Next 进入下一步 第六步 选择要编译的文件 这里已经默认的为所输入的源程序文件 单击 Next 进入下一步 第七步 选择目标器件 这里选择 Altear Cyclone EP1C6Q240C8 第八步 单击 Next 完成工程的建立 然后单击 Finish 如下图所示 滁州职业技术学院应用电子专业毕业论文 6 图 4 1 3 完成工程建立 第九步 如上面所述 建立好工程后 就对源程序进行编译 点击按钮 进入编译状态 在编译的时候注意 type 一栏 如有错误会在这里提示 并 要返回源程序进行修改 如没有错误编译结束后在弹出的对话框中点击确定 如下图所示 图 4 1 4 编译提示 第十步 建立波形文件 执行 File New 在弹出的如图 4 1 3 对话 框中选择 Other Files Vector Waveform Files OK 创建一个如 下图所示的波形文件 滁州职业技术学院应用电子专业毕业论文 7 图 4 1 5 波形文件 第十一步 建立好波形文件后 需要将源程序里的输入输出引脚加到波形文 件中去 具体步骤为执行 View Utility Windows Node Finder 在弹出的对话框中的 Filter 栏中选择 pins all 然后点击 List 第十二步 将引脚拖到波形文件的 Name 栏中 并在菜单栏中将截止时间 改为 5s 具体步骤执行 Edit Endtime 在弹出的对话框中修改时间 单击 OK 结束 第十三步 对 hfy 信号进行赋值 在这里将 hfy 信号的周期设置为 0 1ms 因为我们需要的 hfy 为 10kHz 设置周期为 0 1ms 就可以达到 10kHz 具体步骤为 先选中 hfy 然后点击 这个图标 然后会出现一 个对话框 然后在 Period 中设置 第十四步 将仿真改为功能仿真 具体步骤为 Assignments Setting 在 Simulation mode 中将仿真改为 Functomal 第十五步 将波形文件生成一个网表 以供软件编译 步骤为 Processing Generate Functional Simulation Netlist 在弹出的对 话框中点击保存 因为默认的名称就为模块名 所以不用改 然后会弹出生成网表成功对话框 点击确定 第十六步 做完上述的工作后就可以对程序进行仿真 点击 按钮 就会自动仿真了 仿真结束后点击确定 如下图所示 图 4 1 6 仿真波形图 滁州职业技术学院应用电子专业毕业论文 8 在图 4 1 6 可以看出当计数器 hfy count1 从 0 计数到 4999 时 hfy 1Hz 就从 高电平翻转到低电平 这就说明 hfy 1Hz 高电平的持续时间为 0 5s 图 4 1 7 仿真波形图 在图 4 1 7 中 hfy 信号从 A 点到 B 点运行了 5000 个周期 hfy 1Hz 为高电平 持续时间为 0 5s 从 B 点到 C 点 hfy 1Hz 为低电 平 持续时间也为 0 5s 因此得知 hfy 1Hz 的周期为 1s 这说明设计的程 序是正确的 第十七步 仿真的结果出来之后 如我们所设想的一样就可以将源程序生成一个 元器件了以供以后调用 步骤为 File Createl update Creater Symbol Files for current File 生成的元器件符号如图 4 1 1 所示 下面可 以用 Modelsim 软件对所设计的程序进行进一步的验证 四 Modelsim 仿真 1 Modelsim 仿真源程序 module hfy 1s hfy reset hfy count1 hfy 1Hz input hfy reset output hfy 1Hz output 12 0 hfy count1 reg hfy 1Hz reg 12 0 hfy count1 always posedge hfy begin if reset begin hfy count1 0 hfy 1Hz 0 end 滁州职业技术学院应用电子专业毕业论文 9 else if hfy count1 4999 begin hfy count1 0 hfy 1Hz hfy 1Hz end else hfy count1 hfy count1 1 end endmodule 2 Modelsim 仿真测试程序 timescale 1us 1us include hfy 1s v module hfy tp reg hfy reset wire hfy 1Hz wire 12 0 hfy count1 parameter DELY 1000 hfy 1s myhfy 1s hfy reset hfy count1 hfy 1Hz always DELY 2 hfy hfy initial begin hfy 0 reset 0 DELY 2 reset 1 DELY 2 reset 0 DELY 50000 finish end endmodule 在第一个程序中 将 hfy count1 0 hfy 1Hz 0 是因为在 Modelsim 软件中的初始值为 X 所以必须对他们进行清零 另外在 Modelsim 软件中 输 入信号必须为 reg 型 输出信号为 wire 型 在 Quartus 中将 hfy count1 设为 中间变量 在这里不可以 所以将其设为输出信号 滁州职业技术学院应用电子专业毕业论文 10 第二个程序为测试程序 所以只需调用源程序 并将激励信号赋值就可以 了 在这里将仿真时间精度设为 1ns 周期为 100ns 这也是为了得到 10kHz 的 系统基准时钟周期脉冲 具体步骤如下 第一步 打开 Modelsim 软件 新建一个 Verilog 文档 一个用来输入源程序 具体步骤为 File New Source Verilog 在弹出的文本框中 输入源程序 再用同样的方法在再建一个 Verilog 文档用来输入测试程序 第二步 在输入好以上程序后 需要将其保存 源程序名为 hfy 1s 测 试程序名为 hfy tp 第三步 建立工程 具体步骤为 File New Project 在弹出的 对话框的 Project Name 栏中输入工程名 hfy 1s 单击 ok 再在弹出的对 话框中选择文件 将源程序和测试程序都选上 然后点击 ok 第四步 对程序进行编译 步骤为在 Project 栏中右击两个程序中的任 意一个 在下拉菜单中选择 Compile Compile All 在编译时注意 Transcript 栏 如有错误就需对程序进行修改 第五步 上图显示程序没有错误 所以接着可以对工程进行编译 单击 Library Work hfy tp simulate 再此过程中界面会变 化几次 不要紧等到出现 sim 界面时再选择 my hfy 1s Add To wave All items region 做完后会出现 wave 波形界面 如 下图示 图 4 1 7 工程编译 滁州职业技术学院应用电子专业毕业论文 11 图 4 1 8 工程编译 第六步 当出现 wave 波形界面后 由于没有设置仿真的时间所以显示不 出来波形 这时可以在工具栏中输入 1000000us 并单击 波形就会出 来了 再右击 hfy count1 Radix Unsigned 将其改为十进制数 如下图示 图 4 1 9 仿真波形 图 4 1 10 仿真波形 如图 4 1 10 所示 当计数器 hfy count1 计数到 4999 的时候 hfy 1Hz 信号 由低电平翻转到高电平 即表示 hfy 1Hz 信号的低电平持续时间为 0 5s 当 hfy 1Hz 信号再由高电平翻转到低电平 又持续了 0 5s 说明 hfy 1Hz 信号 周期为 1s 这也就证实了所设计的程序是正确的 4 2 秒时钟电路模块秒时钟电路模块 一 模块作用 秒钟模块作用是用以秒计时 即计从秒脉冲电路模块输出的 hfy 1Hz 信号的个数 他可以从 0 计数到 59 也就是有 60 个 hfy 1Hz 信号 然后 会产生一个 H 进位信号 滁州职业技术学院应用电子专业毕业论文 12 图 4 2 1 秒钟电路符号 二 模块设计思路 在设计秒计时模块时 它的输入信号是从秒脉冲模块中产生的 1s 时钟信 号 即每来一个 1s 时钟信号计数一次 一直计到 59 然后再来一个 1s 时钟脉 冲时计数器清零并产生一个进位信号 H 然后将 H 信号一路送给分钟模 块一路送给整点报时模块 并且将秒钟模块的高位 低位分别送给译码显示电 路模块 在设计程序时 输入信号有秒脉冲产生的 hfy 1Hz 信号和外部的低电 平有效的复位信号 Rst 输出信号有进位信号 H 位宽为 4 位的秒低位 SECL 和秒高位 SECH 程序中使用 always 语句 敏感条件是 posedge hfy 1Hz or negedge Rst 设计程序时先判断有没有复位信号 有的 话就清零 没有复位信号就判断秒低位是否为 9 为 9 的话就给秒低位清零 然后判断秒高位是否为 5 是的话就给高位清零并且输出一个进位信号 H 1 不为 5 的话就给高位加一 如果秒低位不为 9 那么就给低位加一计数 另外 注意一点就是在判断秒低位是否为 9 前要将 H 信号清零 这样在后来产生 H 信号时也只有一个周期为高电平 三 Quartus 仿真源程序 module SEC hfy 1Hz Rst SECL SECH H input hfy 1Hz Rst output 3 0 SECL SECH output H reg 3 0 SECL SECH reg H always posedge hfy 1Hz or negedge Rst if Rst begin 滁州职业技术学院应用电子专业毕业论文 13 SECL 0 SECH 0 end else begin H 0 if SECL 9 begin SECL 0 if SECH 5 begin SECH 0 H 1 end else SECH SECH 1 end else SECL SECL 1 end endmodule 四 Quartus 仿真 具体步骤如同秒脉冲电路一样 这里不再重复 值得注意的就是给激励信 号赋值时将截止时间设大一点 最起码 60s 以上这样可以看的明显一些 hfy 1Hz 周期设置为 1s Rst 信号可以在任意周期设为 0 仿真波形图如 下所示 图 4 2 2 SEC 仿真波形 图 4 2 2 所示 当 SECL 从 0 开始计数 计数到 3 时 Rst 为低电 平有效 SECL 信号被清零 并且该模块也实现了清零功能 图 4 23SEC 仿真波形 滁州职业技术学院应用电子专业毕业论文 14 图 4 2 3 中可以看出当 SECL 为 9 SECH 为 5 时 在下一个 hfy 1Hz 脉冲上升沿到来时 SECL 和 SECH 同时变为 0 说明实现 了计数规律从 0 计到 59 即为 60 进制 并且产生一个进位信号 H 持续 1s 时间 综合两个图可以看出 该模块达到所设计的功能 五 Modelsim 软件仿真 源程序和 Quartus 源程序一样 测试程序 timescale 1ms 1ms include SEC V module SEC tp reg hfy 1Hz Rst wire 3 0 SECL SECH wire H parameter DELY 1000 SEC my SEC hfy 1Hz Rst SECL SECH H always DELY 2 hfy 1Hz hfy 1Hz initial begin hfy 1Hz 0 Rst 1 DELY 2 Rst 0 DELY 2 Rst 1 DELY 20000 finish end endmodule 在测试程序中将时间精度设置为 1ms H 信号周期设为 1000ms 也就是 1s 波形图如下所示 图 4 2 3 modelsim 的 SEC 仿真波形 在图 4 2 3 中可以看出 在每一个 hfy 1Hz 信号上升沿到来时 SECL 信号实现加 1 计数 当 SECL 累加到 9 时 SECH 信号实现加 1 计 数 滁州职业技术学院应用电子专业毕业论文 15 图 4 24 modelsim 的 SEC 仿真波形 在图 4 2 4 中可以看出当 SECL 秒低位计数到 9 的时候 SECH 秒高位 计数到 5 的时候 在下一个 hfy 1Hz 脉冲上升沿到来时得到一个进位信号 H 加入计数使秒高位 SECH 和秒低位 SECL 都为 0 而产生一个进位信号 H1 综合 Quartus 和 Modelsim 两个软件仿真结果可以看出在设计思路中 提出的想法是正确的 这也就证实了所设计的程序时正确的 能够实现秒计时 的功能 4 3 分钟电路模块 一 模块作用 分计时模块作用是用以分计时 它可以从 0 计数到 59 每当秒计时模块送 来一个进位 H 信号 计数器实现加 1 计数 当计数到 59 时 再来一个 H 信号的时候 它会产生一个进位信号 H1 图 4 3 1 分钟电路元件符号 二 模块设计思路 分计时电路模块设计思路基本上与秒计时电路模块一样 不同之处就在于 分计时电路模块的输入信号为 H 它的周期为 60s 由于它们的功能一样 所以在这里就不在进行描述了 三 Quartus 仿真源程序 module MIN H Rst MINL MINH H1 input H Rst output 3 0 MINL MINH output H1 滁州职业技术学院应用电子专业毕业论文 16 reg 3 0 MINL MINH reg H1 always posedge H or negedge Rst if Rst begin MINL 0 MINH 0 end else begin H1 0 if MINL 9 begin MINL 0 if MINH 5 begin MINH 0 H1 1 end else MINH MINH 1 end else MINL MINL 1 end endmodule 四 Quartus 仿真 仿真步骤如前面所示 这里不在介绍 在给它输入激励波形时 H 周期 为 60s 仿真截止时间最好要比 3600s 大一些 因为这样可以显示一个多小时 看起来会更清楚些 其仿真后波形图如下 图 4 3 2 Quartus 仿真波形 图 4 3 2 所示 当 MINL 从 0 开始计数 计数到 5 时 Rst 为低电 平有效 MINL 信号被清零 并且该模块也实现了清零功能 滁州职业技术学院应用电子专业毕业论文 17 图 4 3 3 Quartus 仿真波形 图 4 3 3 中可以看出当 MINL 为 9 MINH 为 5 时 在下一个 hfy 1Hz 脉冲上升沿到来时 MINL 和 MINH 同时变为 0 说明实现 了计数规律从 0 计到 59 即为 60 进制 并且产生一个进位信号 H1 持续 1s 时间 这就证实了所设计的程序是正确的 下面用 Modelsim 进一步验证程序的 正确性 五 Modelsim 仿真 源程序跟 Quartus 的一样 这里不再重复 测试程序 timescale 1ms 1ms include MIN V module MIN tp reg H Rst wire 3 0 MINL MINH wire H1 parameter DELY 600 MIN my MIN H Rst MINL MINH H1 always DELY 2 H H initial begin H 0 Rst 1 DELY 2 Rst 0 DELY 2 Rst 1 DELY 20000 finish end endmodule 在测试程序中设置时间精度为 1ms H 信号周期为 60000ms 即为 60s 仿真波形图如下所示 滁州职业技术学院应用电子专业毕业论文 18 图 4 3 4 modelsim 的 MIN 仿真波形 在图 4 3 4 中可以看出 在每一个 H 信号上升沿到来时 MINL 信号 实现加 1 计数 当 MINL 累加到 9 时 MINH 信号实现加 1 计数 图 4 3 5modelsim 的 MIN 仿真波形 在图 4 3 5 中可以看出当 MINL 分钟低位计数到 9 的时候 MINH 分钟 高位计数到 5 的时候 在下一个 H 脉冲上升沿到来时得到一个进位信号 H 加入计数使分钟高位 MINH 和分钟低位 MINL 都为 0 而产生一个进位 信号 H1 4 4 小时计时电路模块 一 模块作用 小时电路模块的作用是用以小时计时 即计从分计时电路模块产生的 H1 信号的个数 它可以计数从 0 到 23 当下一个 H1 的上升沿到来的时候 小时的高位和低位清零 图 4 4 1 小时电路元件符号 二 设计思路 在设计小时电路模块的时候 它的输入信号是分钟电路模块产生的 H1 信号 每来一个 H1 信号小时电路模块便加一计数 另外它还有一个输入信 号 Rst 即复位信号 每当有 Rst 信号的时候计数器便清零 输出信号是 小时低位 HOURL 和小时高位 HOURH 这两个信号输出后送到译码显示 电路模块中 在设计程序的时候 运用了 always 语句 敏感条件是 posedge H1 or 滁州职业技术学院应用电子专业毕业论文 19 negedge Rst 在设计时要使程序先要判断是否有复位信号 有的话就给计数器 清零 没有就判断小时低位 HOURL 是否为 9 是的话就给低位 HOURL 清零并给高位 HOURH 加 1 如果不为 9 那么接着判断小时高 位和低位是否同时为 1 如果是的话就给小时高位和低位都清零 如果都不为 1 的就给小时低位加 1 计数 三 Quartus 仿真源程序 module HOUR H1 Rst HOURL HOURH input H1 Rst output 3 0 HOURL HOURH reg 3 0 HOURL HOURH always posedge H1 or negedge Rst if Rst begin HOURL 0 HOURH 0 end else begin if HOURL 9 begin HOURL 0 HOURH HOURH 1 end else if HOURL 3 HOURL 0 end else HOURL HOURL 1 end endmodule 四 Quartus 仿真 仿真具体步骤上面已经介绍了 这里不再重复 仿真后波形图如下所示 滁州职业技术学院应用电子专业毕业论文 20 图 4 4 2 Quartus 的 HOUR 仿真波形 如图 4 4 2 所示 在图中可以看出 当小时低位 HOURL 从 0 开始计数 计数到 3 时 Rst 为低电平有效 小时低位 HOURL 和小时高位信号 HOURH 同时都被被清零 并且该模块也实现了清零功能 同时也可以看出 每当有一个 H1 信号的上升沿到来时 小时低位 HOURL 便加 1 计数 当 HOURL 计数到 9 时向 HOURL 进 1 位 当 HOURL 计数到 3 和 HOURH 计数到 2 时 在下一个 H1 上升沿到来的时 候 HOURL 和 HOURH 都清零 五 Modelsim 仿真 1 源程序与 Quartus 的一样 这里不再重复 2 测试程序 timescale 1ms 1ms include HOUR v module HOUR tp reg H1 Rst wire 3 0 HOURL HOURH parameter DELY 100 HOUR my HOUR H1 Rst HOURL HOURH always DELY 2 H1 H1 initial begin H1 0 Rst 1 DELY 2 Rst 0 DELY 2 Rst 1 DELY 20000 finish end endmodule 在测试程序中设置时间精度为 1ms H1 信号周期为 2000000ms 即 1 小时 仿真波形图如下所示 滁州职业技术学院应用电子专业毕业论文 21 图 4 4 3 Modelsim 的 HOUR 仿真波形 从上图也可以看出 该模块电路实现了 24 进制的计数规律 从而证实了 所设计的程序是正确的 4 5 整点报时电路模块 一 模块作用 整点报时电路模块的作用是在 SECL SECH MINL 和 MINH 同时为 0 的时候发出 嗒 的一声 即报时一下 图 4 5 1 电路元件符号 二 模块设计思路 在设计模块时输入信号为 H 和 H1 由前面设计可知这两个信号是秒钟模 块和分钟模块产生的进位信号 当这两个信号同时为 1 时 即秒钟高位 低位 分钟高位 低位都为零 在这时就会产生一个信号驱动扬声器发声 另外它还 有一个输入信号为 hfy 它的频率为 10kHz 用它来对输入信号进行扫描 这样 便实现了整点报时的功能 在设计程序的时候需要定义一个位宽为 3 的中间变量 music 每来一个 hfy 信号 music 便加 1 计数一次 当 H 和 H1 都为 1 的时候将 music 的第 2 位送给 输出端 将它的第 2 位送给输出是为了将 10kHz 信号四分频产生 2 5KHz 的输 出信号 三 Quartus 仿真源程序 module spk hfy H H1 spk input hfy H H1 滁州职业技术学院应用电子专业毕业论文 22 output spk reg 2 0 music reg spk always posedge hfy begin music music 1 if H 1 else spk 0 end endmodule 四 Quartus 仿真 具体步骤如前所述 其波形图如下所示 图 4 5 2 Quartus 的整点报时波形 如上图中可以看出当 H 和 H1 信号都为高电平的时候 spk 有信号输出 而 我们可以从图看出 H 和 H1 任何一个进位信号不为高电平 spk 就不会有 信号输出 这说明所设计程序是正确的 下面用 Modelsim 进一步验证程序 五 Modelsim 仿真 1 在写源程序时基本上与 Quartus 的一样 唯一不同就是在程序一开始就要 给 music 清零 2 Modelsim 源程序 module spk hfy Reset H H1 spk music input hfy Reset H H1 output spk output 2 0 music reg 2 0 music reg spk always posedge hfy or negedge Reset if Reset begin spk 0 music 0 滁州职业技术学院应用电子专业毕业论文 23 end else begin music music 1 if H 1 else spk 0 end endmodule 3 测试程序 timescale 1ms 1ms include spk v module spk tp reg hfy Reset H H1 wire spk wire 2 0 music parameter DELY 100 spk my spk hfy Reset H H1 spk music always DELY 20 hfy hfy initial begin hfy 0 Reset 1 DELY Reset 0 DELY Reset 1 DELY 10 H 0 H1 0 DELY 10 H 1 H1 0 DELY 10 H 1 H1 1 DELY 10 H 0 H1 1 DELY 10 H 0 H1 0 DELY 20000 finish end endmodule 其波形图如下所示 图 4 5 3 Modelsim 的整点报时波形图 滁州职业技术学院应用电子专业毕业论文 24 将上图与用 Quartus 仿真波形相对比 不难看出其实现的功能是一样的 这就说明所设计的程序是正确的 4 6译码显示电路模块 一 模块作用 译码显示电路模块的作用是用以显示秒钟模块 分钟模块和小时模块所计 的数值 图 4 6 1 译码显示电路元件符号 二 模块设计思路 译码显示电路就是将秒 分和小时模块所计的数据显示出来 所以它的输 入信号比然有 SECL SECH MINL MINH HOURL HOURH 和一个驱动扫描信号 hfy 由于 hfy 信号为 10kHz 频率很 高 所以当用它作为数码管驱动扫描信号时 数码管给人整体的感觉就是时分 秒显示 在设计程序的时候要有 8 个位宽为 4 位的寄存器变量 disp temp 在程 序运行的时候先将秒 分 时模块的高低位送给 disp temp 然后根据 disp temp 来选择哪个数码管显示什么数据 在程序中有八个译码器 译码 供数码管显示 display0 显示 HOURH disp temp1 显示 HOURL disp temp2 显示 disp temp3 显示 MINH disp temp4 显示 MINL disp temp5 显示 disp temp6 显示 SECH disp temp7 显示 SECL 三 Quartus 仿真源程序 滁州职业技术学院应用电子专业毕业论文 25 module display hfy SECL SECH MINL MINH HOURL HOURH display0 display1 display2 display3 display4 display5 display6 display7 input hfy input 3 0 SECL SECH MINL MINH HOURL HOURH output 6 0 display0 display1 display2 display3 display4 display5 display6 display7 reg 3 0 disp temp0 disp temp1 disp temp2 disp temp3 disp temp4 disp temp5 disp temp6 disp temp7 reg 6 0 display0 display1 display2 display3 display4 display5 display6 display7 always posedge hfy begin disp temp0 HOURH disp temp1 HOURL disp temp2 4 b1010 disp temp3 MINH disp temp4 MINL disp temp5 4 b1010 disp temp6 SECH disp temp7 SECL end always disp temp0 begin case disp temp0 4 b0000 display0 7 b0111111 4 b0001 display0 7 b0000110 4 b0010 display0 7 b1011011 4 b0011 display0 7 b1001111 4 b0100 display0 7 b1100110 4 b0101 display0 7 b1101101 4 b0110 display0 7 b1111101 4 b0111 display0 7 b0000111 4 b1000 display0 7 b1111111 4 b1001 display0 7 b1101111 4 b1010 display0 7 b1000000 default display0 7 b0000000 endcase end always disp temp1 begin case disp temp1 4 b0000 display1 7 b0111111 4 b0001 display1 7 b0000110 4 b0010 display1 7 b1011011 4 b0011 display1 7 b1001111 4 b0100 display1 7 b1100110 4 b0101 display1 7 b1101101 4 b0110 display1 7 b1111101 4 b0111 display1 7 b0000111 4 b1000 display1 7 b1111111 4 b1001 display1 7 b1101111 4 b1010 display1 7 b1000000 default display1 7 b0000000 endcase end always disp temp2 begin 滁州职业技术学院应用电子专业毕业论文 26 case disp temp2 4 b0000 display2 7 b0111111 4 b0001 display2 7 b0000110 4 b0010 display2 7 b1011011 4 b0011 display2 7 b1001111 4 b0100 display2 7 b1100110 4 b0101 display2 7 b1101101 4 b0110 display2 7 b1111101 4 b0111 display2 7 b0000111 4 b1000 display2 7 b1111111 4 b1001 display2 7 b1101111 4 b1010 display2 7 b1000000 default display2 7 b0000000 endcase end always disp temp3 begin case disp temp3 4 b0000 display3 7 b0111111 4 b0001 display3 7 b0000110 4 b0010 display3 7 b1011011 4 b0011 display3 7 b1001111 4 b0100 display3 7 b1100110 4 b0101 display3 7 b1101101 4 b0110 display3 7 b1111101 4 b0111 display3 7 b0000111 4 b1000 display3 7 b1111111 4 b1001 display3 7 b1101111 4 b1010 display3 7 b1000000 default display3 7 b0000000 endcase end always disp temp4 begin case disp temp4 4 b0000 display4 7 b0111111 4 b0001 display4 7 b0000110 4 b0010 display4 7 b1011011 4 b0011 display4 7 b1001111 4 b0100 display4 7 b1100110 4 b0101 display4 7 b1101101 4 b0110 display4 7 b1111101 4 b0111 display4 7 b0000111 4 b1000 display4 7 b1111111 4 b1001 display4 7 b1101111 4 b1010 display4 7 b1000000 default display4 7 b0000000 endcase end always disp temp5 begin case disp temp5 4 b0000 display5 7 b0111111 4 b0001 display5 7 b0000110 4 b0010 display5 7 b1011011 4 b0011 display5 7 b1001111 4 b0100 display5 7 b1100110 4 b0101 display5 7 b1101101 4 b0110 display5 7 b1111101 4 b0111 display5 7 b0000111 滁州职业技术学院应用电子专业毕业论文 27 4 b1000 display5 7 b1111111 4 b1001 display5 7 b1101111 4 b1010 display5 7 b1000000 default display5 7 b0000000 endcase end always disp temp6 begin case disp temp6 4 b0000 display6 7 b0111111 4 b0001 display6 7 b0000110 4 b0010 display6 7 b1011011 4 b0011 display6 7 b1001111 4 b0100 display6 7 b1100110 4 b0101 display6 7 b1101101 4 b0110 display6 7 b1111101 4 b0111 display6 7 b0000111 4 b1000 display6 7 b1111111 4 b1001 display6 7 b1101111 4 b1010 display6 7 b1000000 default display6 7 b0000000 endcase end always disp temp7 begin case disp temp7 4 b0000 display7 7 b0111111 4 b0001 display7 7 b0000110 4 b0010 display7 7 b1011011 4 b0011 display7 7 b1001111 4 b0100 display7 7 b1100110 4 b0101 display7 7 b1101101 4 b0110 display7 7 b1111101 4 b0111 display7 7 b0000111 4 b1000 display7 7 b1111111 4 b1001 display7 7 b1101111 4 b1010 display7 7 b1000000 default display7 7 b0000000 endcase end endmodule 仿真波形图如下所示 滁州职业技术学院应用电子专业毕业论文 28 图 4 6 1 译码显示电路波形 从图 4 6 1 可以看出 当 SECL 和 MINL 为 1 时数码管 display7 输出 为 0000110 这在数码管上就会显示 1 其中 display2 和 display5 一直 保持不变是以为它是符号 因此其他的依此类推 这说明所设计的程序是 正确的 下面用 Modelsim 进一步验证 五 Modelsim 仿真 module Display hfy Reset MIAOL MIAOH FENL FENH SHIL SHIH display0 display1 display2 display 3 display4 display5 display6 display7 disp temp0 disp temp1 disp temp2 disp temp3 disp temp 4 disp temp5 disp temp6 disp temp7 input hfy Reset input 3 0 MIAOL MIAOH FENL FENH SHIL SHIH output 6 0 display0 display1 displ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度商业地产销售代理全面执行协议
- 语音管理知识培训内容课件
- 语言文字知识专题培训课件
- 2025合作协议委托版合同书
- 2025年合同印花税税目税率表合同税收优惠政策解析
- 红豆课件教学课件
- 红色物业法律知识培训课件
- 2025房屋买卖合同终止协议范本
- 诗词社团课课件
- 物流运输计划模板成本控制与效率优化版
- 软件工程概论第三版课件
- 心理健康与寝室生活
- 糖尿病病人饮食健康宣教
- 慢阻肺护理查房
- 儿童健康开学第一课-守护成长,从健康开始
- 支付宝迎新活动策划方案
- 在线教研室活动方案
- 安保日常培训课件
- DB11-T 695-2025 建筑工程资料管理规程
- 1《我三十万大军胜利南渡长江》跨学科公开课一等奖创新教案统编版语文八年级上册
- 工程概算、预算、结算审核报告模板
评论
0/150
提交评论