怎样检测最后一个脉冲

2020-02-03 10:33发布

本帖最后由 yuzhexian 于 2016-10-17 20:03 编辑

QQ截图20161015071050.png

上面是周期信号/tg,下面是输入信号va,一个周期内,
输入信号有1到4个脉冲不等,怎样鉴相最后一个或者取出最后一个脉冲,求大神帮忙。 QQ截图20161015081621.png QQ截图20161015080837.png

现在用d触发器鉴相,只能得到第一个脉冲的鉴相信号,求解决方法需要的信号是这样的:

QQ截图20161015090217.png

已找到方法,编了一段程序
library IEEE;
use IEEE.std_logic_1164.all;
entity va4 is
  port (     
        va: IN std_logic;
        tg: IN std_logic;
        q: OUT std_logic
        );
end va4;
Architecture COUNT_3 of va4 is
signal q1: std_logic;
Begin
process(tg,va)
VARIABLE C: INTEGER RANGE 0 TO 4;
  begin
  if(tg='0') then
        q1<='1';
  elsif(va'event and va='1') then
       C:=C+1;
      if(C=4) then q1<='0'; C:=0;
     ELSE q1<='1';
    end if;
  end if;
end process;
q<=q1;
END COUNT_3;

QQ截图20161017195358.png
可惜不够灵活,va信号只能要求4个,不能1-4任意几个,实用价值不高,
在此谢谢大家的回复关注,先结贴了,以后慢慢讨论。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
玄德
2020-02-04 20:59
yuzhexian 发表于 2016-10-16 08:08
写了一段程序,但q输出端横为高电平,麻烦看下哪里错了
tg是周期信号,va是输入信号,q是检测第四的脉冲的 ...


1、好像没看到复位逻辑,
2、相等的比较,是=而不是==,确定吗?
3、信号不变化,说明没有对应的条件,或者有条件但执行错。

还是建议学校modelsim仿真,初学者必备,
所有信号、变量的值都显示,找问题就方便。


一周热门 更多>