VHDL数组索引和X优化

时间:2020-09-09 16:06:48

标签: vhdl

在Verilog中,您可以将逻辑向量用作另一个向量的索引:

assign idx = 4'b0010;
assign value = array[idx];  // same as array[2]

在VHDL中无法做到这一点,必须将类型转换为整数:

idx <= "0010";
value <= array(to_integer(idx)); -- same as array(2)

如果索引中包含X或Z会发生什么?就我而言,我有一个未初始化的索引寄存器:

idx <= "xxxx";
value <= array(to_integer(idx));  -- to_integer("xxxx") ???

在我公司,我们使用内部类型转换例程库,因此我实际上并没有直接使用to_integer,但是我们乐观地将X转换为0。从Verilog的背景来看,这似乎非常错误,并且X乐观的严重案例。在Verilog中,X会传播:

assign idx = 4'bxxxx;
assign value = array[idx];  // same as array[x], which is equal to X

VHDL是否可以在索引表达式中使用X?是否有建议的最佳实践来避免x乐观(“使用Verilog”之外)?

0 个答案:

没有答案
相关问题