概述
贵州大学实验报告
学院: 专业: 班级
姓名学号实验组实验时间指导教师成绩实验项目名称4位二进制加减法计数器实验目的了解二进制加减法计数器的设计,进一步了解,熟悉和掌握quartusII的使用方法
学习verilog HDL的编程方法
学会使用vector wave功能仿真实验仪器软件:Altera QuartusII9.0集成开发环境实验原理计数器是数字系统中用得较多的基本逻辑器件,它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。
计数器的种类很多,按脉冲方式可以分为同步计数器和异步计数器,按进制可以分为二进制计数器和非二进制计数器;按计数过程数字的增减,可分为加计数器减计数器和可逆计数器。
实验设计的是一个4位二进制加减法计数器,该计数器可以通过一个控制信号决定计数器时加计数还是减计数,另外,该寄存器还有一个清零输入,低电平有效。还有一个load装载数据的信号输入,用于预置数据,还有一个C的输出,用于计数器的级联。
4位二进制加减法计数器功能表
R CLK LoadUp down
状态
L x x
H x L
H ↑ H
H ↑ H
X
X
0
1
置零
置数
减法
加法
设计原理框图
从原理图中可见,需要有1bit装载位(load)、1bit清零位(clr)、方向控制位up_down和4bit数据选择位DIN[3..0]。装载位我们采用SW0,清零位采用SW1,方向控制位为SW2。
SW3-SW6作为数据输入端,LED1-LED4显示数据的输出,LED5为溢出标志位。实验内容编写一个带预置输入,清零输入,可加可减计数器的verilog代码或VHDL代码并仿真,编译下载验证
module counter4(load,clr,c,DOUT,clk,up_down,DIN);//定义模块
input load;//定义输入信号
input clk;//
wire load;//定义线网型
input clr;//
wire clr;//
input up_down;//
wire up_down;//
input [3:0]DIN;//定义4位二进制输入信号
wire [3:0]DIN;// 定义4位二进制线网型信号
output c;//定义输出信号
reg c;//定义寄存器类型信号
output [3:0]DOUT;//
wire [3:0]DOUT;
reg [3:0]data_r;
assign DOUT=data_r;
always@(posedge clk or posedge clr or posedge load)//检测clk,clr,load的上升沿
begin
if(clr)//当clr=1的时候进行下面的运行程序
data_r<=0;//将data_r置零
else if(load) //当load=1的时候进行下面的运行程序
data_r<=DIN;//将DIN的值赋给data_r
else begin if(up_down)//load=0的时候进行下面的操作
begin
if(data_r==4'b1111)begin///当data_r==4'b1111的时候进行下面的运行程序
data_r<=4'b0000;
c=1;
end
else begin//当data_r不等于4'b1111的时候进行下面的运行程序
data_r<=data_r+1;//进行加法计数
c=0;
end
end
else
begin
if(data_r==4'b0000)begin//当data_r==4'b0000的时候进行下面的运行程序
data_r<=4'b1111;
c=1;
end
else begin//当data_r不等于4'b1111的时候进行下面的运行程序
data_r<=data_r-1;//进行减法计数
c=0;
end
end
end
end
endmodule//结束模块
实验数据
如图为波形仿真结果,当clr为1的时候,输出结果为0000;当clr为0,load为1时,输出结果为输入数据DIN的值,当up_down为1时,加法进位,进行加1运算,当data_r达到1111时,data_r变为0000,级零信号c为1;当up_down为0时,减法进位,进行减1运算,当data_r达
最后
以上就是安详飞鸟为你收集整理的hdl四位二进制计数器_quartus4位二进制加减法计数器.doc的全部内容,希望文章能够帮你解决hdl四位二进制计数器_quartus4位二进制加减法计数器.doc所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复