请大家为我揭开一个Verilog-HDL的谜团!谢谢!
用单片机输出脉冲,XILINX——CPLD的十六位计数器计数正常,清零正常,但换了用CPLD输出脉冲为什么清零指令不正常的,而程序的赋值指令也不正常。我用的是秒脉冲信号计数与清零的。高电平计数,低电平先把十六位计数器赋值给十六位寄存器,在清零计数器。(问题是本应该清零的但没有清零,应该赋值的没有赋值成功!)
下面是我用Verilog-HDL写的程序的一部分请各位指教:
always @ (posedge ol)
begin
if(sec_reg)
begin
flag=1;
min1[3:0]=min1[3:0]+1;
if(min1[3:0]> 4'h9)
begin
min1[3:0]=4'h0;
min1[7:4]=min1[7:4]+1;
if(min1[7:4]> 4'h9)
begin
min1[7:4]=4'h0;
min1[11:8]=min1[11:8]+1;
if(min1[11:8]> 4'h9)
begin
min1[11:8]=4'h0;
min1[15:12]=min1[15:12]+1; if(min1[15:12]> 4'h9)
begin
min1[15:12]=4'h0; end
end
end
end
end
else if(flag)
begin
flag=0;
min[15:0]=min1[15:0];
min1[15:0]=16'b0; //问题在这里,为什么用单片机从OL引脚输入能 赋值,并清零,用另一个CPLD作为输入就不行?
end
end
发表时间:2003年4月10日21:47:49