基于FPGA的多功能数字钟

基于FPGA的多功能数字钟
基于FPGA的多功能数字钟

基于FPGA的多功能数字钟

一、设计题目

基于FPGA的多功能数字钟

二、设计目的

1.掌握可编程逻辑器件的应用开发技术

——设计输入、编译、仿真和器件编程;

2.熟悉一种EDA软件使用;

3.掌握Verilog设计方法;

4.掌握分模块分层次的设计方法;

5.用Verilog完成一个多功能数字钟设计;

6.学会FPGA的仿真。

三、设计内容

设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示。能够利用按键实现“较时”、“较分”功能,随时对数码管的显示进行校正和校对。数字中系统主要由系统时钟,三个功能按键(mode,turn,change),FPGA,数码管和蜂鸣器部分组成。

四、FPGA及硬件描述语言简介

1.FPGA简介

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

目前以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)

或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。

2.硬件描述语言简介

硬件描述语言HDL(Hardware Description Language)是一种用形式化方法来描述数字电路和系统的语言。目前,电子系统向集成化、大规模和高速度等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计方法在业界得到迅猛发展,HDL 在这种形势下显示出了巨大的优势,展望将来HDL 在硬件设计领域的地位将与C 和C++在软件设计领域的地位一样,在大规模数字系统的设计中,它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成为主要的硬件描述工具。

Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA的设计之用。Verilog HDL是目前应用最为广泛的硬件描述语言,可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等,适合算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述。

Verilog HDL进行设计最大的优点是其工艺无关性,这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路。

Verilog HDL 是工业和学术界的硬件设计者所使用的两种主要的HDL 之一,另一种是VHDL。现在它们都已成为IEEE 标准。两者各有特点,但Verilog HDL 拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL 丰富,且非常容易学习掌握。本设计提出了以Verilog HDL 语言为手段,设计了多功能数字

钟。其代码具有良好的可读性和易理解性,源程序经Altera 公司的QuartusⅡ和ModelSim软件完成综合、仿真。此程序通过下载到FPGA 芯片后,可应用于

实际的数字钟显示中。

五、总体设计原理

1、关于模式信号mode选择各个功能显示的构思:

考虑到使用mode按键产生0、1信号在正常时间显示、调节时间功能、调节闹钟功能和跑表功能这四个功能之间的转换。所以mode信号的作用主要体现在控制模块(1)和显示模块中,虽然计时模块中也用到mode信号,但是它只是turn 信号将秒信号清零的辅助作用,保证只有在m=0(即普通时钟显示)下turn信号清零功能才起作用,在校时功能下只能是分、小时的切换和跑表下的暂停功能。

a、在控制模块下的作用:

在控制模块下,其实mode和turn信号的作用更像2-4译码器的功能,将change数字上加信号按不同的mode和turn分成四个信号,分别是count1(时间显示下的分信号)、counta(时间显示下的小时信号)、count2(闹铃显示下的分信号)、countb(闹铃显示下的小时信号)。

b、在显示模块下的作用:

同在控制模块下的作用。只是将turn信号选出的小时和分钟在同一个mode 下一起送至数码管显示。

2、关于时间调整和闹铃时间调整中数字上加的原理:

对于这个问题,我们要考虑两种情况,首先是时间调整的情况:因为在时间调整下,数字的上加不仅受到change信号的作用(即人工调时),还受本身在1Hz 信号下计时而随时发生的累加。而闹铃时间调整不存在这种情况,因为闹铃下的时间数字发生上加只可能人工调节(change信号作用下)的结果。

a、时间调整下的上加:

由于在控制模块(2)下又设置了快加的功能,所以有三部分信号对上加起作用,一是快加下的numXclk,表示以原始时钟的速率上加,二是慢加下的change 具体到各模块、各位的count1或counta,三是秒信号记到9向分信号的进位。

b、闹铃时间调整下的上加:

该部分原理同上,只是少了低位记到9向高位的进位。所以只有两部分组成,

一是快加下的numXclk,表示以原始时钟的速率上加,二是慢加下的change具体到各模块、各位的count2或countb。

图1 多功能数字钟总体设计模块

六、各模块说明

1. 分频模块

由于FPGA内部提供的时钟信号频率大约为50MHz,在这需要将它转化成1Hz的标准时钟信号供数字钟的计时显示;在此采用了级联分频法。

代码如下:

module fenpin(clk,clk_1Hz,clk_100Hz,clk_1k);

output clk_1Hz,clk_100Hz,clk_1k;

input clk;

reg clk_1Hz=0,clk_3=0,clk_1=0,clk_2=0,clk_1k=0;

reg [6:0] cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0;

wire clk_100Hz;

always @(posedge clk)

begin

if ( cnt1 < 156/2-1) /////////////////////////156分频,生成1MHz信号

begin

cnt1 <= cnt1 + 1;

end

else

begin

cnt1 <= 0;

clk_1 <= ~clk_1;

end

end

always @(posedge clk_1)

if ( cnt2 < 156/2-1) ////////////////////100分频,生成10000Hz信号begin

cnt2 <= cnt2 + 1;

end

else

begin

cnt2 <= 0;

clk_2 <= ~clk_2;

end

always @(posedge clk_2)

if ( cnt5 < 10/2-1) //////////////////////10分频,生成1kHz标准信号begin

cnt5<= cnt5 + 1;

end

else

begin

cnt5<= 0;

clk_1k<= ~clk_1k;

end

always @(posedge clk_2)

if ( cnt3 < 100/2-1) //////////////////////100分频,生成100Hz信号

begin

cnt3 <= cnt3 + 1;

end

else

begin

cnt3 <= 0;

clk_3 <= ~clk_3;

end

assign clk_100Hz=clk_3;

always @(posedge clk_3)

if ( cnt4 < 100/2-1) ////////////////////100分频,生成1Hz标准信号

begin

cnt4<= cnt4 + 1;

end

else

begin

cnt4<= 0;

clk_1Hz<= ~clk_1Hz;

end

endmodule

最终输出的是1Hz,100Hz,1kHz的标准时钟信号clk_1Hz ,clk_100Hz,clk_1k。

2、计时模块

