Verilog высокоимпедансный синтез - PullRequest
0 голосов
/ 25 апреля 2019

Я обычно не использую состояния inout или high impedance в verilog для синтеза (при условии, что внутренняя логика в конечном итоге должна реализовывать ее как стандартную логику состояний CMOS 2).

Тем не менее, я нахожу много verilog, предназначенного для синтеза, который выглядит следующим образом:

module top(
    inout signal1,
    inout signal2
);

    submodule sub1 ( 
        //outputs from sub1
        signal1, 
        signal2
    );
    submodule sub2 ( 
        //outputs from sub2
        signal1, 
        signal2
    );

endmodule

Где сигнал1 и сигнал2 выводятся только на 1'b0 или 1'bz, и они объявлены как порты с открытым стоком в файле ограничений.

Поддерживает ли большинство инструментов синтеза синтезирование этого? Я нацеливаюсь на решетчатый CPLD, и он, кажется, работает нормально, но мне интересно, если другие инструменты синтезируют подобные вещи, хорошо?

Вам обычно приходится явно указывать инструментам, чтобы подтянуть сигнал? или это вообще не обязательно (я не могу найти упоминания подтягиваний в коде, который я смотрю)

1 Ответ

0 голосов
/ 25 апреля 2019

FPGA оборудована настраиваемыми банками ввода-вывода, и в зависимости от того, как инструмент проинструктирован с файлом ограничений, вы можете иметь «enable» в вашем распоряжении.Для управления шиной с открытым стоком обычно используются буферы с тремя состояниями, в которых (1) выходной сигнал (направленный к шине) привязан к постоянному нулю, (2) сигнал разрешения (подключен для включения буфера трех состояний) рассматривается какфактическая управляющая логика, обеспечивающая переключение между высоким Z (генерируемым физической реализацией шины, т.е. подтягивающим резистором) и сильным 0 (источником которого является наш выходной сигнал), (3) входным сигналом (направленным на нашу внутреннюю логику (используется длясбор данных и шинный арбитраж).

Я никогда не видел сигналов, управляемых 1'bz в RTL-коде, ни в одном из коммерческих проектов, в которых я принимал участие, и я рекомендую избегать этого, как я полагаю, тамвсегда более традиционный способ приблизиться к нему (исключительно с помощью логики 1'b1 и 1'b0 в сочетании с буфером с тремя состояниями)

...