В тестовом стенде у меня есть проблема с процедурой, которую я хочу контролировать своим входным параметром, который является сигналом, этот сигнал может содержать количество моих внутренних входов И / ИЛИ выходов модуля / ов или объекта проектирования верхнего уровня,Теперь проблема в том, как я могу постоянно читать этот сигнал, который может динамически меняться.
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, которые делают невозможным переход к переменным.а входным параметром процедуры является сигнал.
Спасибо за все.: -О