2016-05-13 4 views
1

У меня есть сомнения в следующий код VHDL относительно индекса переполнения len:переполнение индекса в VHDL std_logic_vector

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. Would len(3) <= temp(0); произошло?
  2. Или, будет ли индекс по потоку? Это означает, что len(3) всегда останется на уровне 0.

Заранее спасибо.

+1

Если myPtr = 0 и у вас есть фронт, то len (myPtr-si) <= temp (0) будет len (0-1) <= temp (0), и у вас будет отрицательный индекс ... и я уверен, что это не нормально. – 23ars

+1

Наиболее очевидная потенциальная потенциальная проблема заключается в том, когда MyPtr = 0 минус 1 (si) дает -1, который выходит за пределы допустимого диапазона MyPtr (small_int от 0 до 3) и выходит за пределы len (3 до 0). – user1155120

+0

Точно то, что я написал! – 23ars

ответ

0

В моделировании значение индекса вне диапазона генерирует ошибку.

В аппаратном обеспечении и вне диапазона значение индекса приводит к неопределенной операции, поэтому может произойти любое обновление или отсутствие.

+1

NB по крайней мере один симулятор (Xilinx ISIM, многие версии) по умолчанию отключает проверку диапазона. Найдите переключатель и включите ... –

Смежные вопросы