原理:m是模式按键,当m=0时,进入计时模式,在计时模式下可以进行时间调整。num3,num4产生加速调整时间,当其值为1时,可以快速调整时间,该调整时间的频率由clk提供。counta,count1是手动调节时间。Turn接按键,可以改变当前调节的是小时还是分钟,长按turn键还可以使秒钟信号清零。sec1,min1,hour1输出的是计时的秒,分,时。

代码如下:

module jishi(clk,clk_1Hz,

turn,//// turn:接按键,在手动校时功能时,选择是调整小时,还是分钟;若长时间按住该键,还可使秒信号清零,用于精确调时

mode,count1,counta,sec1,min1,hour1,num3,num4);

input clk,clk_1Hz,turn,num3,num4;

input mode;

input count1,counta;

output [7:0] sec1,min1;

output [7:0] hour1;

wire clk_1Hz,ct1,cta,turn,num3,num4;

reg [7:0] sec1=0,min1=0;

reg [7:0] hour1=0;

reg [1:0] m;

wire count1,counta;

reg minclk,hclk;

always @(posedge mode) //mode 信号控制系统在三种功能间转换

begin

if(m==4) m<=0;

else m<=m+1;

end

/////秒钟计时模块//////

always @(posedge clk_1Hz)

if((sec1==8'h59)|turn&(!m))///////若长时间按住该键,还可使秒信号清零,用于精

确调时。

begin

sec1<=0; //按住“turn”按键一段时间,秒信号可清零,该功能用于手动精确调时if(!(turn&(!m))) minclk<=1;///产生进位

end

else begin

if(sec1[3:0]==4'b1001)

begin sec1[3:0]<=4'b0000; sec1[7:4]<=sec1[7:4]+1; end

else sec1[3:0]<=sec1[3:0]+1;

minclk<=0;

end

////////分钟计时模?///

assign m_clk=minclk||count1;/////m_clk产生进位或校正改变

assign ct1=(num3&clk)|(!num3&m_clk); //ct1 用于计时、校时中的分钟计数always @(posedge ct1)

begin

if(min1==8'h59) begin min1<=0; hclk<=1; end

else begin

if(min1[3:0]==9)

begin min1[3:0]<=0; min1[7:4]<=min1[7:4]+1; end

else min1[3:0]<=min1[3:0]+1;

hclk<=0;

end

end

////////小时计时模块///

assign h_clk=hclk||counta;//////h_clk产生进位或校正改变

assign cta=(num4&clk)|(!num4&h_clk); //cta 用于计时、校时中的小时计数always @(posedge cta)

if(hour1==8'h23) hour1<=0;

else if(hour1[3:0]==9)

begin hour1[7:4]<=hour1[7:4]+1; hour1[3:0]<=0; end

else hour1[3:0]<=hour1[3:0]+1;

endmodule

3、闹钟模块

原理:num1,num2产生加速调整时间,当其值为1时,可以快速调整时间,该调整时间的频率由clk提供。countb,count2是手动调节闹钟时间。amin,ahour

是输出的闹钟的分钟和小时,LD_alert指示当前是否开启闹钟。

代码如下:

module Alarm(clk,amin,ahour,num1,num2,count2,countb,LD_alert);

input clk,num1,num2,count2,countb;

output [7:0] amin;

output [7:0] ahour;

output LD_alert;

wire LD_alert;

reg [7:0] amin=0;

reg [7:0] ahour=0;

assign ct2=(num1&clk)|(!num1&count2); //ct2 用于定时状态下调整分钟信号assign LD_alert=(ahour|amin)?1:0;//指示是否进行了闹铃定时

always @(posedge ct2)

if(amin==8'h59) amin<=0;

else if(amin[3:0]==9)

begin amin[3:0]<=0; amin[7:4]<=amin[7:4]+1; end

else amin[3:0]<=amin[3:0]+1;

assign ctb=(num2&clk)|(!num2&countb); ////ctb 用于定时状态调节小时信号always @(posedge ctb)

if(ahour==8'h23) ahour<=0;

else if(ahour[3:0]==9)

begin ahour[3:0]<=0; ahour[7:4]<=ahour[7:4]+1; end

else ahour[3:0]<=ahour[3:0]+1;

endmodule

4、控制模块(1)

原理:m是模式按键,当m=0时,指当前输出的是计时功能;当m=1时,指当前调整的是闹钟时间;当m=2时,指当前调整的是计时时间;当m=3时,此时turn按键可用于跑表的暂停与开始。change 接按键,手动调整时,每按一次,计数器加1;如果长按,则连续快速加1,用于快速调时和定时;turn接按

键,在手动校时功能时,选择是调整小时,还是分钟;若长时间按住该键,还可使秒信号清零,用于精确调时。count1,count2,counta,countb分别是用来调节计时时间和闹钟时间。LD_min,LD_hour,指示当前调节的是分钟还是小时。

代码如下:

Module

ctrol(change,turn,count1,count2,counta,countb,pause,LD_min,LD_hour,mode); input change,mode,turn;

output count1,count2,counta,countb,pause,LD_min,LD_hour;

reg [1:0] m;

reg fm=0,count1=0,count2=0,counta=0,countb=0,pause=0,LD_min=0,LD_hour=0; wire mode,turn,change;

always @(posedge mode) //mode 信号控制系统在三种功能间转换

begin

if(m==4) m<=0;

else m<=m+1;

end

always @(posedge turn)//////////接按键,在手动校时功能时,选择是调整小时,还

是分钟;

begin

fm<=~fm;

end

always @ (m or fm or change)

begin

case(m)

3: begin ////////3:跑表功能;

if(fm)

pause=1;

else

pause=0;

end

2: begin ////////2:调节时间功能;

if(fm)

begin count1<=change; {LD_min,LD_hour}<=2;

end//////指示当前调整的是分钟

else

begin counta<=change; {LD_min,LD_hour}<=1;

end/////指示当前调整的是小时

{count2,countb}<=0;

end

1: begin //////1:调节闹钟功能

if(fm)

begin count2<=change; {LD_min,LD_hour}<=2;

end/////指示当前调整的是分

else

begin countb<=change; {LD_min,LD_hour}<=1;

end/////指示当前调整的是小时

{count1,counta}<=0;

end

0: begin {count1,count2,counta,countb,LD_min,LD_hour}<=0;

end ////0:计时功能

endcase

end

endmodule

5、控制模块(2)

原理:此模块是加速调节时间模块,count1,count2,counta,countb是手动调节时间,当长时间按这些键时,num1,num2,num3,num4的值会发生变化,当他们值有为1时,对应的调节会快速加1。

代码如下:

module faster(clk,num1,num2,num3,num4,count1,count2,counta,countb);

input clk;

input count1,count2,counta,countb;

output num1,num2,num3,num4;

wire count1,count2,counta,countb;

reg[2:0] loop1=0,loop2=0,loop3=0,loop4=0;

reg num1,num2,num3,num4;

always @(negedge clk)//如果长时间按下“change”键,则生成“num*”信号用于

连续快速加1

if(count2) begin

if(loop1==3) begin loop1<=0; num1<=1; end

else

begin loop1<=loop1+1; num1<=0; end

end

else begin loop1<=0; num1<=0; end

always @(negedge clk)

if(countb) begin

if(loop2==3) begin loop2<=0; num2<=1; end

else

begin loop2<=loop2+1; num2<=0; end

end

else begin loop2<=0; num2<=0; end

always @(negedge clk)

if(count1) begin

if(loop3==3) begin loop3<=0; num3<=1; end

else

begin loop3<=loop3+1; num3<=0; end

end

else begin loop3<=0; num3<=0; end

always @(negedge clk)

if(counta) begin

if(loop4==3) begin loop4<=0; num4<=1; end

else

begin loop4<=loop4+1; num4<=0; end

end

else begin loop4<=0; num4<=0; end

endmodule

6、显示模块

原理:同时输入计时模块的时间和闹钟模块的时间,选择m值,当m=0时,指当前输出的是计时模块的时间;当m=1时,指当前输出的是闹钟模块的时间;当m=2时,指当前输出的是调节计时模块的时间;当m=3时,指当前输出的是跑表计时的时间。

代码如下:

Module

show(min1,sec1,amin,hour1,ahour,MSH,MSL,SH,SL,MH,ML,min,sec,hour,mode); input [7:0] min1,sec1,amin;

input [7:0] hour1,ahour;

input[3:0] MSH,MSL,SH,SL,MH,ML;

input mode;

output [7:0] min,sec;

output [7:0] hour;

reg [7:0] min,sec;

reg [7:0] hour;

reg [1:0] m;

always @(posedge mode) //mode 信号控制系统在三种功能间转换

begin

if(m==4) m<=0;

else m<=m+1;

end

always @(min1 or sec1 or amin or hour1 or ahour or m)

begin

case(m)

0: begin hour<=hour1; min<=min1; sec<=sec1; end

1: begin hour<=ahour; min<=amin; sec<=8'hzz; end

2: begin hour<=hour1; min<=min1; sec<=8'hzz; end

3: begin hour<={SH,SL}; min<={MSH,MSL}; sec<={MH,ML}; end endcase

end

endmodule

7、响铃模块

原理:同时输入计时模块的时间和闹钟模块的时间。当计时模块的时间快到达整点时,会产生响声;当计时模块的时分同时等于闹钟模块的时分时,也产生响铃。这时alert为1,如果在这时按住change键,可以屏蔽闹钟响铃。

代码如下:

module ring(clk,clk_1k,min1,sec1,amin,hour1,ahour,change,alert);

input [7:0] min1,sec1,amin;

input [7:0] hour1,ahour;

input change,clk,clk_1k;

output alert;

wire [7:0] min1,sec1,amin;

wire [7:0] hour1,ahour;

wire change;

reg alert1=0,alert2=0;

reg [1:0] sound;

reg ear;

wire alert;

wire clk_1k,clk;

always @ (posedge clk)

if((min1==amin)&&(hour1==ahour)&&(amin|ahour)&&(!change))

if(sec1<30) alert1<=1;

else alert1<=0;

else alert1<=0;

always @ (posedge clk)

begin

if(sound==3) begin sound<=0; ear<=1; end

//ear 信号用于产生或屏蔽声音

else begin sound<=sound+1; ear<=0; end

if((min1==8'h59)&&(sec1>8'h54)||(!(min1|sec1)))

if(sec1>8'h54) alert2<=ear&clk_1k; //产生短音

else alert2<=!ear&clk_1k; //产生长音

else alert2 <= 0; //停止发声

end

///assign alert=((alert1)?clk_100Hz&clk:0)|alert2;//产生闹铃音或整点报时音assign alert=((alert1)?clk_1k&clk:0)|alert2; //产生闹铃音或整点报时音endmodule

8、跑表模块

原理:输入该模块的是100Hz时钟信号。百分秒是模为100的BCD码计数器,为方便数码管显示,将百分秒的两位分别用4位的MSH(百分秒高位),MSL (百分秒低位)表示。这样MSH,MSL就分别对应每一个数码管显示的BCD码。同理,秒信号为模为60的BCD码计数器,两位也用四位的SH(秒高位),SL (秒低位)。此时turn键可用作跑表的pause键,按下turn键后跑表暂停,再按下后秒表启动。此外clr按键可实现跑表的异步清零。

/*信号定义:clk_100Hz:clk_100Hz 为时钟信号;clr:为异步复位信号;pause:为暂停信号;MSH,MSL:百分秒的高位和低位;SH,SL:秒信号的高位和低位;MH,ML:分钟信号的高位和低位。*/

module paobiao(clk_100Hz,clr,pause,MSH,MSL,SH,SL,MH,ML);

input clk_100Hz,clr;

input pause;

output[3:0] MSH,MSL,SH,SL,MH,ML;

reg[3:0] MSH,MSL,SH,SL,MH,ML;

reg cn1,cn2; //cn1 为百分秒向秒的进位,cn2 为秒向分的进位

//百分秒计数进程,每计满100,cn1 产生一个进位always @(posedge clk_100Hz or posedge clr)

begin

if(clr) begin //异步复位

{MSH,MSL}<=8'h00;

cn1<=0;

end

else if(!pause) //PAUSE 为0 时正常计数,为1 时暂停计数begin

if(MSL==9) begin

MSL<=0;

if(MSH==9)

begin MSH<=0; cn1<=1; end

else MSH<=MSH+1;

end

else begin

MSL<=MSL+1; cn1<=0;

end

end

end //秒计数进程,每计满60,cn2 产生一个进位

always @(posedge cn1 or posedge clr)

begin

if(clr) begin //异步复位

{SH,SL}<=8'h00;

cn2<=0;

end

else if(SL==9) //低位是否为9

begin

SL<=0;

if(SH==5)

begin SH<=0; cn2<=1; end

else SH<=SH+1;

end

else

begin SL<=SL+1; cn2<=0; end

end //分钟计数进程,每计满60,系统自动清零always @(posedge cn2 or posedge clr)

begin

if(clr)

begin {MH,ML}<=8'h00; end //异步复位

else if(ML==9) b egin

ML<=0;

if(MH==5) MH<=0;

else MH<=MH+1;

end

else ML<=ML+1;

end

endmodule

七、各工作模式仿真波形

1.时钟正常计时波形00:00:59时刻波形

00:59:59时刻波形

23:59:59时刻波形

2.定时闹钟波形

如图所示为01:02:00-01:02:59的一分钟闹钟波形。

3.仿电台报时波形

如图所示,在任意小时59分的51、53、55、57秒内蜂鸣器为低频(512Hz)信号输出,在59秒内蜂鸣器为高频(1024Hz)信号输出,实现模仿电台报时功能。

4.整点报时波形

如图所示,在06:00:00后的6秒内,蜂鸣器前半秒无输入,后半秒有高频(1024Hz)输入,达到整点报时功能。在N小时整时刻,蜂鸣器会鸣响N次。如此仿真中为六点,响六下。

分计数器仿真波形图:

小时计数器仿真波形图:

八、在FPGA板上调试过程如下:

1.当前m=0,输出的是计时模块的时间;LD_alert=0,表示没有设置闹钟。

2.当m=1时,输出的是闹钟时间。改变change的值,可以调节闹钟的时间。可以看出设置得闹钟为8:25。LD-alert=1提示设置了闹钟。

3.当m=2or3时,输出的是调整计时模块的时间。改变change的值,可以调节时间。可以看出,时间调整为8:21。

4.从下可以看出,LD_alert=1,表明设置有闹钟。alert=0,表示闹钟时间还没有到。

基于FPGA的数字时钟的设计1

基于FPGA的数字时钟的设计课题: 基于FPGA的数字时钟的设计 学院: 电气信息工程学院 专业: 测量控制与仪器 班级 : 08测控(2)班 姓名 : 潘志东 学号 : 08314239 合作者姓名: 颜志林 2010 年12 月12 日

综述 近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉与掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题与故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计与组织实验能力。 本次课程设计的目的在于培养学生对基本电路的应用与掌握,使学生在实验原理的指导下,初步具备基本电路的分析与设计能力,并掌握其应用方法;自行拟定实验步骤,检查与排除故障、分析与处理实验结果及撰写实验报告的能力。综合实验的设计目的就是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟就是一种计时装置,它具有时、分、秒计时功能与显示时间功能;具有整点报时功能。 本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固与掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识与了解。

1、课题要求 1、1课程设计的性质与任务 本课程就是电子与信息类专业的专业的专业基础必修课——“数字电路”的配套实验课程。目的在于培养学生的理论联系实际,分析与解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力与严谨的工作作风。 1、2课程设计的基本技术要求 1)根据课题要求,复习巩固数字电路有关专业基础知识; 2)掌握数字电路的设计方法,特别就是熟悉模块化的设计思想; 3) 掌握QUARTUS-2软件的使用方法; 4) 熟练掌握EDA工具的使用,特别就是原理图输入,波形仿真,能对仿真波形进行分析; 5) 具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法; 6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法; 7) 能根据设计要求对设计电路进行仿真与测试; 8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。 9) 将硬件与软件连接起来,调试电路的功能。 1、3课程设计的功能要求 基本功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。 附加功能:1)能利用硬件部分按键实现“校时”“校分”“清零”功能; 2)能利用蜂鸣器做整点报时:当计时到达59’59’’时开始报时, 鸣叫时间1秒钟; 3)定时闹铃:本设计中设置的就是在七点时进行闹钟功能,鸣叫 过程中,能够进行中断闹铃工作。 本人工作:负责软件的编程与波形的仿真分析。 2、方案设计与分析

