哈工大数电大作业-作业1-计数器.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数电大作业 1 ——计数器 一、 实验目的 1. 学习使用 Verilog HDL 语言,并学会使用进行 Quartus Ⅱ软件 编程和仿真; 2. 掌握数字电路的设计方法,熟悉设计过程及其步骤; 3. 培养学生的动手能力,能学以致用,为今后从事电子线路设计 打下良好基础; 4. 巩固加深对数电知识的理解,在仿真调试过程中,能结合原理 来分析实验现象; 二、 实验内容 1. 设计内容及要求 1) 利用 Verilog HDL 设计一个以自己学号后三位为模的计数器; 2) 编写源程序; 3) 给出仿真电路图和仿真波形图; 2. 需求分析: 由于本人的学号为7112130501,后 3 位为 501,为便于观察,选 取中间三位为进制来编写加法计数器,以保证与他人的区别性,即编 一个以 213 为模的加法计数器。若采用同步清零的方法,则计数为 0~212,化为二进制数即为 0 0000 0000 计到 0 1101 0100。 1 3. 编写源代码: module count_213(out,data,load,reset,clk); output [8:0] out; input [8:0] data; input load,reset,clk; reg [8:0] out; always @(posedge clk) //clk 上升沿触发 begin if(!reset)out=9h000; //同步清零,低电平有效 else if (load)out=data; //同步预置 else if (out=212)out=9h000; //计数最大值为 212,超过清零 else out=out+1; //计数 end endmodule 程序说明: 该计数器为一个 9 位计数器,计数范围 0~212,具有同步同步置 数和同步清零功能。时钟的上升沿有效,当 clk 信号的上升沿到来时, 如果清零信号为 0,则清零;若不为 0,计数器进行计数,计至 212 处同步清零。 4. 画出仿真电路图: 图 1 为同步置数、同步清零加法计数器的仿真电路图 图 1 仿真电路图 自动生成的电路图 5. 画出仿真波形 2 先对逻辑波形进行初始化设置,将清零信号 ‘restest’置 1, 置数信号 ‘load’置 0,得到的仿真波形图 2 所示,波形终止处如图 3 所示,图4 为计数到 212 后自动清零。 当 reset=0,计数器清零;当reset=1,load=0 时,计数器计数; 当 reset=1、load=1 时,计数器计数。 由于延时较长,上升沿触发显示不是很明显。 图2 开始计数的状态波形 图 3 逻辑波形波形终止处 图4 计数到 211 然后清零 三、 实验结果 由仿真波形可以看出,计数器从0 0000 0000 计到 0 1101 0100 后 便清零。而 0 1101 0100B=212D, 所以该计数器即为一个模为 213 的 计数器,符合实验要求。 四、 实验总结 1. 计数器功能表 Clk Reset Load Out

您可能关注的文档

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档