Я новичок в VHDL, и мне сложно понять, какие типы данных и где подходят. Если я правильно понимаю, для синтеза все порты сущностей верхнего уровня должны быть объявлены либо std_logic_vector, либо std_logic, и никогда какой-либо другой тип.
Но std_logic_vector не поддерживает арифметику, как мне с этим справиться?
Моя интуиция подсказывает мне, что я должен просто использовать std_logic_vector на верхнем уровне, а затем преобразовывать его в интегральные типы данных и обратно при передаче другим объектам. Это правильно?
А какой интегральный тип данных (целочисленный, беззнаковый, знаковый) где использовать? Я понимаю разницу между подписанным и неподписанным, но когда мне следует использовать целое число?