计数器设计和原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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分频?提示:占空

比:高电平持续时间在一个总周期所占的比率。

相关文档
最新文档