Как контролировать параметр ввода сигнала процедуры, которая может динамически меняться - PullRequest
0 голосов
/ 24 мая 2018

В тестовом стенде у меня есть проблема с процедурой, которую я хочу контролировать своим входным параметром, который является сигналом, этот сигнал может содержать количество моих внутренних входов И / ИЛИ выходов модуля / ов или объекта проектирования верхнего уровня,Теперь проблема в том, как я могу постоянно читать этот сигнал, который может динамически меняться.

 TYPE data_record IS ARRAY (natural range <>) OF STD_LOGIC;
 TYPE data_name_record IS ARRAY(natural range <>) OF STRING(1 TO 32);  

PROCEDURE MONITORING_VALUE( 
                            SIGNAL INPUTS_OUTPUT    : IN data_record ;
                            EXPECTED_VALUE          : IN data_record ;
                            INPUTS_OUTPUT_NAME      : IN data_name_record;
                            MONITORING_TIME         : IN TIME );

Альтернативой, которую я сейчас использую, является сопоставление этих входов / выходов с сигналом data_record_type:

SIGNAL INPUTS_ENTRED            :data_record(0 TO N-1) := ('0', '0', '0', '0');

=========================================================================== - КАРТОЧКА: - =================================================================================

INPUTS_ENTRED(0) <= input1;
INPUTS_ENTRED(1) <= input2 ;
INPUTS_ENTRED(2) <= input3;
INPUTS_ENTRED(3) <= output1;

Но это решение, я ограничен количеством отображенных входов / выходов, которые делают мою процедуру не полезной для всех (например, если у меня есть 69 входов и 9 выходов, которые мне нужны для контроля их комбинации на каждом шаге).

Я читал о типе доступа в vhdl, но, как я видел, это переменные для переменных, и я использую атрибуты signal и 'last_event, которые делают невозможным переход к переменным.а входным параметром процедуры является сигнал.

Спасибо за все.: -О

1 Ответ

0 голосов
/ 24 мая 2018

Сигнал INPUTS_OUTPUT никогда не изменит длину, поскольку это сигнал.Таким образом, вы можете просто прочитать INPUTS_OUTPUT'length внутри процедуры, чтобы увидеть, как долго это будет.

...