我想知道我们应该如何解释这个vhdl代码 vhdl说明描述了哪种硬件?
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY Example IS
PORT ( A,B : IN std_logic,
Y : OUT std_logic);
END Example;
ARCHITECTURE test OF example IS BEGIN
Y <=A AND B;
proc1 : PROCESS (A,B) IS
BEGIN
IF (A = ’1’) THEN Y <=B;
END IF;
END PROCESS proc1;
END test;
Y是采用过程给定的值,还是采用A AND B并忽略过程?
答案 0 :(得分:1)
正如user1155120所说,您实际上有两个并发进程,每个进程驱动Y
。可以将一个过程(隐式和显式)视为一点点软件来模拟一点点硬件。两个有两个过程,因此您有两个小小的硬件。
每个硬件都会驱动相同的信号(如果您愿意的话,也可以接一点线)。因此,您发生短路。因此,如果两个进程驱动相同的值,则Y
将采用该值。但是,如果它们驱动不同的值,则信号Y
的值将被解析为 到'X'
(与真实硬件一样)。
顺便说一句:您的显式过程不对组合逻辑建模,而对顺序逻辑建模。它的行为就像一个闩锁。这是因为如果Y
不等于A
,则没有为'1'
指定值。