一.实验目的
熟 悉 在 QuartusII 下 设 计 2 位 和 8 位 十 进 制 频 率 计 。
二.实验内容
在 QuartusII 下 设 计 2 位 和 8 位 十 进 制 频 率 计 ,并 编 译 、仿真验证其功能。
三.程序清单
频 率 计 顶层文件设 计 :
(1)2 位 十 进 制 频 率 计
module conter100(CLK,CLR,EN,cout,ge,shi);
input CLK,EN,CLR;
output [3:0]ge;
output [3:0]shi ;
output cout;
reg cout;
reg [3:0]ge;
reg [3:0]shi;
always @(posedge CLK )
if (!CLR)
begin
ge<=0;
shi<=0;
cout<=0;
end
else if((ge==9)&&(shi==9))
begin
ge<=0;
shi<=0;
cou t<=1;
end
else if (ge==9)
begin
ge<=0;
shi<=shi+1;
cou t<=0;
end
else
begin
ge<=ge+1;
shi<=shi;
cou t<=0;
end
endmodu le
tf_ctro.v 文 本 输 入:
modu le tf_ctro (clk,en,clr,lock);
inpu t clk;
output en,clr,lock;
reg en,clr,lock;
integer d=0;
always @(posedge clk)
begin
d<=d+1;
if (d==1)
begin
en<=0;
lock<=0;
clr<=0; end
else if(d==2)
begin
lock<=1;
en<=0;
clr<=0;
end
else if (d==3)
begin
lock<=0;
clr<=0;
en<=0;
end
else if (d==6)
begin
lock<=0;
clr<=1;
en<=0;
end
else if (d==7)
begin
lock<=0;
clr<=0;
en<=0;
end
else if(d==8)
begin
lock<=0;
clr<=0;
en<=1;
end
else if(d==16)
begin
d<=0;
en<=0;
lock<=0;
clr<=0;
end
end
endmodule
74374 锁 存 器 文 本 输 入:
module octal(clk,en,d_in,q_in );
input clk,en;
input [3:0] d_in;
output [3:0] q_in;
reg [3:0] Q;
assign q_in=Q;
always @(posedge clk)
if(!en)
begin
Q<=d_in;
end
endmodule
四 . 实 验 步 骤
1、 新建一个名称为 CTR10 的工程,并在该文件夹中新建一个 CTR10.bdf 的文
件,在工程文件夹中新建一个 counter8.bdf 的文件。
2、 编译工程,编译成功后进行下一步,若不成功则查改错误。
3、 在工程文件夹中新建一个 CTR10.vwf 的波形文件,导入工程端口,设置输
入波形,仿真得出输出端口波形。
4、 验证输出端口波形是否实现 8 位十进制频率计的功能。