首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 嵌入开发 >

VHDL有关问题:一个进程中不可同时对时钟上下沿敏感,那这写不算同时吗

2014-01-05 
VHDL问题:一个进程中不可同时对时钟上下沿敏感,那这写不算同时吗?PROCESS(Clock)...IF rising_edge(Clock)

VHDL问题:一个进程中不可同时对时钟上下沿敏感,那这写不算同时吗?
PROCESS(Clock)
...
  IF rising_edge(Clock) THEN
    ...
  END IF;
  IF falling_edge(Clock) THEN
    ...
  END IF;
END PROCESS;

VHDL有关问题:一个进程中不可同时对时钟上下沿敏感,那这写不算同时吗 VHDL
[解决办法]
PROCESS(Clock)
...
  IF rising_edge(Clock) THEN
    ...
  END IF;
  IF falling_edge(Clock) THEN
    ...
  END IF;
END PROCESS;
相当于
PROCESS(Clock)
...
  IF rising_edge(Clock) THEN
    ...
  END IF;
END PROCESS;

PROCESS(Clock)
...
  IF falling_edge(Clock) THEN
    ...
  END IF;
END PROCESS;
[解决办法]
楼上正解。两个if语句虽然在同一进程,但毫无关系,相当于两个进程。
同时对上升沿和下降沿敏感是指:if (rising_edge(Clock) and  falling_edge(Clock)) then
个人觉得PROCESS(Clock)
...
  IF rising_edge(Clock) THEN
  ELSE
      IF falling_edge(Clock) THEN
      ...
      END IF;
  END IF;
END PROCESS;
应该也是可行的,未亲测。
[解决办法]
VHDL不像FIRMWARE编程语言,编译通过就可以运行。它是硬件数字电路的实现。写代码要考虑硬件是一个什么电路。用什么触发器实现,还要考虑信号的SET UP TIME, HOLD TIME等等等等。。

热点排行