У меня продолжают возникать проблемы / понимание с типами данных в VHDL. У кого-нибудь есть хороший ресурс, где я могу узнать больше об этом? Основная проблема, которую я имею, это понимание того, что такое тип данных. Например, каков тип данных при конкатенации '0' к типу данных std_logi c? Это продолжает быть std_logi c или это теперь std_logic_vector? При поиске оператора «+» в ieee numeric_std я вижу, что он принимает 2 типа данных без знака и должен выводить тип данных без знака. Не уверен, что лучший способ преобразования одного типа данных в другой. Зависит ли это от того, какой пакет вы используете? Должен ли я делать "unsigned ('0' & A)" ??? Я действительно расстроен этими ошибками из-за неправильных типов данных ... Любая помощь будет оценена. Я хочу узнать, как интерпретировать типы данных и что оператор / функции хочет / требует.:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity FullAdd is port (
A, B, Cin : in std_logic;
Sum, Cout : out std_logic);
end FullAdd;
architecture arch_FullAdd of FullAdd is
signal input : unsigned(1 downto 0);
begin
input <= ('0' & A) + ('0' & B) + Cin;
sum <= input(0);
Cout <= input(1);
end architecture arch_FullAdd;