Связывание (2) портов Bidr между (2) модулями в VHDL - PullRequest
0 голосов
/ 29 мая 2020

У меня есть ПЛИС, которая принимает 8-битную шину адреса и данных (1 шина используется для обоих) от двух микроконтроллеров. Используя мультиплексор 2: 1, моя FPGA выбирает только одно устройство ввода за раз (адрес и данные), и выбор основан на внешнем сигнале для FPGA. У меня также есть отдельный модуль декодера и регистра, который микро считывает и записывает. Итак, мой вопрос: как связать выходной сигнал двунаправленного канала с моего мультиплексора с модулем ввода двунаправленного канала декодера / регистра на более высоком уровне, используя назначение карты портов. Использование std_logic_vector (7..0) не будет работать, так как я получаю сообщение об ошибке «этот сигнал подключен к нескольким драйверам». Я думаю, мне нужно трижды заявить о двух, но я не уверен. Глядя на изображение ниже, я пытаюсь склеить зеленый кружок. Поскольку я новичок, я не могу встраивать изображения в настоящее время.

Мой проект FPGA

1 Ответ

0 голосов
/ 31 мая 2020

Вы правы, думая, что вам нужно три состояния, но это необходимо на краю FPGA, то есть на выводах ввода-вывода. У вас не может быть двунаправленных портов внутри FPGA. Таким образом, для каждого пина бидира у вас есть три сигнала: входящий исходящий и направление. Если все контакты всегда имеют одинаковое направление, вы можете использовать один и тот же сигнал для всех. Вчетвером, это означает, что вам не нужно мультиплексировать входящие сигналы, поскольку они могут быть разделены (один сигнал на несколько экземпляров), но вам нужен один для исходящих сигналов (несколько экземпляров для одного сигнала).

...