Обычно вам не нужны входные порты.Особенно, если вы только начинаете использовать VHDL, придерживайтесь in или out.Inout используется для моделирования шин с тремя состояниями.Как указывает @wjl, вам нужно присвоить «Z» сигналу, если вы хотите иметь возможность прочитать то, что пишет другая сторона.
Кроме того, если вы пишете процедуры для последующего повторного использования, выне следует оборачивать их в сущность, а затем проверять сущность.Это просто вызывает дополнительные проблемы (как вы испытываете сейчас).Вместо этого вызывайте процедуру прямо со своего стенда, как если бы вы тестировали процедуру (или функцию) в программном обеспечении.