VHDL присваивает номер имени сигнала - PullRequest
0 голосов
/ 24 мая 2019

Я собираюсь использовать случайные числа, чтобы выбрать сигнал, но не могу присвоить номер имени этого сигнала.

В этом коде у меня есть три входных порта, их имена: A1B, A2B,A3B, A4B

теперь я хочу использовать их случайным образом с помощью функции rand от 1 до 4.

rand = 4, then input A4B selected.
rand = 2, then input A2B selected.
rand = 3, then input A3B selected.

Это не массив, который я использую simple ().

for (i=1; i<5; i++)
   A[i]B = 1 + i;

как то так.

1 Ответ

1 голос
/ 24 мая 2019

Простой и читабельный подход будет использовать switch случаев.

Если вы не хотите иметь switch или if-else.

Иметь массив указателей, указывающих на тепеременные.

Пример:

int A1B,A2B,A3B,A4B;
int *ptr[] = {&A1B, &A2B, &A3B, &A4B};

for (i=1; i<5; i++)
   *ptr[i-1] = 1 + i;

Примечание: вам нужно разыменовать ptr[i] для доступа к значению, а *ptr[1] даст вам A2B.


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

пример:

int AxB[100];
...