基于FPGA的数字钟设计

摘要 伴随着集成电路技术的发展, 电子设计自动化(EDA)技术逐渐成为数字电路设计的重要手段。基于FPGA的EDA技术的发展和应用领域的扩大与深入,使得EDA技术在电子信息,通信,自动控制,计算机等领域的重要性日益突出。 本设计给出了一种基于FPGA的多功能数字钟方法,采用EDA作为开发工具,VHDL语言和图形输入为硬件描述语言,QuartusII作为运行程序的平台,编写的程序经过调试运行,波形仿真验证,下载到EDA实验箱的FPGA芯片,实现了设计目标。 系统主芯片采用CycloneII系列EP2C35F672C8。采用自顶向下的设计思想,将系统分为五个模块:分频模块、计时模块、报时模块、显示模块、顶层模块。用VHDL语言实现各个功能模块, 图形输入法生成顶层模块. 最后用QuartusII 软件进行功能仿真, 验证数字钟设计的正确性。 测试结果表明本设计实现了一个多功能的数字钟功能,具有时、分、秒计时显示功能,以24小时循环计时;具有校正小时和分钟的功能;以及清零,整点报时功能。 关键词:EDA技术;FPGA;数字钟;VHDL语言;自顶向下

Abstract Accompanied by the development of integrated circuit technology, electro nic design automation (EDA) technology is becoming an important means of digital circuit design. FPGA EDA technology development and expansion of a pplication fields and in-depth, the importance of EDA technology in the field of electronic information, communication, automatic control, computer, etc. hav e become increasingly prominent. This design gives a FPGA-based multifunctional digital clock using ED A as a development tool, VHDL language and graphical input hardware descri ption language, the QuartusII as a platform for running the program, written procedures debugging and running, the waveform simulation downloaded to th e FPGA chip to achieve the design goals. The main system chip CycloneII series EP2C35F672C8. Adopted a topdw n design ideas, the system is divided into five modules: frequency module, ti ming module, timer module, display module, the top-level module. With VHD L various functional modules, graphical input method to generate the top-level module. Last QuartusII under simulation, to verify the correctness of the digi tal clock design. The test results show that the design of a multifunctional digital clock, with seconds time display, 24-hour cycle timing; has a school, cleared, and th e whole point timekeeping functions. Key words: EDA technology; FPGA; VHDL language; top-down; digital cloc k

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

