реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как симулировать двунаправленную шину в Modelsim?
Iptash
сообщение May 22 2011, 10:24
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Здравствуйте.
Есть двунаправленная шина данных inout [7:0] SD. Как определить SD в тесте в модельсиме. Если SD я определяю как wire или tri, то
при присваивании SD значения, ругается компиляция, если SD определить как reg, то ругается симуляция. Или шину данных при отладке нужно разделить на
input и output?.
Go to the top of the page
 
+Quote Post
AlphaMil
сообщение May 22 2011, 12:12
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



У меня шина I2C объявлена как inout. Никто ни на что не ругается, прекрасно моделируется.
Go to the top of the page
 
+Quote Post
Iptash
сообщение May 22 2011, 13:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



У меня тоже шина inout в quartus прекрасно синтезируется. А в модельсиме в тестбенче не знаю как с этой шиной работать.
Go to the top of the page
 
+Quote Post
Джеймс
сообщение May 22 2011, 15:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Цитата(Iptash @ May 22 2011, 14:24) *
Есть двунаправленная шина данных inout [7:0] SD. Как определить SD в тесте в модельсиме. Если SD я определяю как wire или tri, то
при присваивании SD значения, ругается компиляция, если SD определить как reg, то ругается симуляция.

wire - никто не должен ругаться.
Вот заготовка-болванка - все грузится успешно.
Go to the top of the page
 
+Quote Post
Iptash
сообщение May 22 2011, 15:40
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Спасибо. У меня ругается когда в тестбенче я присваиваю что то шине данных:
Код
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
...


Вот что то типа того.
Go to the top of the page
 
+Quote Post
Джеймс
сообщение May 22 2011, 15:55
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Aa, понял. Нужно так:

Код
inout SD_io;

reg enable;
reg SD_Data;
wire SD_io;

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


Все операции проделывайте над SD_Data и enable.
Go to the top of the page
 
+Quote Post
Iptash
сообщение May 22 2011, 16:49
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Вот спасибо. А то и так и сяк пробовал и в инете что то не нашел.

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

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

если в модуле, то у меня везде с шиной данных(inout) таким образом. Видимо придется пока разделить на input SD_input и output SD_output. В симуляторе квартуса работает все нормально.
Go to the top of the page
 
+Quote Post
Джеймс
сообщение May 22 2011, 18:03
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



тогда если хотите, присоединяйте весь нерабочий проект (или часть, но законченную(!) чтобы можно было сразу запустить)
Go to the top of the page
 
+Quote Post
Iptash
сообщение May 22 2011, 18:22
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Все Джеймс, большое спасибо, заработало. Я просто не досмотрел у вас assign в assign SD_io = (enable) ? SD_Data : 1'bz;. Все четко заработало.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01399 секунд с 7
ELECTRONIX ©2004-2016