FQU6P25 EDA技术和可编程器件的设计
发布时间:2020/1/24 17:27:19 访问次数:3038
fqu6p25例7,5,2 设计一个具有时、具有分、时校正采用分层次分模
解:(1)设计分析冲频率为1 hz。功能,校正输人脉冲频率为1 hz。块的方法,用verilog语言进行设计。数字钟组成框图
数字电子钟的组成框图如图7.5.2所示,它由2个六十进制计数器、1个二十四进制计数器和2个2选1选择器共5个模块构成,3个计数器公用一个时钟信号cp,为同步8421bcd码输出的计数器,在秒、分、小时计数器的输出端接上点画线框内的译码显示电路,即可显示出数码(即时间)。
图7.5.2中两个选择器分别用于选择分计数器和时计数器的使能控制信号。对时间进行校正时,在控制端(a吻~ho″、⒕砑~m沅)的作用下,使能信号接高电平,此时每来1个时钟信号,计数器加1计数,从而实现对小时和分钟的校正。正常计时时,使能信号来自于低位计数器的输出,即秒计数器计到59s时,产生输出信号(sco=1)使分计数器加1,分、秒计数器同时计到最大值(59 min59 s)时,产生输出信号(mco・1)使小时计数器加1。
逻辑设计用eda技术和可编程器件的设计,进制数器选择器抵me
counter10 u3(minute[3:0],ncr,minl~en,cp); //分计数器个位
counte诵u4(minute[7:4],ncr,minh工en,cp); //分计数器十位
//产生小时计数器使能信号。adj~hour=1,校正小时;
//adj~hour=0,小时正常计时
assign hour~en=acli~hour?vdd:((iminute==8’h59)&&(second==81h59));
//二十四进制小时计数器:调用二十四进制底层模块构成
counter24 u5(hour[7:4],hour[3:0],ncr,hour~en,cp);//`l`时计//数器
endmodule
m,odule counter10(q,ncr,en,cp);
input cp,ncr,en;
output[3:0] q;
reg [3:0]q;
always@(posedge cp or negedge ncr-)
begin
if(~ncr) q c41b0000;//ncr=0,计数器被异步清零
else if(~en)q《=q; //en=0,暂停计数
ense if(q==4i b1001)q(=41b0000;
else qcq+1i bl; //计数器增1计数
end
endmodule
mlodule counter6(q,ncr,en,cp);
input cp,ncr,en;
output[3:0] q;
reg [3:0]q;
always@(posedge cp or negedge ncr)
begin
if(~ncr)q(4i b0000; //ncr=0,计数器被异步清零
else if(~en) q 《= q; //enˉ=0,暂停计数
eise if(q ==41 bo101)q 《= 4i b0000;
else q《-q+11b1; //计数器增1计数
eda技术和可编程器件的设计例题
深圳市唯有度科技有限公司http://wydkj.51dzw.com/
fqu6p25例7,5,2 设计一个具有时、具有分、时校正采用分层次分模
解:(1)设计分析冲频率为1 hz。功能,校正输人脉冲频率为1 hz。块的方法,用verilog语言进行设计。数字钟组成框图
数字电子钟的组成框图如图7.5.2所示,它由2个六十进制计数器、1个二十四进制计数器和2个2选1选择器共5个模块构成,3个计数器公用一个时钟信号cp,为同步8421bcd码输出的计数器,在秒、分、小时计数器的输出端接上点画线框内的译码显示电路,即可显示出数码(即时间)。
图7.5.2中两个选择器分别用于选择分计数器和时计数器的使能控制信号。对时间进行校正时,在控制端(a吻~ho″、⒕砑~m沅)的作用下,使能信号接高电平,此时每来1个时钟信号,计数器加1计数,从而实现对小时和分钟的校正。正常计时时,使能信号来自于低位计数器的输出,即秒计数器计到59s时,产生输出信号(sco=1)使分计数器加1,分、秒计数器同时计到最大值(59 min59 s)时,产生输出信号(mco・1)使小时计数器加1。
逻辑设计用eda技术和可编程器件的设计,进制数器选择器抵me
counter10 u3(minute[3:0],ncr,minl~en,cp); //分计数器个位
counte诵u4(minute[7:4],ncr,minh工en,cp); //分计数器十位
//产生小时计数器使能信号。adj~hour=1,校正小时;
//adj~hour=0,小时正常计时
assign hour~en=acli~hour?vdd:((iminute==8’h59)&&(second==81h59));
//二十四进制小时计数器:调用二十四进制底层模块构成
counter24 u5(hour[7:4],hour[3:0],ncr,hour~en,cp);//`l`时计//数器
endmodule
m,odule counter10(q,ncr,en,cp);
input cp,ncr,en;
output[3:0] q;
reg [3:0]q;
always@(posedge cp or negedge ncr-)
begin
if(~ncr) q c41b0000;//ncr=0,计数器被异步清零
else if(~en)q《=q; //en=0,暂停计数
ense if(q==4i b1001)q(=41b0000;
else qcq+1i bl; //计数器增1计数
end
endmodule
mlodule counter6(q,ncr,en,cp);
input cp,ncr,en;
output[3:0] q;
reg [3:0]q;
always@(posedge cp or negedge ncr)
begin
if(~ncr)q(4i b0000; //ncr=0,计数器被异步清零
else if(~en) q 《= q; //enˉ=0,暂停计数
eise if(q ==41 bo101)q 《= 4i b0000;
else q《-q+11b1; //计数器增1计数
eda技术和可编程器件的设计例题
深圳市唯有度科技有限公司http://wydkj.51dzw.com/