FPGA实训报告——简易数字钟

桂林电子科技大学职业技术学院 课题:FPGA实训 专业:电子信息工程技术 学号: 姓名:

目录 关键词: (1) 引言: (1) 设计要求: (1) EDA技术介绍: (1) Verilog HDL简介: (1) 方案实现: (2) 工作原理: (2) 总结: (3) 结语: (3) 程序设计: (4)

数字钟 关键词:EDA、Verilog HDL、数字钟 引言: 硬件描述语言HDL(Hardware Des-cription Language)是一种用形式化方法来描述数字电路和系统的语言。目前,电子系统向集成化、大规模和高速等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计发放在业界得到迅猛发展,HDL在硬件设计领域的地位将与C和C++在软件设计领域的地位一样,在大规模数字系统的设计中它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成为主要的硬件描述工具。 Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另外一种是VHDL。现在它们都已经成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。 此次以Verilog HDL语言为手段,设计了多功能数字钟,其代码具有良好的可读性和易理解性。 设计要求: 数字钟模块、动态显示模块、调时模块、到点报时模块等;必须有键防抖动功能。可自行设计8位共阴数码管显示;亦可用FPGA实验平台EDK-3SAISE上的4位数管,但必须有秒指导灯。 EDA技术介绍: 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 Verilog HDL简介: 硬件描述语言Verilog是Philip R.Moorby于1983年在英格兰阿克顿市的Gateway Design Automation硬件描述语言公司设计出来的,用于从开关级到算法级的多个抽象设

