如果我有以下 VHDL-200X 架构:
architecture my_arc of my_entity is
signal test_char : std_logic_vector(7 downto 0);
signal test_char_c : character;
signal test_char_i : integer;
begin
test_char <= "01001010";
test_char_i <= to_integer(unsigned(test_char));
test_char_c <= character'val(test_char_i);
end architecture my_arc;
...并对其进行仿真(在 Xilinx iSim 14.1 中),即使取值test_char_c
为 ,它的初始值也不会改变。但是,如果我将架构中的最后一行替换为:NUL
test_char_i
74
process(test_char_i)
begin
test_char_c <= character'val(test_char_i);
end process;
...然后按照我test_char_c
的预期获得价值。J
我认为如果右侧的任何信号发生变化,将同时更新裸信号分配。换句话说,它相当于一个对分配中涉及的所有信号都敏感的过程。
为什么第一时间不test_char_c
更新?
编辑:更改test_char_i
为 anatural
不会改变结果。