基于Verilog HDL设计的多功能数字钟
基于Verilog HDL设计的多功能数字钟
Design of Multifunctional Digital Clock Based on Verilog HDL
(天津工业大学) 李俊一,牛萍娟 Li, Junyi Niu,Pingjuan
要投栏目:嵌入式与SOC片上系统
摘 要:本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Altera QuartusⅡ 4.1和ModelSim SE 6.0完成综合、仿真。此程序通过下载到FPGA芯片后,可应用于实际的数字钟显示中。 关键词:Verilog HDL;硬件描述语言;FPGA 中图分类号:TP312 文献标识码:B 天津市应用基础重点项目(043800811) Abstract: In this paper, the process of de- signing multifunctional digital clock by the Verilog HDL top-down design method is presented, which has shown the readability, portability and easily understanding of Verilog HDL as a hard description language. Circuit synthesis and simulation are performed by Altera QuartusⅡ 4.1 and ModelSim SE 6.0. The program can be used in the truly digital clock display by downloading to the FPGA chip.
Keywords: Verilog HDL;hardware des- cription language;FPGA
1 引言
硬件描述语言HDL(Hardware Des- cription Language)是一种用形式化方法来描述数字电路和系统的语言。目前,电子系统向集成化、大规模和高速度等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计方法在业界得到迅猛发展,HDL在这种形势下显示出了巨大的优势,展望将来HDL在硬件设计领域的地位将与C和C++在软件设计领域的地位一样,在大规模数字系统的设计中,它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成为主要的硬件描述工具。
Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另一种是VHDL。现在它们都已成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比 VHDL丰富,且非常容易学习掌握。
本文提出了以Verilog HDL语言为手段,设计了多功能数字钟。其代码具有良好的可读性和易理解性,源程序经Altera公司的QuartusⅡ 4.1和ModelSim SE 6.0软件完成综合、仿真,目标器件选用Altera Cyclone EP1C6Q240C8器件。
2工作原理
图1 多功能数字钟端口功能图 图1为多功能数字钟端口功能图。其具有的功能有:显示时―分―秒、整点报时、小时和分钟可调等基本功能。下面介绍一下各主要引脚的功能:
Clk:10KHZ的系统基准时钟输入。作为七段码管扫描频率。将其10000分频可得到1HZ的数字钟工作频率。将其8分频和4分频分别分时送入扬声器,使其产生嘀(1.25KHZ)、嗒(2.5KHZ)的报时声。
Rst:系统复位信号,低电平有效。复位后显示00―00―00。
S1: 调节小时信号,低电平有效。每按下一次,小时增加一个小时。
S2: 调节分钟信号,低电平有效。每按下一次,分钟增加一个分钟。
Spk:输出到扬声器,产生嘀、嗒的报
时声。
Sel: 七段码管扫描驱动。因为是八个七段码管,所以Sel为三位总线。扫描频率为10KHZ,由于人眼的视觉效果,呈现在眼前的便是整体的时―分―秒显示。
Display:七段码管显示输出。
3 程序设计
Verilog HDL语言具有结构清晰、文法
简明、功能强大、高速模拟和多库支持等优
点,被近90%的半导体公司使用,成为一种
强大的设计工具。该数字钟就是采用Verilog
HDL描述。
模块源代码如下: module clock(Clk,Rst,S1,S2,Display,Sel,Spk); input Clk; //产生10KHZ时钟输入
input Rst; //复位输入
input S1; //小时调节输入
input S2; //分钟调节输入
output Spk; //扬声器输出
output[2:0] Sel; //七段码管扫描驱动
output[6:0] Display; //七段码管显示输出
reg Spk; reg[2:0] Sel; reg[6:0] Display; reg[13:0]Clk_Count1; //产生1Hz时钟的分
频计数器
reg Clk_1HZ; reg[2:0] Music_Count; //产生扬声器声音频
率的分频计数器
reg[3:0] SECL,SECH; reg[3:0] MINL,MINH; reg[3:0] HOURL,HOURH; reg[3:0] Disp_Temp; always@(posedge Clk) begin if(Clk_Count1==9999) //对计数器进
行判断,以确定Clk_1HZ信号是否反转
begin Clk_Count1<=0; Clk_1HZ<=~Clk_1HZ; end else Clk_Count1<=Clk_Count1+1; end always@(posedge Clk_1HZ or negedge Rst) if(!Rst) //系统复位
begin
SECL<=0; SECH<=0; MINL<=0; MINH<=0; HOURL<=0; HOURH<=0; end else begin if(!S1) //调节小时 begin
if(HOURL==9) begin HOURL<=0; HOURH<=HOURH+1; end else begin if(HOURH==2&& HOURL==3) begin HOURL<=0;
HOURH<=0; end else
HOURL<=HOURL+1; end end else if(!S2) //调节分钟 begin if(MINL==9) begin MINL<=0;
if(MINH==5) MINH<=0; else MINH<=MINH+1; end else MINL<=MINL+1; end else if(SECL==9) //一般运行状态 begin SECL<=0; if(SECH==5)
begin SECH<=0; if(MINL==9) begin MINL<=0; if(MINH==5) begin MINH<=0; if(HOURL==9) begin HOURL<=0; HOURH<=HOURH+1; end else if(HOURH==2 && HOURL==3) begin HOURL<=0; HOURH<=0; end else HOURL<=HOURL+1; end else MINH<=MINH+1; end else MINL<=MINL+1; end else SECH<=SECH+1; end else SECL<=SECL+1; end always@(posedge Clk) begin Music_Count<=Music_Count+1; Sel<=Sel+1; //扫描累加 if(MINH==5 && MINL==9 && SECH==5) //在59分50秒开始提示
begin if((SECL % 2)==0) //在偶数秒开始发声
Spk<=Music_Count[2]; //嘀
else Spk<=0; end else if(MINH==0 && MINL==0 && SECH==0 && SECL==0) Spk<=Music_Count[1]; //嗒
else Spk<=0; end always@(Sel) begin case(Sel) 3'b000: Disp_Temp=HOURH; 3'b001: Disp_Temp=HOURL; 3'b010: Disp_Temp=4'b1010; 3'b011: Disp_Temp=MINH; 3'b100: Disp_Temp=MINL; 3'b101: Disp_Temp=4'b1010; 3'b110: Disp_Temp=SECH; 3'b111: Disp_Temp=SECL; endcase end always@(Disp_Temp) //显示转换 begin case(Disp_Temp) 4'b0000: Display=7'b0111111; //0 4'b0001: Display=7'b0000110; //1 4'b0010: Display=7'b1011011; //2 4'b0011: Display=7'b1001111; //3 4'b0100: Display=7'b1100110; //4 4'b0101: Display=7'b1101101; //5 4'b0110: Display=7'b1111101; //6 4'b0111: Display= …… 此处隐藏:4003字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [文秘资料]班长职务辞职报告
- [文秘资料]完美的辞职报告
- [文秘资料]经典的员工辞职报告
- [文秘资料]医院口腔医生辞职报告
- [文秘资料]总经理辞职报告范文四篇
- [文秘资料]超市职员个人辞职报告
- [文秘资料]村妇联主任的辞职报告
- [文秘资料]辞职报告书格式
- [文秘资料]酒店辞职报告简单范文
- [文秘资料]联通的辞职报告
- [文秘资料]2017最新私企员工辞职报告范文
- [文秘资料]2019年度医院基层党组织书记抓党建述职
- [文秘资料]工作时间长辞职报告
- [文秘资料]辞职报告怎么写出来
- [文秘资料]个人能力原因辞职报告
- [文秘资料]网络工程师辞职报告
- [文秘资料]项目部辞职报告
- [文秘资料]缝纫工辞职报告怎么写
- [文秘资料]XXX州委书记述职报告
- [文秘资料]抓基层党建工作述职报告
- (王虎应老师讲课记录)六爻理象思维
- 八个常见投影机故障排除法
- 质量专业综合知识(中级)第一章质量管理
- 煤矿班组建设实施意见
- 我国快餐业与肯德基经营模式的比较与分
- 汽车保险杠模具标准化模架技术工艺研究
- 汽车二级维护作业团体赛比赛规程
- 装卸搬运工安全操作规程
- 高效的工作方法-刘铁
- 依据《生产安全事故报告和调查处理条例
- 2015专业PS夜景亮化效果图制作教程
- 企业劳动定额定员浅析
- 中枢神经系统医学影像学本科五年制第五
- 长城汽车参观探营第三站:研发试验中心
- 小升初语文专项训练
- 建筑工程质量检测资质分类与等级标准
- 周燕珉-我国养老社区的发展现状与规划
- 《生命里最后的读书会》读后感
- 实验室管理评审报告
- CCNA思科网院教程精华之网络基础知识




