fpga将一个inout引脚分配给verilog

时间:2017-05-09 08:07:12

标签: verilog fpga intel-fpga

我正在尝试使用verilog连接Altera FPGA上的两个引脚。

具体来说,我正在将inout引脚连接到input引脚。我收到了错误。

  

图钉“< name>”有多个驱动程序

此链接说明了错误。

Altera description

这是解决方案:

module multi_driver(inout o, input a, b, en);

   // Input a directly drives the bidir pin w/o a tri-state condition
   assign o = a;

   // If en = 1 below, there will be an electrical conflict in the design.
   // To avoid this possibility, the Quartus II software issues an error
   assign o = (en) ? b : 1'bz;

endmodule

有人可以解释一下assign o = (en) ? b : 1'bz;行的确切含义吗?

1 个答案:

答案 0 :(得分:0)

assign o = (en) ? b : 1'bz;是Verilog的三态锁存模板。当en为高o时,将输出端口,其值为b。当en为低端口o时,1'bz将为assign o = a;(即高阻态)。高阻抗状态意味着它将形成从模块外部强制的任何形状(即输入)。

如果您尝试强制另一个信号en而不管contentType: "application/json",信号,它会警告您该信号有多个驱动程序。只有当引脚处于高阻态时,才能连接模块外的信号。