khlenar 5 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба Здравствуйте. Есть двунаправленная шина данных inout [7:0] SD. Как определить SD в тесте в модельсиме. Если SD я определяю как wire или tri, то при присваивании SD значения, ругается компиляция, если SD определить как reg, то ругается симуляция. Или шину данных при отладке нужно разделить на input и output?. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlphaMil 0 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба У меня шина I2C объявлена как inout. Никто ни на что не ругается, прекрасно моделируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khlenar 5 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба У меня тоже шина inout в quartus прекрасно синтезируется. А в модельсиме в тестбенче не знаю как с этой шиной работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Джеймс 3 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба Есть двунаправленная шина данных inout [7:0] SD. Как определить SD в тесте в модельсиме. Если SD я определяю как wire или tri, то при присваивании SD значения, ругается компиляция, если SD определить как reg, то ругается симуляция. wire - никто не должен ругаться. Вот заготовка-болванка - все грузится успешно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khlenar 5 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба Спасибо. У меня ругается когда в тестбенче я присваиваю что то шине данных: 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 ... Вот что то типа того. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Джеймс 3 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба Aa, понял. Нужно так: inout SD_io; reg enable; reg SD_Data; wire SD_io; assign SD_io = (enable) ? SD_Data : 1'bz; Все операции проделывайте над SD_Data и enable. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khlenar 5 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба Вот спасибо. А то и так и сяк пробовал и в инете что то не нашел. Не. Модельсим все равно ругается. Я не понял, это в модуле или в тестбенче так. reg enable; reg SD_Data; wire SD_io; assign SD_io = (enable) ? SD_Data : 1'bz; если в модуле, то у меня везде с шиной данных(inout) таким образом. Видимо придется пока разделить на input SD_input и output SD_output. В симуляторе квартуса работает все нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Джеймс 3 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба тогда если хотите, присоединяйте весь нерабочий проект (или часть, но законченную(!) чтобы можно было сразу запустить) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khlenar 5 22 мая, 2011 Опубликовано 22 мая, 2011 · Жалоба Все Джеймс, большое спасибо, заработало. Я просто не досмотрел у вас assign в assign SD_io = (enable) ? SD_Data : 1'bz;. Все четко заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ater_effigies 0 25 января, 2023 Опубликовано 25 января, 2023 · Жалоба Так что в итоге должно быть в модуле и в тестбенче написано, кто может объяснить? Как в тестбенче подавать что-то на inout, если modelsim просит тип wire, а ему можно только через assign присваивать, соответственно, если уже присвоил сигнал на IO модуля, то не сможешь присвоить ничего в другом месте? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 25 января, 2023 Опубликовано 25 января, 2023 · Жалоба 17 minutes ago, ater_effigies said: Так что в итоге должно быть в модуле и в тестбенче написано Должно быть написано одинаково, только управление Z-буферами инверсное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться