zoukankan      html  css  js  c++  java
  • FPGA内部信号避免高阻态

    RT,否则警告Warning: Tri-state node(s) do not directly drive top-level pin(s),会利用或门代替中间的扇出fan-out.

    原因:在进行FPGA设计时,对于FPGA内部的信号不能出现被赋值为高阻的状态,只有顶层的信号,即输出的信号才可以赋值为高阻态。

    找出这个信号,然后把赋值为x'bz改为x'b0或x'b1(具体是改为x'b0还是x'b1要根据实际情况确定,x也行)。

    CAUSE: The design contains tri-state nodes that drive non-tri-state logic, but the chip does not support internal tri-states. As a result, the Quartus II software converts all the tri-state nodes feeding internal logic to an equivalent logic.

    ACTION: Avoid this warning by either removing the non-tri-state fan-outs of the affected tri-state nodes or replacing the tri-state nodes with non-tri-state logic.

    实例:

    module tri_state (input oe1, data1, in, output out, output bidir);

    wire tribuf;

    assign tribuf = oe1 ? data1 : 1'bz;

    and(out, in, tribuf);

    assign bidir = tribuf;

    endmodule

    Warning: Tri-state node(s) do not directly drive top-level pin(s)

           Warning: Converted the fan-out from the tri-state buffer "tribuf" to the node "comb" into an OR gate

    RTL视图:

    1

    Technology Map Viewer:

    2

    CAUSE:The specified tri-statebuffer feeds internal logic in addition to  feeding tri-statelogic, but the chip does not support internal tri-states. As a result, the  Quartus II software converts the non-tri-statefan-out(s) of the tri-statebuffer to an  ORgate.

    Consider the following design:
    module test1 (input oe1, data1, in,  output out, inout bidir); 
    wire tribuf, tmp; 
    assign tribuf = oe1 ? data1  : 1'bz; 
    and(tmp, in, tribuf); 
    assign bidir = tribuf; 
    assign out =  tmp; 
    endmodule 
    Here, the tri-statebuffer  tribufhas fan-outs to both the tri-stateand non-tri-statenodes. As a  result, the fan-out to the non-tri-statenode is converted to !oe1 +  data1.
    Note that an inversion also counts as non-tri-statelogic. So, the  node tribufin the design test2is also converted to  an ORgate.
    module test2 (input oe1, data1, output out,  inout bidir); 
    wire tribuf; 
    assign tribuf = oe1 ? data1 : 1'bz; 
    assign bidir = tribuf; 
    assign out = !tribuf; 
    endmodule 
    Additionally, a tri-statebuffer feeding the output enable signal of  another tri-statebuffer is also converted to logic.
    Consider the following Verilog  design:
    module test3 (input oe1, data1, data2, inout bidir); 
    wire  tribuf1, tribuf2; 
    assign tribuf1 = oe1 ? data1 : 1'bz; 
    assign tribuf2 =  tribuf1 ? data2 : 1'bz; 
    assign bidir = tribuf2; 
    endmodule 
    Here, the tri-statebuffer tribuf1is converted to an  ORgate.

    ACTION:Avoid this warning by either removing the non-tri-statefan-out of the  tri-statebuffer or  replacing the tri-statebuffer with non-tri-statelogic.

  • 相关阅读:
    uboot中fdt命令的使用
    unlocked_ioctl与compat_ioctl
    I2C中关于ACK和NACK的几点东西
    对IIC总线时序的一点理解以及ACK和NACK(NAK)
    usb Defined Class Codes
    排序检索数据
    【转载】5.Linux 网络编程——UDP编程
    【转载】4.Linux 网络编程——套接字的介绍
    【转载】3.Linux 网络编程——网络字节序、地址转换
    【转载】2. Linux 网络编程——网络字节序、地址转换
  • 原文地址:https://www.cnblogs.com/aikimi7/p/3352433.html
Copyright © 2011-2022 走看看