ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:187.01KB ,
资源ID:5046406      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5046406.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ISE实现多功能数字钟设计Word格式文档下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

ISE实现多功能数字钟设计Word格式文档下载.docx

1、 。nCLR(nCR), .CLK_1HzOut(CP_1Hz);/用以时钟计数的CP defparam U0。N = 25, U0。CLK_Freq = 50000000,OUT_Freq = 1; Divider50MHz U1(。CLK_50M(CLK_50), .CLK_1HzOut(CP_200Hz);/用以动态扫描的CP,供给数码管 defparam U1。N = 18, U1.CLK_Freq = 50000000, U1。OUT_Freq = 200; /=60进制秒计数器= Scounter10 S0(TSecond3:0,nCR,EN,CP_1Hz);/秒:个位 Scoun

2、ter6 S1(TSecond7:4,nCR,(TSecond3:0=4h9),CP_1Hz);十位 /=60进制分计数器= Mcounter10 M0(TMinute3:0,nCR,ENM_L,EN,CP_1Hz);/分: Mcounter6 M1(TMinute7:4,nCR,ENM_H,EN,CP_1Hz); assign ENM_L=Adj_Min?Vdd:(TSecond=8h59);/分钟按书上CP调时 assign ENM_H=(Adj_Min(TMinute3:0=4h9)|(TMinute3:0=4h9)&(TSecond=8h59); /24小时制 counter24 H0

3、(Hour_247:4,Hour_243:0,nCR,ENH,EN,CP_1Hz); assign ENH = Adj_Hour?(TMinute=8h59)(TSecond=8h59); /=12小时与24小时进制切换控制= assign Display_HourAdjust=(Hour_24=8h20)|(Hour_24=8h21)?(Hour_24-24):(Hour_2418); assign Hour_12 = (Hour_248h13)?Hour_24:Display_HourAdjust; assign Display_HourT = Hchange?Hour_12:Hour_2

4、4; /=闹钟= /-时钟秒- /counter60 CCS(nCR,CP_1Hz,EN,CSecond7:4,CSecond3:0); /-时钟分- counter60 CCM(nCR,CP_1Hz,CMin_EN,CMinute7:4,CMinute3:0); /-产生分使能信号- assign CMin_EN = (!EN & Adj_Clock & Adj_Min); /-时钟时- Counter24C CCH(nCR,CP_1Hz,CHour_EN,CHour7:4,CHour3:0); /-产生时使能信号- assign CHour_EN = (!EN & Adj_Clock &

5、Adj_Hour); /-闹钟响 always(EN or Clock_EN) /闹钟开关 begin if(EN & Clock_EN & (CHour = Display_HourT) & (CMinute = TMinute)Alarm = 1; else Alarm = 0; end always(posedge CLK_50 or negedge EN or negedge Alarm) /表示闹钟的LED if(EN) Led_Alarm = 0; else begin if(Alarm) Led_Alarm = 0; else Led_Alarm = Led_Alarm; end

6、 /alarm_clock AL0(Hour24,Minute,CP_1Hz,Set_Alarm,Close_clock,nCR,KeySet_Hour_ev,KeySet_Minute_ev,LD_7,Alarm_Hour,Alarm_Minute); /=数码显示= always(Adj_Clock)/确定数码管显示闹钟还是正常时钟 if(Adj_Clock) begin Display_Hour = CHour;Minute = CMinute;end else begin Display_Hour = Display_HourT;= TMinute; end always(posedg

7、e CP_200Hz) begin if(Change=1) /数码管进行时分显示 begin case(HEX) 4b1110: begin HEX=4b0111; bcd= Display_Hour 7:4; end /第一根数码管显示小时十位 4b0111:b1011; bcd= Display_Hour 3:0; end /第二根显示小时个位b1011: begin HEX=4b1101; bcd= Minute 7:4; end /第三根显示分钟十位b1101:b1110;= Minute 3:0; end /第四根显示分钟个位 default:=0111; bcd=Display_

8、Hour 7:4; endcase end else /数码管进行秒显示,change为低电平时显示秒b1110:b1101;= TSecond 7: end /第三根显示秒十位 begin HEX=4b1110;= TSecond 3: end /第四根显示秒个位 default: begin HEX=1101; bcd= TSecond 7: end SEG7_LUT L0(HEX0,bcd); /调用数码管子函数/=整点报时=assign LD_6 = LD_6_RADIO; always(CP_1Hz) if(Minute7:0 = 8h00) & (counter7:0 (Hour_

9、247:4*10 + Hour_243:0) LD_6_RADIO = CP_1Hz; else= 0; always(posedge CP_1Hz) if(Minute7:0=8h00) counter7:0=counter7:0+1b1; else 0=8h00; end endmodule五、顶层模块设计图六、子模块设计1、50MHz分频器module Divider50MHz(CLK_50M,nCLR,CLK_1HzOut); parameter N = 25; /位宽 parameter CLK_Freq = 50000000; /50MHz时钟输入 parameter OUT_Fr

10、eq = 1; /1Hz时钟输出 input nCLR,CLK_50M; /输入端口说明 output reg CLK_1HzOut; /输出端口说明 reg N-1:0 Count_DIV; /内部节点,存放计数器的输出值 always(posedge CLK_50M or negedge nCLR) if(!nCLR) begin CLK_1HzOut = 0; Count_DIV else begin if(Count_DIV (CLK_Freq/(2*OUT_Freq)1)/计数器模 Count_DIV = Count_DIV + 1b1; /分频器计数加1 else begin /分

11、频器输出清零 CLK_1HzOut = CLK_1HzOut; /输出信号取反2、秒模10计数器module Scounter10(Q,nCR,EN,CP); input CP,nCR,EN; output Q; reg 3:0 Q; always (posedge CP or negedge nCR) begin if(nCR) Q = 4/异步清零 else if(EN) Q = Q; /暂停计数 else if(Q=4b1001) Q = 4b0000; else Q = Q + 1b1;3、秒模6计数器module Scounter6(Q,nCR,EN,CP); input CP,nC

12、R,EN; reg 3:0 Q; if(nCR) Q = 4b0000; else if(EN) Q else if(Q=4b0101) Q = 4b0000; else Q = Q + 1b1;4、分模10计数器module Mcounter10(Q,nCR,EN1,EN2,CP); input CP,nCR,EN1,EN2; output Q; reg 3:0 Q; always (posedge CP or negedge nCR) if(nCR) Q else if(EN1|!EN2) Q b1001) Q = 4b0000; else Q = Q + 1b1;5、分模6计数器modu

13、le Mcounter6(Q,nCR,EN1,EN2,CP); input CP,nCR,EN1,EN2; reg 3: if(nCR) Q = 4b0000; else if(EN1|EN2) Q = Q; else if(Q=4b0101) Q = 4b0000;= Q + 1b1;6、模24计数器module counter24(CntH,CntL,nCR,EN1,EN2,CP); input CP,nCR,EN1,EN2; output reg 3:0 CntH,CntL;/小时的十位和个位输出 always(posedge CP or negedge nCR) if(nCR) Cnt

14、H,CntL = 8 /异步清零 else if(EN1|EN2) CntH,CntL = CntH,CntL;/暂停计数 else if(CntH)2|(CntL9)(CntH)=2&(CntL)=3) CntH,CntL = 8 /对小时计数器出错时的处理 else if(CntH)=2&(CntL)3) /进行2023计数 begin CntH =CntH; CntL = CntL + 1b1; else if(CntL=9) /小时十位的计数=CntH + 1 CntL = 4b0000; else begin CntH = CntH;7、模60计数器module counter60(

15、nCLR,Clk,EN,CntH,CntL); input nCLR,Clk,EN; output reg 3:0 CntH,CntL; always(posedge Clk or negedge nCLR) if(nCLR) CntH,CntL = 0; /异步清零 else if(EN) CntH,CntL 5)|(CntL 9)(CntH = 5)&(CntL = 9) CntH,CntL = 8 /异常处理 else if(CntL = 9)= CntH + 1CntL = 0;end /十位计数 begin CntH = CntH;CntL = CntL + 1b1;end /个位计

16、数8、数码管显示module SEG7_LUT(oSEG,iDIG); input 3:0 iDIG; /二进制输入 output reg 6:0 oSEG; /7段码输出 always(iDIG) case(iDIG) 4h0: oSEG = 7b000_0001; 4h1: oSEG = 7b100_1111; 4h2:b001_0010; 4h3:b000_0110;h4:b100_1100;h5: oSEG = 7b010_0100;h6:b010_0000;h7: oSEG = 7b000_1111;h8: oSEG = 7b000_0000;h9:b000_0100; defaul

17、t: oSEG=7b1111111; endcase七、各模块仿真1、模10计数器测试代码:/ Inputs reg nCR; reg EN; reg CP; / Outputs wire 3:0 Q; / Instantiate the Unit Under Test (UUT) counter10 uut ( .Q(Q), 。nCR(nCR), .EN(EN), .CP(CP) );parameter PERIOD =40;/时钟信号周期设置为40nsalways beginCP=1b0;(PERIOD/2) CP=1#(PERIOD/2); initial begin / Initial

18、ize Inputs nCR = 0; EN = 1; CP = 1; / Wait 100 ns for global reset to finish 100; nCR=1; / Add stimulus here2、模6计数器测试代码: / Inputs reg nCR; reg EN; reg CP; counter6 uut (Q(Q), .nCR(nCR), EN(EN), CP(CP) );parameter PERIOD =40;CP=1b0;#(PERIOD/2) CP=1b1; nCR = 0; #100; nCR =1;3、模24计数器 wire 3:0 CntH;0 CntL; counter24 uut (CntH(CntH), .CntL(CntL), EN(EN), #(PERIOD/2) CP=1#(PERIOD/2); EN = 1;4、模60计数器 reg nCLR; reg Clk;0 CntH;0 CntL; counter60 uut ( .nCLR(nCLR), Clk(Clk), .EN(EN), CntH(CntH), .CntL(CntL)Clk=1b0;(PERIOD/2) Clk=1b1;(PERIOD/2); nCLR = 0; Clk = 1; nCLR=1; / Add stimulus h

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2