没有合适的资源?快使用搜索试试~ 我知道了~
基于FPGA的多功能数字钟.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 35 浏览量
2022-11-01
19:32:10
上传
评论
收藏 812KB PDF 举报
温馨提示
试读
22页
。。。
资源推荐
资源详情
资源评论
基于 FPGA 的多功能数字钟
一、设计题目
基于 FPGA 的多功能数字钟
二、设计目的
1.掌握可编程逻辑器件的应用开发技术
——设计输入、编译、仿真和器件编程;
2.熟悉一种 EDA 软件使用;
3.掌握 Verilog 设计方法;
4.掌握分模块分层次的设计方法;
5.用 Verilog 完成一个多功能数字钟设计;
6.学会 FPGA 的仿真。
三、设计内容
设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按
键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示。能够利用
按键实现“较时”、“较分”功能,随时对数码管的显示进行校正和校对。数字中
系统主要由系统时钟,三个功能按键(mode,turn,change),FPGA,数码管和
蜂鸣器部分组成。
四、FPGA及硬件描述语言简介
1.FPGA简介
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在 PAL、
GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路
(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克
服了原有可编程器件门电路数有限的缺点。
目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简
单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技
术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如 AND、
OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大
多数的 FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)
或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把 FPGA 内部的逻辑块连接起
来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品 FPGA 的逻
辑块和连接可以按照设计者而改变,所以 FPGA 可以完成所需要的逻辑功能。
FPGA 一般来说比 ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,
而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改
来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差
的 FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通
的 FPGA 上完成的,然后将设计转移到一个类似于 ASIC 的芯片上。
2.硬件描述语言简介
硬件描述语言 HDL(Hardware Description Language)是一种用形式化方法
来描述数字电路和系统的语言。目前,电子系统向集成化、大规模和高速度等方
向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计方法在业界得
到迅猛发展,HDL 在这种形势下显示出了巨大的优势,展望将来 HDL 在硬件
设计领域的地位将与 C 和 C++在软件设计领域的地位一样,在大规模数字系统
的设计中,它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成
为主要的硬件描述工具。
Verilog HDL 是一种硬件描述语言(hardware description language) ,为了制作
数字电路而用来描述 ASICs 和 FPGA 的设计之用。Verilog HDL 是目前应用最为
广泛的硬件描述语言,可以用来进行各种层次的逻辑设计,也可以进行数字系统
的逻辑综合,仿真验证和时序分析等,适合算法级,寄存器级,逻辑级,开关级、
系统级和版图级等各个层次的设计和描述。
Verilog HDL 进行设计最大的优点是其工艺无关性,这使得工程师在功能设
计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统
设计的要求施加不同的约束条件,即可设计出实际电路。
Verilog HDL 是工业和学术界的硬件设计者所使用的两种主要的 HDL 之
一,另一种是 VHDL。现在它们都已成为 IEEE 标准。两者各有特点,但 Verilog
HDL 拥有更悠久的历史、更广泛的设计群体,资源也远比 VHDL 丰富,且非常
容易学习掌握。本设计提出了以 Verilog HDL 语言为手段,设计了多功能数字
钟。其代码具有良好的可读性和易理解性,源程序经 Altera 公司的 QuartusⅡ 和
ModelSim 软件完成综合、仿真。此程序通过下载到 FPGA 芯片后,可应用于
实际的数字钟显示中。
五、总体设计原理
1、关于模式信号 mode 选择各个功能显示的构思:
考虑到使用 mode 按键产生 0、1 信号在正常时间显示、调节时间功能、调
节闹钟功能和跑表功能这四个功能之间的转换。所以 mode 信号的作用主要体现
在控制模块(1)和显示模块中,虽然计时模块中也用到 mode 信号,但是它只是 turn
信号将秒信号清零的辅助作用,保证只有在 m=0(即普通时钟显示)下 turn 信
号清零功能才起作用,在校时功能下只能是分、小时的切换和跑表下的暂停功能。
a、 在控制模块下的作用:
在控制模块下,其实 mode 和 turn 信号的作用更像 2-4 译码器的功能,将
change 数字上加信号按不同的 mode 和 turn 分成四个信号,分别是 count1(时间
显示下的分信号)、counta(时间显示下的小时信号)、count2(闹铃显示下的分信号)、
countb(闹铃显示下的小时信号)。
b、 在显示模块下的作用:
同在控制模块下的作用。只是将 turn 信号选出的小时和分钟在同一个 mode
下一起送至数码管显示。
2、关于时间调整和闹铃时间调整中数字上加的原理:
对于这个问题,我们要考虑两种情况,首先是时间调整的情况:因为在时间
调整下,数字的上加不仅受到 change 信号的作用(即人工调时),还受本身在 1Hz
信号下计时而随时发生的累加。而闹铃时间调整不存在这种情况,因为闹铃下的
时间数字发生上加只可能人工调节(change 信号作用下)的结果。
a、 时间调整下的上加:
由于在控制模块(2)下又设置了快加的功能,所以有三部分信号对上加起
作用,一是快加下的 numXclk,表示以原始时钟的速率上加,二是慢加下的 change
具体到各模块、各位的 count1 或 counta,三是秒信号记到 9 向分信号的进位。
b、 闹铃时间调整下的上加:
该部分原理同上,只是少了低位记到 9 向高位的进位。所以只有两部分组成,
一是快加下的 numXclk,表示以原始时钟的速率上加,二是慢加下的 change 具体
到各模块、各位的 count2 或 countb。
图 1 多功能数字钟总体设计模块
六、各模块说明
1. 分频模块
由于 FPGA 内部提供的时钟信号频率大约为 50MHz,在这需要将它转化成
1Hz 的标准时钟信号供数字钟的计时显示;在此采用了级联分频法。
代码如下:
module fenpin(clk,clk_1Hz,clk_100Hz,clk_1k);
output clk_1Hz,clk_100Hz,clk_1k;
input clk;
reg clk_1Hz=0,clk_3=0,clk_1=0,clk_2=0,clk_1k=0;
reg [6:0] cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0;
wire clk_100Hz;
always @(posedge clk)
begin
if ( cnt1 < 156/2-1) /////////////////////////156 分频,生成 1MHz 信号
begin
cnt1 <= cnt1 + 1;
end
else
begin
cnt1 <= 0;
clk_1 <= ~clk_1;
end
end
always @(posedge clk_1)
if ( cnt2 < 156/2-1) ////////////////////100 分频,生成 10000Hz 信号
begin
cnt2 <= cnt2 + 1;
end
else
begin
cnt2 <= 0;
clk_2 <= ~clk_2;
end
always @(posedge clk_2)
if ( cnt5 < 10/2-1) //////////////////////10 分频,生成 1kHz 标准信号
begin
cnt5<= cnt5 + 1;
end
else
begin
cnt5<= 0;
clk_1k<= ~clk_1k;
end
always @(posedge clk_2)
剩余21页未读,继续阅读
资源评论
xxpr_ybgg
- 粉丝: 6550
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功