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