在 VHDL 中不关心和空做什么?

  • 本文关键字:VHDL 不关心 vhdl
  • 更新时间 :
  • 英文 :


在VHDL中设置一个不关心的值实际上意味着什么?另外,将值设置为不在乎与将其设置为空有什么区别?下面是我正在做的实验室的一个片段:

with selector select
mux_data_selected <=    Channel_1_registered_data when '0';
Channel_2_registered_data when '1';
(others => '-') when others;

mux_data_selected的元素类型可能为std_ulogic或二者之一。回答你的最后一个问题,这些类型中没有null值,所以不能赋值(others => null)

null是一个空指令,它什么也不做,有时用来表示在控制流的分支中没有什么可做的,并且是故意的。

也是一个指针值(访问类型)。最后,我们有时会讨论null数组,但这意味着数组的范围为空,例如1 to 0。如果你的vector有一个非空范围,你不能给它赋一个空数组值,这会导致错误。

-don't care值是std_ulogic枚举类型的9个值之一。顾名思义,它适用于您不关心值的情况。要么是因为你知道这种情况在现实生活中永远不会发生,要么是因为当这种情况发生时,你没有使用这个信号。

一个足够智能的逻辑合成器可以使用此指示来实现任何实际的'0''1'值,从而提高一个度量(速度,面积,功率…)而如果你编码,例如'0',合成器被迫服从,这可能导致速度,面积或功率浪费。

正如@user16145658所指出的,'-'值也被VHDL2008STD_MATCH函数和预定义的匹配关系操作符(?=,?/=,?<,?<=,?>?>=)视为匹配任何通配符。所以你也可以用它来进行软比较。

最新更新