Process 如果在架构中有';同一信号有两个不同的赋值,但一个进程中有一个?

Process 如果在架构中有';同一信号有两个不同的赋值,但一个进程中有一个?,process,vhdl,Process,Vhdl,我想知道我们应该如何解释这个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 =

我想知道我们应该如何解释这个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;
ieee库;
使用ieee.std_logic_1164.all;
实体示例是
端口(A,B:在标准逻辑中,
Y:输出标准(U逻辑);
结束示例;
示例的架构测试已经开始

Y正如user1155120所说,您实际上有两个并发进程,每个进程驱动
Y
。将一个过程(隐式和显式)看作是一个模拟一点硬件的一点软件。两个有两个进程,所以你有两个小的硬件

每一小块硬件都会驱动相同的信号(如果您愿意,可以用一小块电线)。所以,你短路了。因此,如果两个进程驱动相同的值,
Y
将采用该值。但是,如果它们驱动不同的值,则信号
Y
的值将解析为
'X'
(未知)-与实际硬件一样



顺便说一句:您的显式流程不模拟组合逻辑,而是模拟顺序逻辑。它的行为就像一个门闩。这是因为如果
a
不等于
'1'

,则未指定
Y的值。这两个驱动器在这里解决了。哦,原来是短路!我们刚刚开始研究vdhl,所以我真的不知道它到底是如何工作的,我们在课程中有这个例子,但没有答案。非常感谢。