Можно ли присвоить выходной порт по умолчанию, чтобы разрешить определение размера в случае, если порт не требуется? - PullRequest
0 голосов
/ 28 февраля 2019

Допустим, у меня есть объект, который выглядит следующим образом:

constant NULL_PORT  : std_logic_vector(1 to 0);

entity some_verification_ip is
port (
  write_port : in  std_logic_vector  := NULL_PORT;
  read_port  : out std_logic_vector        -- Sized on connection
);

В одном тесте пользовательское тестируемое устройство выполняет только чтение и поэтому подключает только порт чтения, а порт записи получает размер отприсвоение по умолчанию константе NULL_PORT.

В другом тесте DUT пользователя только выполняет запись и подключает только порт записи, но вы получаете ошибку разработки, поскольку read_port не имеет размера.Таким образом, пользователю требуется dummy_signal в тестовом стенде (который не используется) просто для того, чтобы избежать этой ошибки.

Вы не можете выполнить присваивание: = для вывода, так как это начальное значение, и вы получите уточнениеошибка, когда порт подключен, поскольку ширина NULL_PORT не соответствует соединению порта пользователя.

Является ли фиктивный сигнал в тестовом стенде единственным способом получить размер?Изменяется ли это в VHDL 2018?

ПРИМЕЧАНИЕ. На самом деле мой Verification IP является моделью памяти AXI4, и в проекте разные части обрабатывают операции чтения и записи, поэтому разные каналы не нужны для всех тестов, нонеобходимы для более масштабных тестов, охватывающих операции чтения и записи.

...