基于FPGA的Verilog HDL数字钟设计 -

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 ?功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式; 2)计时时间范围00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接 8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; ?设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系 统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。

Verilog HDL数字时钟课程设计

课程设计报告 课程设计名称:EDA课程设计课程名称:数字时钟 二级学院:信息工程学院 专业:通信工程 班级:12通信1班 学号:1200304126 姓名:@#$% 成绩: 指导老师:方振汉 年月日

目录 第一部分 EDA技术的仿真 (3) 1奇偶校验器 (3) 1.1奇偶校验器的基本要求 (3) 1.2奇偶校验器的原理 (3) 1.3奇偶校验器的源代码及其仿真波形 (3) 28选1数据选择器 (4) 2.18选1数据选择器的基本要求 (4) 2.28选1数据选择器的原理 (4) 2.38选1数据选择器的源代码及其仿真波形 (5) 34位数值比较器 (6) 3.14位数值比较器的基本要求 (6) 3.24位数值比较器的原理 (6) 3.34位数值比较器的源代码及其仿真波形 (7) 第二部分 EDA技术的综合设计与仿真(数字时钟) (8) 1概述 (8) 2数字时钟的基本要求 (9) 3数字时钟的设计思路 (9) 3.1数字时钟的理论原理 (9) 3.2数字时钟的原理框图 (10) 4模块各功能的设计 (10) 4.1分频模块 (10) 4.2计数模块(分秒/小时) (11) 4.3数码管及显示模块 (13) 5系统仿真设计及波形图........................... 错误!未定义书签。5 5.1芯片引脚图.................................... 错误!未定义书签。5 5.2数字时钟仿真及验证结果 (16) 5.3数字时钟完整主程序 (17) 6课程设计小结 (23) 7心得与体会 (23) 参考文献 (24)

基于FPGA的数字钟设计

南昌大学实验报告 学生姓名:邓儒超学号:6100210045 专业班级:卓越通信101 实验类型:□验证□综合□√设计□创新实验日期:2012.10.28 实验成绩: 实验三数字钟设计 一、实验目的 (1)掌握数字钟的设计 二、实验内容与要求 (1)设计一个数字钟,要求具有调时功能和24/12进制转换功能 (2)进行波形仿真,并分析仿真波形图; (3)下载测试是否正确; 三、设计思路/原理图 本次数字钟的设计采用了自顶向下分模块的设计。底层是实现各功能的模块,各模块由vhdl语言编程实现:顶层采用原理图形式调用。其中底层模块包括秒、分、时三个计数器模块、按键去抖动模块、按键控制模块、时钟分频模块、数码管显示模块,其中,时计数器模块又包括24进制计数模块、12进制计数模块、24/12进制转换模块。设计框图如下: 由图可以清晰的看到数字钟系统设计中各功能模块间连接关系。系统时钟1KHZ经过分频后产生1秒的时钟信号,1秒的时钟信号作为秒计数模块的输入信号,秒计数模块产生的进位信号作为分计数模块的输入信号,分计数模块的进位信号作为时计数模块的输入信号。秒计数模块、分计数模块、时计数模块的计数输出分别送到显示模块。由于设计中要使用按键进行调节时间,而按键的动作过程中存在产生得脉冲的不稳定问题,所以就牵扯到按键去抖动的问题,对此系统中设置了按键去抖动模块,按键去抖动模块产生稳定的脉冲信号送入按键控制模块,按键控制模块根据按键的动作对秒、分、时进行调节。 原理图如下:

四、实验程序(程序来源:参考实验室里的和百度文库的稍加改动,还有自己写的) 1、分频模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin IS PORT(CLK:IN STD_LOGIC; CLK1:OUT STD_LOGIC); END fenpin; ARCHITECTURE behav OF fenpin IS SIGNAL X,CNT:STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN P1:PROCESS(CLK) BEGIN X<="001111101000";--1000分频 IF CLK'EVENT AND CLK = '1' THEN CNT<=CNT+1; IF CNT=X-1 THEN CLK1<='1';CNT<="000000000000"; ELSE CLK1<='0'; END IF; END IF; END PROCESS; END behav; 2、60进制计数器(秒、分计数器)模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count60 IS PORT(EN,RST,CLK1: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT: OUT STD_LOGIC); END count60;

