1.计数器
项目要求:进行VGA驱动学习的时候,需要对水平时序的脉冲进行计数,按照计数值输出行同步信号lcd_hs。
output lcd_hs ;//行同步信号
reg lcd_hs ;
reg[9:0] lcd_hs_cnt ;//count for lcd_hs:0-799
//行同步信号
always @(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
lcd_hs <= 1'b0;
end
else if(lcd_hs_cnt == 10'd95)begin
lcd_hs <= 1'b1;
end
else if(lcd_hs_cnt == 10'd799)begin
lcd_hs <= 1'b0;
end
end
错误:将行计时器lcd_hs_cnt与行同步信号lcd_hs写反,通过判断lcd_hs来给lcd_hs_cnt赋值,导致lcd_hs一直是低电平。显示器显示VGA没有输出信号,此时应该考虑是行同步信号lcd_hs或者场同步信号lcd_vs有错误。
错误很致命,查看代码也不太容易找到错误点,下次注意计数器的判断条件是否写错。
错误2.
20210409
//在进行if..else if..else if..else的时候,漏写了后面的else if中的else,导致判断条件不足,只进行了最后的else模块
if()begin
//
end
else if()begin
//
end
else if()begin
//
end
else
//
end