FPGA分频,仿真与实际结果不同

2019-07-15 23:17发布

系统时钟为40MHZ,40分频为1MHZ,仿真结果正确,但是实际结果占空比为6.25%。
换成50Mhz的时钟,结果就对了,换回40M还是不对。
怀疑时钟坏了,但是用示波器测试时钟,又是正确的。
百思不得其解啊,忘各位大神指教,谢谢!
附代码:
reg[4:0] sck_cnt;  //系统时钟计数器
reg[4:0] sck_cnt_n;  //sck_cnt的下一个状态

parameter FINISHED_P    =5'd9
parameter FINISHED_X    =5'd19;
always@(posedge SYSCLK or negedge RST_B)
begin
if(!RST_B)               
sck_cnt <= 5'h0;                       
else                                
sck_cnt <= sck_cnt_n;
end

always@(posedge SYSCLK)
begin
if(sck_cnt == FINISHED_X)                               
sck_cnt_n <= 5'h0;       
else                                 
sck_cnt_n <= sck_cnt + 5'h1;               
end


always@(posedge SYSCLK or negedge RST_B)
begin
if(!RST_B)
begin               
IO3 <= 1'h0;
end       
else                                
IO3 <= IO3_N;
end



always@(*)
begin
if(!RST_B)
IO3_N <= 1'h0;       
else if(sck_cnt == FINISHED_P)                               
IO3_N <= 1'h0;       
else if(sck_cnt == FINISHED_X)                                 
IO3_N <= 1'h1;       

end

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。