FPGA课程设计多功能数字钟讲解

多功能数字钟 开课学期:2014—2015 学年第二学期课程名称:FPGA课程设计 学院:信息科学与工程学院 专业:集成电路设计与集成系统班级: 学号: 姓名: 任课教师: 2015 年7 月21 日

说明 一、论文书写要求与说明 1.严格按照模板进行书写。自己可以自行修改标题的题目 2.关于字体: a)题目:三号黑体加粗。 b)正文:小四号宋体,行距为1.25倍。 3.严禁抄袭和雷同,一经发现,成绩即判定为不及格!!! 二、设计提交说明 1.设计需要提交“电子稿”和“打印稿”; 2.“打印稿”包括封面、说明(即本页内容)、设计内容三部分;订书机左边装订。 3.“电子稿”上交:文件名为“FPGA课程设计报告-班级-学号-姓名.doc”,所有报告发送给班长,由班长统一打包后统一发送到付小倩老师。 4.“打印稿”由班长收齐后交到:12教305办公室; 5.上交截止日期:2015年7月31日17:00之前。

第一章绪论 (3) 关键词:FPGA,数字钟 (3) 第二章FPGA的相关介绍 (4) 2.1 FPGA概述 (4) 2.2 FPGA特点 (4) 2.3 FPGA设计注意 (5) 第三章Quartus II与Verilog HDL相关介绍 (7) 3.1 Quartus II (7) 3.2 Verilog HDL (7) 第四章设计方案 (8) 4.1数字钟的工作原理 (8) 4.2 按键消抖 (8) 4.3时钟复位 (8) 4.4时钟校时 (8) 4.5数码管显示模块。 (8) 第五章方案实现与验证 (9) 5.1产生秒脉冲 (9) 5.2秒个位进位 (9) 5.3按键消抖 (9) 5.4复位按键设置 (10) 5.5 数码管显示。 (10) 5.6 RTL结构总图 (11) 第六章实验总结 (14) 第七章Verilog HDL源代码附录 (15)

基于FPGA的多功能数字钟的设计

基于FPGA的多功能数字钟的设计 摘要数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常生活中不可少的必需品。本文介绍了应用FPGA芯片设计多功能数字钟的一种方案,并讨讨论了有关使用FPGA芯片和VHDL语言实现数字钟设计的技术问题。关键词数字钟、分频器、译码器、计数器、校时电路、报时电路。 Design of Abstract Keywords

目录 0.引言 (4) 1.设计要求说明 (4) 1.1设计要求 (4) 1.2完成情况说明 (4) 2.多功能数字钟的基本原理及其在FPGA中的设计与实现 (4) 2.1计时电路 (5) 2.2异步清零电路 (5) 2.3校时、校分功能电路 (5) 2.4报时电路 (6) 2.5分频电路 (7) 2.6闹钟及音乐闹铃电路 (9) 2.7秒表计时电路 (15) 2.8译码显示电路 (15) 2.9逻辑总图 (16) 3.设计感想 (17) 参考文献 (17)

0.引言 数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便而且大大地扩展了钟表原先的报时功能。因此,研究数字钟及扩大其应用,有着非常现实的意义。 1.设计要求说明 1.1设计要求 1)设计一个具有校时、校分、清零,保持和整点报时功能的数字钟。 2)多数字钟采用层次化的方法进行设计,要求设计层次清晰、合理;构成整个设计的功能模块既可采用原理图方法实现,也可采用文本输入法实 现。 3)数字钟的具体设计要求具有如下功能: ①数字钟的最大计时显示23小时59分59秒; ②在数字钟正常工作时可以进行快速校时和校分,即拨动开关K1可对小 时进行校正,拨动开关K2可对分钟进行校正; ③在数字钟正常工作情况下,可以对其进行不断电复位,即拨动开关K3 可以使时、分、秒回零; ④整点报时是要求数字钟在每小时整点来到前进行鸣叫,鸣叫频率是在 59分53秒、55秒、57秒时为500Hz,59分59秒时为1KHz; ⑤哟啊去所有开关具有去抖动功能。 4)对设计电路进行功能仿真。 5)将仿真通过的逻辑电路下载到EDA实验系统,对其进行验证。 1.2完成情况说明: 对于实验要求的基本功能我们设计的电路都能准确实现。另外,我们还附加了显示星期、秒表、闹钟时间来时播放音乐等功能。 2.多功能数字钟的基本原理及其在FPGA中的设计与实现 通过分析多功能数字钟的设计要求和所要实现的功能,应用层次化方法设计出数字钟应由计时模块、分频脉冲模块、译码显示模块、校时校分和清零模块、报时模块等几个模块组成,其原理框图如下图1所示:

fpga数字钟课程设计报告

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 学号:20133638 姓名:王一丁 指导教师:李世平 设计时间:2016年1月

摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟

目录 摘要 1 课程设计目的 2 课程设计内容及要求 2.1 设计任务 2.2 设计要求 3 VHDL程序设计 3.1方案论证 3.2 系统结构框图 3.3设计思路与方法 3.3.1 状态控制模块 3.3.2 时分秒模块 3.3.3 年月日模块 3.3.4 显示模块 3.3.5脉冲产生模块 3.3.6 扬声器与闹钟模块 3.4 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献

1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。 2 课程设计内容及要求 2.1 设计任务 (1)6个数字显示器显示时分秒,setpin按键产生一个脉冲,显示切换为年月日。 (2)第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、 五、六、七个脉冲到来时分别可以预置时期、时、分、秒,第八个脉冲到来后预置结束正常从左显示时分秒。 (3)up为高时,upclk有脉冲到达时,预置位加一,否则减一。 2.2 设计要求 (1)在基本功能的基础上,闹钟在整点进行报时,产生一定时长的高电平。 (2)实现闹钟功能,可对闹钟时间进行预置,当达到预置时间时进行报时。

基于FPGA的数字时钟

xxxx大学 电子设计自动化技术与应用 设计报告 设计题目:基于FPGA的数字时钟 学院:通信学院 姓名: 学号:

