1 / 5
文档名称:

用Verilog HDL设计计数器.doc

格式:doc   页数:5
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用Verilog HDL设计计数器.doc

上传人:n22x33 2013/1/2 文件大小:0 KB

下载得到文件列表

用Verilog HDL设计计数器.doc

文档介绍

文档介绍:用Verilog HDL设计计数器
实验目的
1. 学习使用Verilog HDL语言,并学会使用进行QuartusⅡ软件编程和仿真;
2. 掌握数字电路的设计方法,熟悉设计过程及其步骤;
3. 培养学生的动手能力,能学以致用,为今后从事电子线路设计打下良好基础;
4. 巩固加深对数电知识的理解,在仿真调试过程中,能结合原理来分析实验现象;
实验内容
设计内容及要求
利用Verilog HDL设计一个以自己学号后三位为模的计数器;
编写源程序;
给出仿真电路图和仿真波形图;
需求分析:
由于本人的学号后3位为212,所以应编一个以212为模的加法计数器。若采用同步清零的方法,则计数为0~211,化为二进制数即为0 0000 0000计到0 1101 0011。
编写源代码:
module count_212(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=9'h000; //同步清零,低电平有效
else if (load)out=data; //同步预置
else if (out>=211)out=9'h000; //计数最大值为211,超过清零
else out=out+1; //计数
end
endmodule
程序说明:
该计数器为一个9位计数器,计数范围0~211,具有同步同步置数和同步清零功能。时钟的上升沿有效,当clk信号的上升沿到来时,如果清零信号为0,则清零;若不为0,计数器进行计数,计至211处同步清零。
画出仿真电路图:
图1为同步置数、同步清零加法计数器的仿真电路图
图1 仿真电路图
画出仿真波形
先对逻辑波形进行初始化设置,将清零信号‘restest’置1,置数信号‘load’置0,得到的仿真波形图2所示,波形终止处如图3所示,图4为计数到211后自动清零。
当reset=0,计数器清零;当reset=1,load=0时,计数器计数;当reset=1、load=1时,计数器计数。
由于延时较长,上升沿触发显示不是很明显。
图2 开始计数的状态波形
图3 逻辑波形---波形终止处
图4 计数到211然后清零
实验结果
由仿真波形可以看出,计数器从0 0000 0000计到0 1101 0011后便清零。而0 1101 0011B=211D