基于FPGA的数字钟设计VerilogHDL语言实现Word文档下载推荐.docx
- 文档编号:8132117
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:14
- 大小:442.71KB
基于FPGA的数字钟设计VerilogHDL语言实现Word文档下载推荐.docx
《基于FPGA的数字钟设计VerilogHDL语言实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字钟设计VerilogHDL语言实现Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
正文:
1.设计意义
当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。
它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。
EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。
美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上QUARTUSII开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。
EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。
最终形成集成电子系统或专用集成芯片的一门新技术。
本设计利用VerilogHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。
数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良性能,应用非常方便。
本设计主要研究基于FPGA的数字钟,要求时间以12小时为一个周期,显示时、分、秒。
具有清零功能。
本设计小组成员共有三人:
其他两人分别采用原理图设计和VerilogHDL语言设计。
2.FPGA简介
2.1FPGA概述
FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。
CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。
它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。
通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。
使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。
这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。
2.2FPGA系统设计流程
一般说来,一个比较大的完整的项目应该采用层次化的描述方法:
分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOPDOWN(自顶向下)的设计方法。
目前这种高层次的设计方法已被广泛采用。
高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。
CPLD/FPGA系统设计的工作流程如图2-2所示。
图2-2CPLD/FPGA系统设计流程
流程说明:
1.工程师按照“自顶向下”的设计方法进行系统划分。
2.输入VerilogHDL代码,这是设计中最为普遍的输入方式。
此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。
3.将以上的设计输入编译成标准的VERILOGHDL文件。
4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。
这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。
一般情况下,这一仿真步骤可略去。
5.利用综合器对VerilogHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。
综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。
6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。
一般的设计,也可略去这一步骤。
7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。
8.在适配完成后,产生多项设计结果:
(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;
(b)适配后的仿真模型;
(c)器件编程文件。
根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。
如果仿真结果达不到设计要求,就修改VERILOGHDL源代码或选择不同速度和品质的器件,直至满足设计要求。
最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。
3.数字钟总体设计方案
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
图3-1所示为数字钟的一般构成框图。
主要包括时间基准电路、计数器电路、控制电路、译码和显示电路。
50MHz晶振
图3-1数字钟的一般组成框图
3.1数字钟的工作原理
振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。
秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“12归1”规律计数。
计满后各计数器清零,重新计数。
计数器的输出分别经译码器送数码管显示。
时基电路可以由石英晶体振荡电路构成,如果晶振频率为1MHz,经过6次十分频就可以得到秒脉冲信号。
译码显示电路由七段译码器完成,显示由数码管构成。
4.单元电路设计
4.1分频模块电路设计与实现
晶体振荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精度决定了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。
石英晶体的选频特性非常好,只有某一频率点的信号可以通过它,其它频率段的信号均会被它所衰减,而且,振荡信号的频率与振荡电路中的R、C元件的数值无关。
因此,这种振荡电路输出的是准确度极高的信号。
然后再利用分频电路,将其输出信号转变为秒信号,其组成框图如图4-1。
图4-1秒信号产生电路框图
本系统使用的晶体振荡器电路给数字钟提供一个频率稳定准确的50MHz的方波信号,其输出至分频电路。
分频电路的逻辑框图如图4-2:
always@(posedgeinclkorposedgereset)begin
if(reset==1)begin
fp1<
=0;
f1<
=1'
b0;
end
elsebegin
if(fp1==24999999)begin
fp1<
f1<
=!
f1;
else
=fp1+1;
end
fp2<
=8'
f2<
elsebegin
if(fp2==50)begin
fp2<
f2<
f2;
=fp2+1;
end
图4-2分频电路模块
4.2计数模块设计与实现
always@(posedgef1orposedgereset)begin//时,分,秒计数
ma<
=4'
b0000;
mb<
mc<
md<
me<
mf<
if(ma==9)begin
ma<
if(mb==5)begin
mb<
if(mc==9)begin
mc<
if(md==5)begin
md<
if((me==2)&
&
(mf==1))begin
me<
b0001;
mf<
if(me==9)begin
mf<
=mf+1;
end//进位
=me+1;
end
else
=md+1;
=mc+1;
=mb+1;
=ma+1;
图4-3计数电路模块
4.3动态扫描及显示电路设计与实现
动态扫描电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且输出数码管的片选信号和位选信号。
所谓动态扫描显示方式是在显示某一位LED显示块的数据的时候,让其它位不显示,然后在显示下一位的数据,同时关闭其他显示块。
这样做可以使每一个显示块显示与自己相对应的数据。
只要保证每一位显示的时间间隔不要太大,利用人眼的视觉暂留的现象,就可以造成各位数据同时显示的假象。
一般每一位的显示时间为1~10ms。
always@(posedgef2orposedgereset)begin//动态扫描
if(reset==1)
st<
=3'
else
=st+1;
always@(st)begin
case(st)//outb接译码器三个输入
3'
b000:
begin
mseg<
=ma;
outb<
b000;
b001:
=mb;
b001;
b010:
=mc;
b010;
b011:
=md;
b011;
b100:
=me;
b100;
b101:
=mf;
b101;
default:
b110;
endcase
4.4显示模块
本系统选择74138作为显示译码电路,选择数码管作为显示单元电路。
计数器实现了对时间的累计并输送到动态扫描模块,再由其输出的端送到7138,再由数码管显示出来。
always@(mseg)begin//动态显示
case(mseg)
4'
b0001:
outa<
b00000110;
b0010:
b01011011;
b0011:
b01001111;
b0100:
b01100110;
b0101:
b01101101;
b0110:
b01111101;
b0111:
b00000111;
b1000:
b01111111;
b1001:
b01101111;
b0000:
b00111111;
b1010:
b01110111;
b1011:
b01111100;
b1100:
b00111001;
b1101:
b01011110;
b1110:
b01111001;
b1111:
b01110001;
5.实验结论
将设计程序下载到实验箱上运行调试后,最终结果与预期效果基本一致,时、分、秒能够正常计数分别显示。
在此次的数字钟设计过程中,更进一步地熟悉有关数字电路的知识和具体应用。
学会了QuarterII软件进行原理图的绘制,硬件描述语言VerilogHDL的编写,程序的仿真等工作。
并能根据仿真结果分析设计的存在的问题和缺陷,从而进行程序的调试和完善。
附录:
RTL视图:
引脚分配:
实验现象:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字 设计 VerilogHDL 语言 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)