目录 一、设计任务 (3) 二、总体设计方案 (3) 1、设计思想 (3) 2、总体设计框图 (3) 三、单元电路设计 (4) 1、秒计数器模块设计与实现 (4) 2、分计数器模块设计与实现 (5) 3、时计数器模块设计与实现 (6) 4、2选1选择器模块设计与实现 (7) 5、译码器模块的设计与实现 (8) 6、3-8线译码器模块设计与实现 (9) 7、分频器的设计与实现 (9) 8、顶层原理设计图 (10) 四、硬件测试与结果分析 (11) 1、硬件测试: (11) 2、测试过程及结果分析 (12) 五、收获与体会 (12)

一、设计任务 1、能进行正常的时、分、秒计时功能,由LED数码管显示时间,最大计时 为23:59:59。 2、小时显示采用24进制,分显示和秒显示都采用60进制。 3、具有调时和调分功能。 二、总体设计方案 1、设计思想 本设计是基于Altera公司的Cyclone III 系列的EP3C16Q240C8芯片设计的,采用层次化设计方式,先设计数字时钟的底层器件:秒计数器、分计数器、时计数器、2选1选择器、译码器、分频器。顶层采用原理图设计方式,将所设计的底层器件连接起来构成一个具有计时和调时功能的数字时钟。 2、总体设计框图 完整的数字时钟设计硬件框图如图所示。

三、单元电路设计 1、秒计数器模块设计与实现 1.1秒计数器流程图如下: 1.2秒计数器生成模块如图1所示: 图1 其中,clk 是时钟信号,daout 是60计数输出,enmin 是向分进位的高电平。 1.3 波形仿真图

基于FPGA开发板的数字钟设计初探

基于FPGA开发板的数字钟设计初探 摘要:本文介绍了基于FPGA开发板的数字钟设计的基本构想,所提供的功能,基本的模块和控制逻 辑。 关键词: 模块,数字钟 1引言 VHDL结合FPGA可以方便地,可重复利用地实现各种设计,本文主要从原理上规划出设计一个数字钟需要的模块和功能逻辑,以便后期使用VHDL和FPGA实现。 2 设计原理 本文打算实现的数字钟向用户提供的功能包括:秒、分、时、日、月显示,闹钟设定,时间校准。鉴于所提供的功能,电路应当包括以下五大模块:控制模块,分频模块,闹钟模块,计时模块和显示模块。控制模块包括了输入部分,用户通过外部按钮选择数字钟工作模式和输入基准时间,闹钟时刻;分频模块主要是给需要的模块提供特定频率的时钟信号;闹钟模块的主要作用是接收并存储用户输入的闹钟时刻,比较当前时刻是否是用户所设定的闹钟时刻,进而决定是否启动闹钟提醒装置(蜂鸣器);计时模块包括了秒、分、时、日,月计数模块,并提供给显示模块显示输出;显示模块包括数码管及驱动部分,蜂鸣器。 3 电路设计 控制模块主要是一个译码电路,控制系统所处的模式:正常计时显示,时间校准,设定闹钟。 计时模块通过六十进制、二十四进制、三十或三十一进制和十二进制的计数器实现计时。计时模式下利用分频器提供的基准时钟信号实现计时;时间校准模式下,用户输入按钮的脉冲作时钟信号。 分频模块是一个分频器,将系统提供的时钟分频到需要的频率。 闹钟模块在计时模式下利用比较电路检测当前时间,如果是闹钟时刻,则启动蜂鸣器;闹钟模式下,用户通过输入按钮脉冲设定闹钟,闹钟模块记录并存储。 显示模块在计时模式和时间校准模式下由计时模块控制显示,设定闹钟时由闹钟模块控制显示,方便用户设定闹钟,蜂鸣器由闹钟模块控制。

基于FPGA的数字时钟的设计1

基于FPGA 的数字时钟的设计 课 题: 基于FPGA 的数字时钟的设计 学 院: 电气信息工程学院 专 业 : 测量控制与仪器 班 级 : 08测控(2)班 姓 名 : 潘 志 东 学 号 : 08314239 合作者姓名: 颜志林 2010 年 12 月 12 日

综述 近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉和掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计和组织实验能力。 本次课程设计的目的在于培养学生对基本电路的应用和掌握,使学生在实验原理的指导下,初步具备基本电路的分析和设计能力,并掌握其应用方法;自行拟定实验步骤,检查和排除故障、分析和处理实验结果及撰写实验报告的能力。综合实验的设计目的是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟是一种计时装置,它具有时、分、秒计时功能和显示时间功能;具有整点报时功能。 本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固和掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识和了解。

1、课题要求 1.1课程设计的性质与任务 本课程是电子与信息类专业的专业的专业基础必修课——“数字电路”的配套实验课程。目的在于培养学生的理论联系实际,分析和解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力和严谨的工作作风。 1.2课程设计的基本技术要求 1)根据课题要求,复习巩固数字电路有关专业基础知识; 2)掌握数字电路的设计方法,特别是熟悉模块化的设计思想; 3) 掌握QUARTUS-2软件的使用方法; 4) 熟练掌握EDA工具的使用,特别是原理图输入,波形仿真,能对仿真波形进行分析; 5) 具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法; 6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法; 7) 能根据设计要求对设计电路进行仿真和测试; 8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。 9) 将硬件与软件连接起来,调试电路的功能。 1.3课程设计的功能要求 基本功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。 附加功能:1)能利用硬件部分按键实现“校时”“校分”“清零”功能; 2)能利用蜂鸣器做整点报时:当计时到达59’59’’时开始报时,鸣叫时间1秒钟; 3)定时闹铃:本设计中设置的是在七点时进行闹钟功能,鸣叫过程中,能够进行中断闹铃工作。 本人工作:负责软件的编程与波形的仿真分析。 2、方案设计与分析

基于FPGA的多功能数字钟课程设计

F P G A课程设计报告 (实现多功能数字钟)

一、标题:设计多功能数字钟控制电路 二、任务书:用MAX+PLU SⅡ软件及Verilog HDL语言设计 一个多功能的数字钟,包括有时、分、秒的计 时,以及校时(对小时、分钟和秒能手动调整 以校准时间)、正点报时(每逢整点,产生“嘀 嘀嘀嘀-嘟”,4短一长的报时音)等附加功能。 三、关键词:24进制、60进制、正点报时、校时、数字钟 四、总体方案:多功能数字钟控制电路框图是由三部分组成 的,即秒分时控制电路、整点报时控制电路、 时段控制电路。用Verilog HDL硬件描述语 言完成编译和仿真。 五、原理框图如下: ↓ ↓ ↓ 六、Verilog HDL硬件描述语言编写的功能模块: /*秒计数器m60*/

