哈工大数电大作业-作业1-计数器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
哈工大数电大作业-作业1-计数器
数电大作业 1
计数器
一、实验目的
1.学习使用Verilog HDL语言,并学会使用进行Quartus H软件编
程和仿真;
2.掌握数字电路的设计方法,熟悉设计过程及其步骤;
3.培养学生的动手能力,能学以致用,为今后从事电子线路设计
打下良好基础;
4.巩固加深对数电知识的理解,在仿真调试过程中,能结合原理
来分析实验现象;
二、实验内容
1.设计内容及要求
1)利用 Verilog HDL 设计一个以自己学号后三位为模的计数器;
2)编写源程序;
3)给出仿真电路图和仿真波形图;
2.需求分析:
由于本人的学号为 7112130501,后 3 位为 501,为便于观察,选取中间三位为进制来编写加法计数器,以保证与他人的区别性,即编一个以 213 为模的加法计数器。若采用同步清零的方法,则计数为 0~212,化为二进制数即为 0 0000 0000计到 0 1101 0100。
3. 编写源代码:
module count_213(out, data, load, reset, elk); output [8:0] out; i 叩ut [8:0] data; input load ,reset, elk; reg [8:0] out; always ©(posedge elk) begin
辻(!reset)out=9, hOOO;
else if (load)out=data; else if (out>=212)out=9,
hOOO; else out=out+1; end endmodule
程序说明:
该计数器为一个9位计数器,计数范围0~212,具有同步同
步置数和同步清零功能。时钟的上升沿有效,当elk 信号的上升 沿到来时,如果清零信号为0,则清零;若不为0,计数器进行计 数,计至212处同步清零。
4. 画出仿真电路图:
图1为同步置数、同步清零加法计数器的仿真电路图
//elk 上升沿触发
〃同步清零,低电平有效 //同步预置
〃计数最大值为212,超过清零 〃计数
讯卿1
c
c^
3. 画出仿真波形
先对逻辑波形进行初始化设置,将清零信号‘ restest '置1, 置数信号‘ load '置0,得到的仿真波形图2所示,波形终止处 如图3所示,图4为计数到212后自动清零。
当reset=0,计数器清零;当reset=1 , load=0时,计数器 计数;当reset=1、load=1时,
计数器计数。
out[8..0]
自动生成的电路
由于延时较长,上升沿触发显示不是很明显
图2 开始计数的状态波形
世g ins
1
| _i J ll 1 fl hit[0][01
tftl ltd L
HI11
u*
13
S nt aiirai o】】m)曲血L '}|:joao :'OOOOO:JpOOtK
图3 逻辑波形---波形终止处
图4 计数到211然后清零
三、实验结果
由仿真波形可以看出,计数器从0 0000 0000计到0 1101 0100 后便清零。而0 1101 0100B=212D,所以该计数器即为一个模为
213的计数器,符合实验要求。
四、实验总结
1.计数器功能表
2.应熟知计数器的使用方法,并能设计出任意进制的计数
器,在设计时才能得心应手。计数进制的改变,包括清零法(同步清零和异步清零)和置数法。假定计数器的计数进制为N,要将其改为M进制的计数器,M< N。当计数器从全零状态开始计数,若采用同步清零法,设计时应经过 M-1个状态后清零;若采用异步清零法,设计时应经过 M个状态后清零。这样就跳过了 M个状态,实现了 M进制计数器。因为采用异步清零法会产生清零不可
靠的问题,本实验采用的为同步清零法。
3.本实验采用的是数据流描述方式来描述电路,通过 assign
连续赋值实现组合逻辑功能,使用简单,语句易于读懂。
4.调试过程中,应沉着冷静,出现错误时,应该根据数电
知识原理来分析,找出错误原因,对症下药;也可上网搜查该错误的含义,可能是软件的使用方法不对。