《数字电路与数字系统实验》实验报告
第 6 次实验: 计数器和时钟
O. 预习部分
基本定义
1. 加法计数器
利用触发器可以构成简单的计数器。图5-1是由3个上升沿触发的D 触发
器组成的3位二进制异步加法计数器, 即在每个Clock的上升沿、计数器输出
O₂O₁Q₀加1 。
2. 减法计数器
利用D 触发器同样可以构成减法计数器,图5-3是由3个上升沿触发的 D
触发器组成的3位二进制异步减法计数器
图5-4是此3位二进制异步减法计数器的状态转移图。
图5-2:3位二进制加法计数器状态图
图5-3:3位二进制异步减法计数器
count_clk
通 过 计 算 器 我
量“count
25,000,000
进制数的时候的长度?
count
带使能端的3位二进制加法计数器代码也很好理 解,注意非阻塞 语句的使用
表5-1:3位二进制带使能端的加法计数器代码
1 module vminus3(clk,en,out_q);
input clk;
input en;
4
output reg [2:0]out_q;
5
6
8
always e( posedge clk)
f
l
s
en)
out
ou
q
t
q=
0<;
=out_q -1;
9 endmodule
开发板上的时钟信号:
DE-10
Standard 开发板为 Cyclone V SOC FPGA提供了四个频率为50MHz
的外部输入时钟, 这些时钟均可供用户使用。另外还给开放平台上的HPS 提供
了一个25MHz
的时钟,如图5-6所示。
后面实验要注意引脚分配问题:掏出手册!
思考题:
表5-2:1秒时钟生成代码
always E(posedgeclk)
if(count_clk==25000000)
begin
count_clk
<=0;
clk_ 1s <=~clk_ 1s;
end
else
count_clk <=count_clk+1;
思考题:
请阅读、理解此段代码,并请思考为了能满足计数到25000000的要求,变
计算器
三程序员
25,000,000
HEX 17D 7840
IDEC 25.000.000
OCT 137274100
BIN 0001011111010111100001000000
出
数
QWORD
MS
□ X
内存
内存中没有内容
0000 0000 0000 0000
60 56 52 48
0000 0000 0000 0000
44 40 36 32
0000
0001 01 11 1101
28 24 20 16
0111 1000 01000000
12
8
4 0
出 ,
开始实验部分
○. 实验目的
1. 复习计数器的工作原理.
2. 通过介绍几种简单计数器的工作过程和设计方法、以及开发板系统时
钟的使用,学习计数器的设计和定时器的工作原理。
3. 学 习FPGA开发平台上时钟源的使用,并结合计数器的设计方法学习定
时器的设计.
4. 在开发板上实现一个计时器,在七段数码管上直接以十进制显示。
一 . 实验原理(知识背景,结合理论课总结)
● 基本定义:
先设计一个分频器注意 PDF 里的代码提示:
利用开发板上的频率为 50MHz 的时钟,请先设计一个分频器, 其输入为
50MHz 的时钟,输出为一个频率为1Hz, 周期为1秒的时钟信号。 _再用这个新
这个有了PPT的提示,不难实现:
本次实验用了System Builder,引脚分配全自动(滑稽),希望不要出什么岔子..
16 日
17
18 日
19
20
21
22
23
24
71C
15
count_clk =count_clk
always @(posedge clk)
begin
if(count_clk==25000000)
count_c¹k =0;
clk_1s =~clk_1s;
begin
end
else
+1;
end