module m60(M,CP60M,CPM,RD); output [7:0]M; output CP60M; input CPM; input RD; reg [7:0]M; wire CP60M; always@(negedge RD or posedge CPM) begin if(!RD) begin M[7:0]<=0; end else begin if((M[7:4]==5)&&(M[3:0]==9)) begin M[7:0]<=0; end else begin if(M[3:0]==9) begin M[3:0]<=0; if(M[7:4]==5) begin M[7:4]<=0;end else M[7:4]<=M[7:4]+1; end else M[3:0]<=M[3:0]+1; end end

基于FPGA的VerilogHDL数字钟设计

基于FPGA的Verilog-HDL数字钟设计--

————————————————————————————————作者:————————————————————————————————日期:

基于FPGA的Verilog HDL数字钟设计 专业班级姓名学号 一、实验目的 1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法; 4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计; 6.学会FPGA的仿真。 二、实验要求 功能要求: 利用实验板设计实现一个能显示时分秒的多功能电子钟,基本功能: 1)准确计时,以数字形式显示时、分、秒,可通过按键选择当前显示时间范围模式; 2)计时时间范围00:00:00-23:59:59 3)可实现校正时间功能; 4)可通过实现时钟复位功能:00:00:00 扩展功能: 5)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用板上LED或外接电路实现。 6)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---用板上LED或外接 7)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---用板上LED或外接

8)手动输入校时; 9)手动输入定时闹钟; 10)万年历; 11)其他扩展功能; 设计步骤与要求: 1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。 2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系 统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。 3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快 得出仿真结果)。 4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit文件。 5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。 三、实验设计 功能说明:实现时钟,时间校时,闹铃定时,秒表计时等功能 1.时钟功能:完成分钟/小时的正确计数并显示;秒的显示用LED灯的闪烁做指示; 时钟利用4位数码管显示时分; 2.闹钟定时:实现定时提醒及定时报时,利用LED灯代替扬声器发出报时声音; 3.时钟校时:当认为时钟不准确时,可以分别对分钟和小时位的值进行调整; 4.秒表功能:利用4个数码管完成秒表显示:可以实现清零、暂停并记录时间等功能。 秒表利用4位数码管计数; 方案说明:本次设计由时钟模块和译码模块组成。时钟模块中50MHz的系统时钟clk分频产

基于FPGA的数字钟设计

摘要 本设计为一个可调数字钟,具有时、分、秒计数功能,以24小时循环计数。本设计采用FPGA技术,以硬件描述语言VreilogHDL为系统逻辑描述手段设计文件,在QUARTUS2工具软件环境下,采用自顶向下的设计方法,由各个模块共同构建一个基于CPLD的数字钟。系统芯片采用6块74160实现了60进制(分、秒)、24进制(小时)的编译,由时钟模块、控制模块、计时模块、数据译码模块、显示模块组成。最终经过编译和仿真所涉及的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,可以在程序中直接改变初始值。 关键词:数字钟硬件描述语言VerilogHDL FPGA

1.实验目的 本实验主要内容涉及数字逻辑电路的设计、数字电路仿真软件Quartus Ⅱ以及VHDL 设计语言的学习与应用。实验目的在于让实验者掌握数字逻辑电路的设计方法和过程,并且能够熟练准确地设计出具有特定功能的较复杂数字逻辑电路,此外,实验者还应熟练掌握Quartus Ⅱ软件的设计、仿真以及编译下载的使用方法。 2 .课程要求 用Verilog 硬件描述语言设计数字钟,实现: 1.具有时、分、秒计数显示功能,以二十四小时循环计时。 2.具有调节小时、分钟功能。 3.具有整点报时功能。 3.系统设计总体方案 秒模块 时模块

4.各模块电路具体实现 4.1 时钟分频模块 module div_clk(clk_50MHz,clk_1Hz,clk_1KHz,clk_500Hz); input clk_50MHz; output clk_1Hz,clk_500Hz,clk_1KHz; reg clk_1Hz,clk_500Hz,clk_1KHz; reg [24:0] cnt1; reg [24:0] cnt2; reg [24:0] cnt3; always @(posedge clk_50MHz) begin if(cnt1 == 24999999) begin cnt1<=0; clk_1Hz=~clk_1Hz; end else cnt1<=cnt1+1'b1; end always @(posedge clk_50MHz) begin if(cnt2 == 24999) begin cnt2<=0; clk_1KHz=~clk_1KHz; end else cnt2<=cnt2+1'b1; end always @(posedge clk_50MHz) begin if(cnt3 == 49999) begin cnt3<=0; clk_500Hz=~clk_500Hz; end else cnt3<=cnt3+1'b1; end endmodule

基于FPGA的数字钟的设计

数字钟的设计 学生姓名:XXX 学生学号:20XX 院(系):电气信息工程学院 年级专业:20XX级电子信息工程班小组:XXXX 指导教师:XXXX 二零XX年X月XX日

摘要 本设计为一个多功能的数字钟,具有时、分、秒计数显示功能,以24小时循环计数;具有校对功能。 本设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段设计文件,在QUARTUSII工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。 系统由时钟模块、控制模块、计时模块、数据译码模块、显示以及组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,由按键输入进行数字钟的清零、启停功能。 关键词数字钟,硬件描述语言,VHDL,FPGA

Abstract The design for a multi-functional digital clock, with hours, minutes and seconds count display to a 24-hour cycle count; have proof functions function. The use of EDA design technology, hardware-description language VHDL description logic means for the system design documents, in QUAETUSII tools environment, a top-down design, by the various modules together build a FPGA-based digital clock. The main system make up of the clock module, control module, time module, data decoding module, display and broadcast module. After compiling the design and simulation procedures, the programmable logic device to download verification, the system can complete the hours, minutes and seconds respectively, using keys to cleared , start and stop the digital clock. Keywords digital clock,hardware description language,VHDL,FPGA

相关文档
最新文档