基于VerilogHDL设计的定时器系统.docx

上传人:b****2 文档编号:2037073 上传时间:2022-10-26 格式:DOCX 页数:19 大小:484.16KB
下载 相关 举报
基于VerilogHDL设计的定时器系统.docx_第1页
第1页 / 共19页
基于VerilogHDL设计的定时器系统.docx_第2页
第2页 / 共19页
基于VerilogHDL设计的定时器系统.docx_第3页
第3页 / 共19页
基于VerilogHDL设计的定时器系统.docx_第4页
第4页 / 共19页
基于VerilogHDL设计的定时器系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基于VerilogHDL设计的定时器系统.docx

《基于VerilogHDL设计的定时器系统.docx》由会员分享,可在线阅读,更多相关《基于VerilogHDL设计的定时器系统.docx(19页珍藏版)》请在冰豆网上搜索。

基于VerilogHDL设计的定时器系统.docx

基于VerilogHDL设计的定时器系统

基于Verilog-HDL设计的定时器系统

 

基于VerilogHDL设计的数字时钟

设计报告

 

课题名称:

数字时钟设计

学校:

南通大学

学院:

电子信息学院

姓名:

杜轶群

学号:

0911002133

班级:

集成092

 

日期:

2012年6月25日

 

第一节引言......................................................3

1.1概述...........................................................3

1.2本设计的任务和主要功能.........................................3

第二节系统功能介绍...............................................3

2.1系统总述.......................................................3

2.2系统设计.......................................................42.3主要模块.......................................................4

2.3.1分频校时模块.................................................4

2.3.2半点整点报时模快.............................................5

2.3.3计数器模块...................................................5

2.3.4显示模块.....................................................8

第三节仿真验证...................................................9

3.1仿真...........................................................9

3.2设备选择.......................................................9

3.3引脚绑定......................................................10

3.4硬件验证......................................................10

第四节课程设计总结..............................................10

附录.............................................................11

 

块,半点整点报时模块,计数器模块和显示模块。

其中分频校时模块是对外部来的50Hz的频率进行转化。

半点整点报时模块则是在分钟显示为0和30的时候,分别亮红LED0和绿LED0。

计数器模块则是对时分秒的逻辑定义和计数。

显示模块则包括数码管译码和将OUT0到OUT6显示到数码管上。

设计时可将外部的时钟信号clock输入进分频模块,此时系统通过分频将输出控制信号div,以控制秒位。

而秒位产生的进位信号mt则能够控制分位。

分位的进位信号nt又能控制时位,这样就形成了电子时钟。

在计数的同时将时分秒每位输出送到译码器。

译码器模块可对输入的四位进行译码,在6个七段数码管上显示出来。

reset:

当该键为高时,校时为00:

00:

00;

key:

用key键快速的校时。

s1:

半点报时,半点时自动控制LED灯亮;

s2:

整点报时,整点时自动控制LED灯亮;

七段数码管用于显示定时数字。

 

2.3主要模块

2.3.1分频校时模块

系统所给clock是50MHZ,将其分频为1HZ,即周期为1S,用于计数。

当key键为1时,输出的div的频率增加到10倍,由此可以进行校时。

always@(posedgeclock)//分频校时

begin

if(key)

begin

if(count==2500000)begindiv<=1;count<=count+1;end

elseif(count==5000000)begindiv<=0;count<=0;end

elsecount<=count+1;

end

else

begin

if(count==25000000)begindiv<=1;count<=count+1;end

elseif(count==50000000)begindiv<=0;count<=0;end

elsecount<=count+1;

end

end

输出一个div信号对下面的计数模块进行控制。

 

2.3.2半点整点报时模块

 

always@(posedgediv)

begin

begin

if(min==30)//当半点时s1等于1,红LED0亮

s1<=1;

else

s1<=0;

end

begin

if(min==0)//当整点时s2等于1,绿LED0亮

s2<=1;

else

s2<=0;

end

end

 

2.3.3计数器模块

用分频模块中的div信号,对计数部分进行控制。

当sec达到59时,产生一个进位信号mt,来控制分钟部分,如果reset为1时,则对秒位进行清零。

//秒位计数

always@(posedgedivorposedgereset)

if(reset==1)

sec<=0;

else

begin

if(sec==59)

begin

sec<=0;//秒为60进制计数器

tun<=1;//每60秒产生一个进位信号tun

end

else

begin

sec<=sec+1;

tun<=0;//进位信号置0

end

