jssd 发表于 2011-4-20 16:12:05

小弟初学cpld请教大虾们一个关于获取信号上升沿和下降沿的问题

clk   :in std_logic;
cv_in :in std_logic;

signal cv_s :std_logic; --暂存
signal cvr:std_logic; --上升沿
signal cvp:std_logic; --下降沿

process(clk,cv_in)
begin
    if(clk'event and clk='1')then
      cv_s <= cv_in;
      cvr <= ((cv_s xor cv_in) and cv_in); --cvr=1 代表cv_in 上升沿到来
      cvp <= ((cv_s xor cv_in) and cv_s);--cvp=1 代表cv_in 下升沿到来

    end if;
end process;

我想获取cv_in的上升沿和下降沿这段程序对吗?

y595906642 发表于 2011-4-20 17:10:40

clk采到的信号序列中10是下降沿
                     01是上升沿

p.nicholas 发表于 2011-4-20 17:36:32

回复【楼主位】jssd龙
clk   :in std_logic;
cv_in :in std_logic;
signal cv_s :std_logic; --暂存
signal cvr:std_logic; --上升沿
signal cvp:std_logic; --下降沿
process(clk,cv_in)
begin
    if(clk'event and clk='1')then
      cv_s &lt;= cv_in;
      cvr &lt;= ((cv_s xor cv_in) and cv_in); --cvr=1 代表cv_in 上升沿到来
      cvp &lt;= ((cv_s xor cv_in) and cv_s);--cvp=1 代表cv_in 下升沿到来
    end if;
end process;
我想获取cv_in的上升沿和下降沿这段......
-----------------------------------------------------------------------

可不可以仿真一下就知道了
页: [1]
查看完整版本: 小弟初学cpld请教大虾们一个关于获取信号上升沿和下降沿的问题