项目中两个verilog代码设计技巧

今天写两个项目中用到的两个代码设计技巧!

技巧一:当某信号出现下降沿时,输出一个clk时钟周期的高电平使能信号,程序代码如下:

 assign f_in_edge = (~f_in_m)&f_in_n;  // producting one period negedge singnal

always @(posedge sys_clk or negedge rst_n) begin //to product one period negedge singnal for f_in
  if(!rst_n) begin
   f_in_m <= 1'b0;
    f_in_n <= 1'b0;
    end
else begin
   f_in_n <= f_in_m;
   f_in_m <= f_in;
end
end

技巧二:信号在低电平时对clk时钟个数进行计数

always @(negedge rst_n or posedge sys_clk) begin //account for err_phase
if(!rst_n) begin
      err_phase <= 0;
      err_phase_up_flag <= 0;
      err_phase_temp <= 0;
end
else if(!up) begin
       err_phase_temp <= err_phase_temp + 1'b1;
       err_phase_up_flag <= 1;
end
else if(err_phase_up_flag) begin
     err_phase_up_flag <= 0;
     err_phase <= err_phase_temp;
end
else
     err_phase_temp <= 0;
end

注意:err_phase_up_flag 标志非常重要

今天就记录这两个代码写作技巧,这些都是项目中用到的一些程序设计技巧!项目完成就把整个代码分享出来

猜你喜欢

转载自www.cnblogs.com/mysoulmate/p/10493232.html