STD_LOGIC_VECTOR нарезать и построить его снова проблема с помощью оператора case? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующий код

    use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.all;

entity LUT is
    Port ( LUTin : in STD_LOGIC_VECTOR (15 downto 0);
           LUTout : out STD_LOGIC_VECTOR (15 downto 0));
end LUT;

architecture Behavioral of LUT is
signal fullout : std_logic_vector(15 downto 0);
signal tophalf : std_logic_vector(7 downto 0);
signal secondnibble, firstnibble : std_logic_vector(3 downto 0); --break the LSH into 2 nibbles

begin
 tophalf(7 downto 0) <= LUTin(15 downto 8);
 secondnibble(3 downto 0) <= LUTin(7 downto 4);
firstnibble(3 downto 0) <= LUTin(3 downto 0);

 fullout(15 downto 8) <= tophalf(7 downto 0);
--fullout(7 downto 4) <= "0001"; 
fullout(3 downto 0) <= firstnibble(3 downto 0);
p1: process
begin
   case secondnibble is
    when "0000" => --0 Sbox1
       fullout(7 downto 4) <= "0001";
    when others => 
    end case;
    end process;
end Behavioral;

Я могу закомментировать оператор case из p1: process до конечного процесса и прокомментировать в полном объеме (от 7 до 4) <= "0001"; и это поместит 0001 в 7-4 бита в полном объеме. то, что я хочу сделать, это дать ему 0001, когда LUTin (7 до 4) <= "0000" ;. поэтому мне нужно поместить оператор case и процесс p1: как указано выше. но это означает, что полный аут (от 7 до 4) оставлен как «U». Как это работает, если его нет в операторе case и оставить как U в выражении case? Я буду делать то же самое для полного диапазона secondnibble. это всего лишь упрощенная инструкция, поэтому я могу понять, как это сделать </p>

1 Ответ

0 голосов
/ 07 ноября 2018

Да. Пожалуйста, инициализируйте fullout значение перед ключевым словом "begin" архитектуры, например:

architecture Behavioral of LUT is
signal fullout : std_logic_vector(15 downto 0) := (others => '0'); 

Это убьет неоднозначность и, следовательно, состояние U. Пожалуйста, имейте в виду, всегда инициализируйте все выходы, таким образом, чтобы уменьшить неоднозначность на стороне синтезатора и симулятора.

...