Verilog高阻抗输入合成

时间:2019-04-25 00:26:31

标签: verilog synthesis inout

我通常不在Verilog中使用inout或高阻抗状态进行合成(假设内部逻辑最终还是必须将其实现为标准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 :(得分:0)

FPGA配备有可配置的IO库,并且根据约束文件指示工具的方式,您可能会使用“启用”。为了驱动漏极开路总线,通常使用三态缓冲器,其中(1)输出信号(指向总线)连接到恒定零,(2)使能信号(连接到三态缓冲器的使能)被认为是:提供在高Z(由物理总线实现产生,即上拉电阻)和强0(从我们的输出信号中获取)之间切换的实际控制逻辑,(3)输入信号(指向我们的内部逻辑(用于数据采集​​和总线仲裁)。

在我参与的任何商业项目中,我从未见过以RTL代码以1'bz驱动的信号,我的建议是避免使用它,因为我相信总是有更常规的方法来解决(仅逻辑1'b1和1'b0结合三态缓冲器)