Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как симулировать двунаправленную шину в Modelsim?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Iptash
Здравствуйте.
Есть двунаправленная шина данных inout [7:0] SD. Как определить SD в тесте в модельсиме. Если SD я определяю как wire или tri, то
при присваивании SD значения, ругается компиляция, если SD определить как reg, то ругается симуляция. Или шину данных при отладке нужно разделить на
input и output?.
AlphaMil
У меня шина I2C объявлена как inout. Никто ни на что не ругается, прекрасно моделируется.
Iptash
У меня тоже шина inout в quartus прекрасно синтезируется. А в модельсиме в тестбенче не знаю как с этой шиной работать.
Джеймс
Цитата(Iptash @ May 22 2011, 14:24) *
Есть двунаправленная шина данных inout [7:0] SD. Как определить SD в тесте в модельсиме. Если SD я определяю как wire или tri, то
при присваивании SD значения, ругается компиляция, если SD определить как reg, то ругается симуляция.

wire - никто не должен ругаться.
Вот заготовка-болванка - все грузится успешно.
Iptash
Спасибо. У меня ругается когда в тестбенче я присваиваю что то шине данных:
Код
module test;
        bit [9:0] SA;
        wire [7:0] SD;
        ...
    
   mainmodole mod (
               .SA(SA),
               .SD(SD), // здесь SD inout типа
               ...
          );

initial begin
#100 SA = 8'b11001010;
#100 SD = 8'b01011001; // Здесь Модельсим ругается
...
#100 $stop;
end
...


Вот что то типа того.
Джеймс
Aa, понял. Нужно так:

Код
inout SD_io;

reg enable;
reg SD_Data;
wire SD_io;

assign SD_io = (enable) ? SD_Data : 1'bz;


Все операции проделывайте над SD_Data и enable.
Iptash
Вот спасибо. А то и так и сяк пробовал и в инете что то не нашел.

Не. Модельсим все равно ругается. Я не понял, это в модуле или в тестбенче так.
Код
reg enable;
reg SD_Data;
wire SD_io;

assign SD_io = (enable) ? SD_Data : 1'bz;

если в модуле, то у меня везде с шиной данных(inout) таким образом. Видимо придется пока разделить на input SD_input и output SD_output. В симуляторе квартуса работает все нормально.
Джеймс
тогда если хотите, присоединяйте весь нерабочий проект (или часть, но законченную(!) чтобы можно было сразу запустить)
Iptash
Все Джеймс, большое спасибо, заработало. Я просто не досмотрел у вас assign в assign SD_io = (enable) ? SD_Data : 1'bz;. Все четко заработало.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.