微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 怎么判断输入方波信号的上升沿

怎么判断输入方波信号的上升沿

时间:10-02 整理:3721RD 点击:
输入一个方波信号,与时钟信号,方波信号与时钟信号之间的关系是不确定的,但是之间的周期相差比较大。现在怎么来判断这个方波上升沿啊

signal clk_r1 : std_logic;
process(clk)
begin
     if rising_edge(clk) then
          clk_r1 <= Square_wave;
    end if;
end process;
pulse_signal <= clk and (not clk_r1);

不好意思,不知道哦。

小编自问自答吗
但是如果信号和时钟关系不定的话,是不是当作异步处理,再多加一级锁存,否则pulse_signal可能是个很窄的脉冲

把时钟作为采样时钟  方波信号作为被采样信号 , 将方波信号延迟两排 ,如 :
always@(posedge clk or negedge reset)
begin
  if(!reset)
   begin
     reg_signal1<=1'b0;
     reg_signal2<=1'b0;
   end
  else
     begin
       reg_signal1<=signal;
       reg_signal2<=reg_signal1;
     end
end
上升沿 即是   (!reg_signal2 && reg_signal1) == 1;

一楼正解

要判断方波的上升沿,首先要保证系统时钟频率要比方波信号的频率高。
然后用系统时钟将输入的方波信号寄存在一个两位的寄存器中(MSB:signal_i_d,LSB:signal_i),寄存器的值为10(或01),说明是上升沿(或下降沿)

把方波当做采样对象嘛,两级锁存用异或的方式就可以判断了

要区分快采慢 还是 慢采快,区别对待。快采慢很容易,两级触发器级联处理;慢采快,先展宽后,再两级触发器级联处理

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top