求助 子程序为什么没起作用啊?
eda吧
全部回复
仅看楼主
level 1
m377863814 楼主
module top_clock(
input cp,ncr,en,adj_min,adj_hour,
output[7:0]hour,minute,second
);
supply1 vdd;
wire sech_en,minl_en,minh_en,hour_en;
//60进制秒计数器
counter10 u1(second[3:0],ncr,en,cp);//个位
counter6 u2(second[7:4],ncr,sech_en,cp);//十位
//产生分钟计数器使能信号
assign minl_en=adj_min?vdd:(second==8'h59);
assign minh_en=(adj_min&&(minute[3:0]==4'h9))||(minute[3:0]==4'h9)&&(second==8'h59);
//60进制分钟计数器
counter10 u3(minute[3:0],ncr,minl_en,cp);//个位
counter6 u4(second[7:4],ncr,minh_en,cp);//十位
//产生小时计数器使能信号
assign hour_en=adj_hour?vdd:((minute==8'h59)&&(second==8'h59));
//24进制小时计数器
counter24 u5(hour[7:4],hour[3:0],ncr,hour_en,cp);
endmodule
//ncr=0异步清零,en=0暂停计数,cp时钟
module counter10(
input cp,ncr,en,
output reg[3:0]q
);
always@(posedge cp,negedge ncr)
begin
if(~ncr) q<=4'b0000;//ncr=0异步清零,
else if(~en) q<=q; //en=0暂停计数
else if(q==4'b1001)q<=4'b0000;
else q<=q+1'b1;
end
endmodule
module counter6(
input cp,ncr,en,
output reg[3:0]q
);
always@(posedge cp,negedge ncr)
begin
if(~ncr) q<=4'b0000;
else if(~en) q<=q;
else if(q==4'b0101)q<=4'b0000;
else q<=q+1'b1;
end
endmodule
这是 程序
封装之后,电路运行,子程序并没有作用 怎么 办?大神求助,急
2016年06月17日 14点06分 1
1