VHDL std_logic_vvector中存在索引溢出



我对以下关于len:索引溢出的VHDL代码有疑问

library ieee;
    use ieee.std_logic_1164.all;    
    use ieee.numeric_std.all;  
    package mypack is  
       subtype small_int is integer range 0 to 3;    
    end mypack;
library ieee;
    use ieee.std_logic_1164.all;    
    use ieee.numeric_std.all;    
    use work.mypack.all;   
entity top is    
   port(
        CLK        : in std_logic;    
        rst        : in std_logic;
        myPtr      : in small_int; 
        temp       : in unsigned(1 downto 0); 
        myout     : out std_logic_vector(3 downto 0));    
end entity;    
architecture rtl of top is
   signal len : std_logic_vector(3 downto 0)  := (others=>'0');         
   constant si : small_int := 1;
begin
    myout    <= len;
    process(clk,rst) begin
       if (RST='1') then
          len <= "0000";
       elsif rising_edge(CLK) then 
          len(myPtr - si) <= temp(0);         
       end if; 
    end process;    
end architecture;

myPtr = 0:时的正确行为应该是什么

  1. len(3) <= temp(0);会发生吗
  2. 或者,是否会出现流量过大的情况?这意味着len(3)将始终保持在0

提前谢谢。

在模拟中,超出范围的索引值将生成错误。

在硬件中,超出范围的索引值会导致未定义的操作,因此可能会发生任何更新或不进行更新。