教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 文秘资料 >

基于Verilog HDL设计的多功能数字钟

来源:网络收集 时间:2026-08-03
导读: 基于Verilog HDL设计的多功能数字钟 Design of Multifunctional Digital Clock Based on Verilog HDL (天津工业大学) 李俊一,牛萍娟 Li, Junyi Niu,Pingjuan 要投栏目:嵌入式与SOC片上系统 摘 要:本文利用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字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于Verilog HDL设计的多功能数字钟.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/2176162.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)