FPGA Verilog时钟设计

FPGA Verilog时钟设计

ID:44714393

大小:55.00 KB

页数:5页

时间:2019-10-25

FPGA Verilog时钟设计_第1页
FPGA Verilog时钟设计_第2页
FPGA Verilog时钟设计_第3页
FPGA Verilog时钟设计_第4页
FPGA Verilog时钟设计_第5页
资源描述:

《FPGA Verilog时钟设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于FPGA的电子时钟设计1、设计目的:(1)掌握VerilogHDL模块的基本结构(2)掌握计数器的设计方法(3)掌握分频器的设计方法(4)掌握模块的调用方法(5)掌握基于QuartusII的CPLD/FPGA开发流程2、设计内容:(1)设计有两个数码管能够实现秒钟显示,数字一秒钟变化一次。(2)按下复位键时,计时器所有能够复位清零。(3)利用QuartusII软件进行综合、适配3、设计方案(1)编写题目要求的程序;(2)按照要求将相关程序进行检测和调试,运行正确的程序;(3)程序完成后,将其与开发板连接;(4)下载程序到芯片内;(5)观察程序功能是否成功实现。4、总体

2、结构设计总体结构设计如上图所示,从开发板提供的6MHz时钟信号分频得到周期为1s的控制信号,控制计数器改变状态,秒钟利用模60的BCD码计数器实现,BCD码通过4-7译码器译码后驱动两个数码管显示。5、系统模块化设计5.1分频器根据需求分析的要求,从6MHz系统时钟分频得到1Hz(周期1s)的控制信号,利用计数器实现分频然后能够异步复位。程序入下:moduleclock(clk,rest,clk_1s);inputclk;inputrest;outputclk_1s;regclk_1s;integercount=0;always@(posedgeclkornegedger

3、est)beginif(rest==0)begincount=0;clk_1s=0;endelsebeginif(count==2999999)begincount<=0;clk_1s<=~clk_1s;endelsecount=count+1;endendendmodule5.2模60的BCD加法计数器模60BCD码加法计数器,计数器分为高4位与低4位分别控制,低4位每秒钟加1,变化状态为0~9,低4位状态变化到9时,高4位加1,变化状态为0~2。VerilogBCD24程序如下output[5:0]second;//输出秒reg[5:0]second=0;//初始化秒

4、为0always@(posedgeclk_1s)if(second==24)//判断是否到24秒beginsecond<=second+1;//没到加1endelsebeginsecond<=0;//到24秒置0End5.34-7译码器将4位二进制代码转换为驱动数码管的7位段选信号。outputSEG_L;outputSEG_H;reg[6:0]SEG_L;reg[6:0]SEG_H;always@(posedgesecond)beginSEG_L=second%10;case(SEG_L)4'd0:SEG_L=7'b1000000;4'd1:SEG_L=7'b11110

5、01;4'd2:SEG_L=7'b0100100;4'd3:SEG_L=7'b0110000;4'd4:SEG_L=7'b0011001;4'd5:SEG_L=7'b0010010;4'd6:SEG_L=7'b0000010;4'd7:SEG_L=7'b1111000;4'd8:SEG_L=7'b0000000;4'd9:SEG_L=7'b0010000;default:SEG_L=7'b1001000;endcaseendalways@(posedgesecond)beginSEG_H=second/10;case(SEG_H)4'd0:SEG_H=7'b1000000

6、;4'd1:SEG_H=7'b1111001;4'd2:SEG_H=7'b0100100;4'd3:SEG_H=7'b0110000;4'd4:SEG_H=7'b0011001;4'd5:SEG_H=7'b0010010;4'd6:SEG_H=7'b0000010;4'd7:SEG_H=7'b1111000;4'd8:SEG_H=7'b0000000;4'd9:SEG_H=7'b0010000;default:SEG_H=7'b1001000;endcaseendEndmodule,,,,,,,,,,,,,,,,,,,,,,,,,所有程序moduleclock(clk,S

7、EG_L,SEG_H);inputclk;regclk_1s;integercount=0;always@(posedgeclk)beginif(count==2999)begincount<=0;clk_1s<=~clk_1s;endelsecount=count+1;endreg[5:0]second=0;//初始化秒为0always@(posedgeclk_1s)if(second<=24)//判断是否到24秒beginsecond<=second+1;//没到加1endelsebeginsecond<=0;/endou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。