end

assignmt=tun;//生成分的控制信号

用秒位模块中来的进位信号mt,对分位部分进行控制。

当min达到59时,产生一个进位信号nt,来控制时位部分,如果reset为1时,则对分位进行清零。

//分位计数

always@(posedgemtorposedgereset)

if(reset==1)

min<=0;

else

begin

if(min==59)//分钟为60进制计数器

begin

min<=0;

mod<=1;

s2<=mod;//每60分产生一个小时的进位

end

else

begin

min<=min+1;

mod<=0;

s2<=mod;//分钟向小时的进位信号置0

end

if(min==30)

s1<=1;

else

s1<=0;

end

assignnt=mod;//生成时的控制信号

用分位模块中来的进位信号nt,对时位部分进行控制。

如果reset为1时,则对时位进行清零。

//时位计数

always@(posedgentorposedgereset)

if(reset==1)

hou<=0;

else

begin

if(hou==24)//小时为24进制计数器

hou<=0;

else

hou<=hou+1;

end

 

2.3.4显示模块

通过译码显示,在clock或reset的上升沿时将信号输出到数码管上。

六个译码器,分别代表小时分钟秒数的高位和地位,hou2小时的高位为0~2,hou1小时的低位为0~4,min2分钟的高位为0~5,min1分钟的低位为0~9,sec2秒数的高位为0~5,sec2秒数的低位为0~9。

下面以小时的高位为例:

//译码输出模块

always@(posedgedivorposedgereset)

begin//数码管译码显示

case(sec1)

4'b0000:

out1<=~7'b0111111;//0,3F

4'b0001:

out1<=~7'b0000110;//1,06

4'b0010:

out1<=~7'b1011011;//2,5B

4'b0011:

out1<=~7'b1001111;//3,4F

4'b0100:

out1<=~7'b1100110;//4,66

4'b0101:

out1<=~7'b1101101;//5,6D

4'b0110:

out1<=~7'b1111101;//6,7D

4'b0111:

out1<=~7'b0000111;//7,07

4'b1000:

out1<=~7'b1111111;//8,7F

4'b1001:

out1<=~7'b1101111;//9,6F

default:

out1<=~7'b0111111;//0,3F

endcase

end

第三节仿真验证

3.1仿真

从这张图我们可以看到时钟从00:

00:

00,开始计时,当reset出现高电平时,时钟回零。

当reset不为高电平时,则正常计数。

3.2设备选择

3.3引脚绑定

 

3.4硬件验证

将verilog源程序文件下载到DE2开发板进行硬件验证,完成检测和调试。

截图如下:

 

第四节课程设计总结

两个星期的Verilog课程设计结束了。

在这两个星期的设计中,我学到了很多东西。

这次课程设计是第一次每人一道题目,一个班里的同学无一重复。

所以自从选过题目大家都开始了紧张的工作,在各论坛、图书馆、中文数据库查找资料后,最终确立了设计思路。

整个过程现在总结起来遇到了许多困难,但正是这些困难。

比如在计数模块的设计部分,出现过时钟不能显示和显示错误的问题,出现了两次,第一是因为外部输入的时钟信号clock没有成功的加到分频器上;第二是因为逻辑上的错位,进行复位是没有把寄存器里的值进行清零。

另外还有校数模块的功能的实现,在老师的指导之下,也终于完成了。

我选择了不同的方法去实现,比如分频的话因为输入时50Hz的信号,所以对分频器进行设置分频初值后将外部的信号转化为1Hz的信号div。

输出部分则要用到译码器,因为时钟模块的信号是数字,并不是对七段数码管的控制信号,这是我们就要注意这里用到的共阳极的七段数码管。

当然不止这些,在设计过程中和仿真过程中许多步骤都让我印象深刻、记忆犹新。

最终的设计成功让我的编程和使用Quartus软件的能力大为提高,这对于我来说是一笔宝贵的财富。

当今电子技术飞速发展,而其核心已日趋接近EDA设计,所以学好EDA设计对我们来说非常重要。

这次课程设计给我一个拓展的平台,值得欣慰的是当遇到了不同种类的问题,我学会了怎样解决问题、怎样寻找解决问题的方法。

参考文献

[1]张明《VerilogHDL实用教程》[M]成都:

电子科技大学出版社,1999

[2]HydeDC.BucknellHandbookonVerilogHDLComputerScienceDepartment,BucknellUniversityLewisburg,1995

[3]康华光《电子技术基础(数字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1