Перейти к содержанию
    

Какой-то странный глюк с двунаправленной шиной

Понадобилась двунаправленная шина, что-то никак не разберусь, как её сделать.

Решил сначала сделать тестовый модуль, чтобы понять, что к чему.

Вроде всё по науке, однако он, зараза, всё равно не работает.

По идее, по OE он должен что-то выдавать на bidirPort'у, а по !OE - просто читать с bidirPort'а и передавать на outPort.

ModelSim компилирует, но смоделировать не может.

Как исправить положение?

 

 

Модуль:

`timescale 1 ns/100 ps;

module BidirModule
    (
        input wire oe,
        inout[7:0] bidirPort,
        output[7:0] outPort
    );
    
    assign bidirPort = oe ? 8'hFF : 8'bZZZZZZZZ;
    assign outPort = !oe ? 8'hZZ :  bidirPort;

endmodule

 

Тестбенч:

`timescale 1 ns/100 ps;
module BidirModuleTB;

wire[7:0] testOut;

BidirModule underTest
(
    .oe(1'b0),
    .bidirPort(8'hFF),
    .outPort(testOut)

);


endmodule

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ModelSim компилирует, но смоделировать не может.

Потому что у вас в тесте нет активности, все статическое.

Вам надо задать переключения oe.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...