VHDL问题:一个进程中不可同时对时钟上下沿敏感,那这写不算同时吗?
PROCESS(Clock)
...
IF rising_edge(Clock) THEN
...
END IF;
IF falling_edge(Clock) THEN
...
END IF;
END PROCESS;
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等等等等。。