【FPGA】实现信号的剪裁,截短和延迟

在实现sobel边缘检测的时候遇到了这样的问题

我们不需要边上的信号,那这时候应该怎么办呢?

我们需要对显示的使能信号进行剪裁,data_en。

【FPGA】实现信号的剪裁,截短和延迟_第1张图片

就像酱紫

那么如何实现呢?

首先第一种比较复杂的方法是用计数器。

如此:

 reg [9:0]cnt;
 
 always@(posedge CLK or negedge nRESET)
 begin
  if(!nRESET)
  begin
   cnt <= 10'd0;
  end
  
  else
  begin
   if(DVAL)
   begin
    if(cnt >= 1'd1 && cnt <= 10'd646)
    begin
     HDMI_DE <= DVAL;
    end
   
    else if(cnt == 10'd647)
    begin
     cnt <= 10'd0;
    end
    
    else
    begin
     cnt = cnt + 1'd1;
    end
   end
  end
 end
但是这样实现的前提是我们首先要知道DVAL就是datain这个信号的长度,当然如果知道了这样实现也是很复杂的。

第二种方法是:

 HDMI_reg <= DVAL;
 HDMI_reg1 <= HDMI_reg;
 assign HDMI_DE = ({HDMI_reg1,HDMI_reg,DVAL}=3'b111) ? HDMI_reg : 1'd0;

延迟两个信号然后使能中间的信号,得到截短信号。


酱紫 受教于imran

你可能感兴趣的:(FPGA)