记录从不同进程分配的字段

时间:2014-04-11 12:13:05

标签: vhdl

当我从不同的进程分配记录的不同成员时,会发生一些奇怪的事情。这是什么原因?

type t_collection is record
   A : std_logic;
   B : std_logic;
end record;

signal collection : t_collection ;

begin

collection.A <= '1';

process(Clk) is
begin
   if rising_edge(Clk) then
      collection.B <= '1';
   end if;
end process;

在模拟器中,collection.A解析为&#39; X&#39;和collection.B解析为&#39; 1&#39;。

1 个答案:

答案 0 :(得分:0)

我同意@ fru1bat,除非在“collection.B”的赋值中有更多代码,看起来您的模拟器中可能有错误。

对于Testbench应用程序,您可以为信号提供所有“Z”的初始值:

signal collection : t_collection := (A => 'Z', B => 'Z') ;

对于RTL,我怀疑综合工具会喜欢这个。