要求测脉冲于脉冲之间的间隔,ipClock是时钟,ipSignal是脉冲的输入,opNum是输出,现在程序编译后,temp的寄存器好像被编译器忽略了,并没有锁存数据,求解如何解决,谢谢!
module cpld(opNum,ipClock,ipSignal);
output[7:0] opNum;
input ipClock,ipSignal;
reg[17:0] iClkC1;
reg[17:0] temp;
reg[7:0] opNum_reg;
always@(posedge ipClock)
begin
begin
iClkC1=iClkC1+1;
end
end
always@(ipSignal)
begin
if(ipSignal)
temp<=iClkC1;
end
always@(temp[7:0])
begin
if(temp[17:8]==10'b0111010100) //在10ms的范围内
begin
if(temp[7:0]>=8'b11010010 &&temp[7:0]<8'b11011000) //+2
opNum_reg=8'b11101111;
else if(temp[7:0]>=8'b11000110 &&temp[7:0]<8'b11010010 )
opNum_reg=8'b11110111;
else if(temp[7:0]>=8'b10110100 &&temp[7:0]<8'b11000110 )
opNum_reg=8'b11111011;
else if(temp[7:0]>=8'b10101000 &&temp[7:0]<8'b10110100 )
opNum_reg=8'b11111101;
else if(temp[7:0]>=8'b10011100 &&temp[7:0]<8'b10101000 )
opNum_reg=8'b11111110;
end
end
assign opNum=opNum_reg;
endmodule |