计数器设计和原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二.计数器设计
1.实验目的
计数器在数字逻辑设计中的应用十分广泛,可以对时钟信号进行计数,分频和产生序列信号,也可以用在计时器和串并转换等电路。这次实验我们就来学习一下如何用Robei和Verilog语言来设计一个4比特计数器。
2.实验要求
计数器对每个时钟脉冲进行技术,并将计数值输出出来。这个实验我们来设计一个4比特的计数器,其技术范围在0~F之间,也就是计数到最大值16. 设计波形要求如图1所示。
图1. 计数器输出波形要求
3.实验内容
3.1 模型设计
1)新建一个模型。点击工具栏上的图标,或者点击菜单“File”然后在下
拉菜单中选择“New”,会有一个对话框弹出来(如图2所示)。在弹出的对话框中设置你所设计的模型。
图2. 新建一个项目
参数填写完成后点击“OK”按钮,Robei就会生成一个新的模块,名字就是counter,如图3所示:
图3. 计数器界面图
2)修改模型。在自动生成的界面图上进行名称的修改,输入引脚为clock, enable
和reset,输出引脚修改成count。其中count引脚的“Datasize”为4比特,用户可以输入4,也可以输入3:0。为了区分每个引脚,我们可以修改每个引脚的Color值,并点回车保存。修改完成后如图4所示。如果选中模块,按“F1”键,就会自动生成一个Datasheet,如图5所示。
图4. 修改引脚属性
图5. “Datasheet”截图
3)输入算法。点击模型下方的Code(如图6所示)进入代码设计区。
图6. 点击Code输入算法
在代码设计区内输入以下Verilog代码:
always @ (posedge clock) //学习always语句的写法,并设置敏感信号。时钟上升沿触发begin
//学习Verilog if else语句的写法
if (reset == 1) begin
count<= 0;
end
//if enable is 1, counter starts to count
else if (enable == 1) begin
count <= count + 1;
end
end
4)保存。点击工具栏图标,或者点击菜单“File”中的下拉菜单“Saveas”,
将模型另存到一个文件夹中。
5)运行。在工具栏点击或者点击菜单“Build”的下来菜单“Run”,执
行代码检查。如果有错误,会在输出窗口中显示。如果没有错误提示,恭喜,模型counter设计完成。
3.2测试文件设计
1)新建一个文件。点击工具栏上的图标,在弹出的对话框中参照图7进
行设计。
图7. 新建测试文件
2)修改各个引脚的颜色。选中每个引脚,在属性栏中对照图8进行修改引脚属
性,并修改其颜色,方便区分不同的引脚信号。
图8 引脚属性表
3)另存为测试文件。点击工具栏图标,将测试文件保存到counter模型
所在的文件夹下。
4)加入模型。在Toolbox工具箱的Current栏里,会出现一个counter模型,单
击该模型并在counter_test上添加。
图9. 添加模型
5)连接引脚。点击工具栏中的图标,或者选择菜单“Tool”中的“Connect”,
如图10所示,连接引脚。这个时候,注意查看连接线的颜色。如果鼠标要变回选择模式,点击图标。
图10. 连接引脚
6)输入激励。点击测试模块下方的“Code”,输入激励算法。激励代码在结束
的时候要用$finish 结束。
initial begin
clock = 1;
reset = 0;
enable = 0;
#5 reset = 1;
#10 reset = 0;
#10 enable = 1;
#150 enable = 0;
#5 $finish;
end
always begin //学习时钟信号的生成方法
#5 clock=~clock; //每隔5个时钟,clock取反一次,占空比50%
end
图11 激励代码
7)执行仿真并查看波形。点击工具栏,查看输出信息。检查没有错误之
后点击,或者点击菜单“View”中的“Waveview”。波形查看器就会打开。点击右侧Workspace中的信号,进行添加并查看。点击波形查看器工
具栏上的图标进行自动缩放。分析仿真结果并对照真值表,查看设计波形与实验要求是否一致。
图12. 查看波形
4.问题与思考
1)如何利用Robei设计一个逆向计数器?计数开始时为F,每个时钟信号到来
计数器减一。测试你的逆向计数器。
2)如何利用计数器实现占空比为50%的2分频,4分频和16分频?提示:占空
比:高电平持续时间在一个总周期所占的比率。