У нас есть задание, в котором у нас есть какой-то испорченный код VHDL для 4-битного мультиплексора (с использованием Modelsim), и мы должны исправить ошибки и получить код для компиляции и запуска моделирования. Мне удалось получить код для компиляции, но когда я пытаюсь запустить моделирование, я получаю сообщение об ошибке в строке 5. Вот мой код:
library ieee; -- line 1
use ieee.std_logic_1164.all; -- line 2
-- line 3
entity find_errors is
port ( -- line 4
a: in std_logic_vector(0 to 3); -- line 5
b: out std_logic_vector(3 downto 0); -- line 6
c: in std_logic_vector(5 downto 0)); -- line 7
end find_errors; -- line 8
-- line 9
architecture not_good of find_errors is -- line 10
begin -- line 11
my_label: process (a,c) is -- line 12
begin -- line 13
if c = "001111" then -- line 14
b <= a; -- line 15
else -- line 16
b <= "0101"; -- line 17
end if; -- line 18
end process; -- line 19
end not_good; -- line 20
Нам сказали, что нам может понадобиться использовать функцию преобразования, например to_stdlogicvector (), чтобы завершить это. Нам также говорят не пытаться фиксировать битовые порядки между векторами a и b.
Когда я пытаюсь запустить симуляцию, я получаю следующую ошибку:
** Fatal: (vsim-3807) Types do not match between component and entity for port "a".
Оцените это, если кто-нибудь может помочь мне понять эту ошибку.