1、对应FPGA管脚说明S1按键开关S1R16调整小时S2按键开关S2P14调整分钟RST按键开关S8M15复位LEDLED模块D1L14整点倒计时LEDAG0数码管模块A段N4LEDAG1数码管模块B段G4LEDAG2数码管模块C段H4LEDAG3数码管模块D段L5时间显示LEDAG4数码管模块E段L4LEDAG5数码管模块F段K4LEDAG6数码管模块G段K5SEL0数码管选择位1M48个数码管SEL1数码管选择位2F3的选择位SEL2数码管选择位3F4CP脉冲源J350Mhz脉冲三.基于Verilog HDL语言的电路设计、仿真与综合(一)顶层模块本程序采用结构化设计方法,将其分为彼此独立又
2、有一定联系的三个模块,如图1所示:图1:顶层结构框图(二)子模块1.分频器分频器的作用是对50Mhz的系统时钟信号进行分频,得到频率为1000hz的信源程序如下:module fenpin(input CP, output CPout );reg CPout;reg 31:0 Cout;reg CP_E n;always (posedge CP ) / 将 50MHz分频为 1kHzbeg inCout = (Cout = 32d50000) ? 32dO : (Cout + 32d1);CP_E n 1d1 :d0;CPout = CP_E n;enden dmodule功能仿真波形如图2所
3、示(以五分频为例):B 0AnnnnmnfmnonmjWLrLrLrLnrLnnnnjmnnjmnnR r rP r raCFonti| : : ii ii iI iI : lJJ 1 1 Il i i i II i II l 1 1 i i i 1 1 i i 1i i i i ii i i I i 1 i 1 i iii h % “ i i I a i i i i 1 r u2.控制器和计数器控制器的作用是,调整小时和分钟的值,并能实现清零功能。计数器的作用是实现分钟和秒钟满60进1,小时则由23跳到00。当到达59分55秒的时候,LED灯会闪烁来进行报时。因为控制器和计数器的驱动信号频率
4、均为 1Hz,故从分频器输出的信号进入控制器后,要进行二次分频,由 1Khz变为1Hz源程序如下:module kongzhiqi( CPout,S1,S2,RET,Hour,Minute,Second,LED );in put CPout,S1,S2,RET;output 5:0 Hour; output 5:0 Mi nute;0 Second; output LED;reg 5: reg 5:reg R1;reg R2,R8,LED; reg 10:reg Clk_E n;always(posedge CPout)beginif(S1=0)R1=1;if(S2=0)R2=1;if(RET
5、=0)R8=1;Cout=(Cout=32d1000)?32d0:(Cout + 32 Clk_En=(Cout=321d1: if(Clk_En)if(R1=1)if(Hour24) Hour=Hour+1;if(Hour=24)Hour=0;R1=0;if(R2=1)if(Minute60)Minute=Minute+1;if(Minute=60)Minute=0;24)Hour=Hour+1; if(Hour=24) beginR2=0;if(Second55)/ 整点倒计时 beginif(LED=1)LED=0;elseLED=1;if(R8=1) 清零R8=0;endmodule功
6、能仿真波形如图 3 所示:3.显示器显示器的作用是将时一分一秒的值在数码管上依次显示出来。从分频器输出 的1Khz的信号作为数码管的扫描信号。SEL表示三个数码管选择位,它的取值 表示八个数码管,从左至右依次是 111000。LEDGA表示七段数码管,它的取值决定特定位数上显示的数字。 i.BAiarishiibz. _ _ _CPfiut SLL2. .0)i rr At i if n m SUJ )注_ . jAUWAUMUWUKMM-MMLUlUUUUUUULMMaUMWUWU&BHMMWWUWUMMUi*rLJ7F.rr i 、 i 可亦需 i i1 Hours.-Jj 1i Winu
7、tBlL.qr L u aS&c&rKj5.0i- - -ii1i instmodule xianshi( CPout,Hour,Minute,Second,SEL,LEDAG );in put CPout;in put Hour,Minute, Second; output SEL,LEDAG;reg 2:0 SEL;reg 6:0 Led;reg 3:0 shi1,ge1,shi2,ge2,shi3,ge3;always (posedge CPout ) beg inshiwei 1=H our/10; gewei 仁H our%10;shiwei2=Minute/10; gewei2=M
8、inute%10; shiwei3=Second/10;gewei3=Second%10; if(SEL=3b110) case(shiwei1)/判断位选SEL勺值,并将此位上的值输出到数码管4b0000:b0001:b0010:b0011:b0100:b0101:b0110:b0111:b1000:b1001: default: endcaseLed = 7b0111_111;b0000_110;b1011_011;b1001_111;b1100_110;b1101_101;b1111_101;b0000_111;b1111_111;b1101_111;b0000_000;if(SEL=3b101)case(gewei1)b100)Led=7b1000_000;b011)case(shiwei2)Led =
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1