0

我写了一个 4 位的多路复用器作为输入,1 位作为输出。我有几种方法,使用案例,如果等,但我不断收到此错误:

WARNING:PhysDesignRules:367 - The signal <A<2>_IBUF> is incomplete. The signal
   does not drive any load pins in the design.
WARNING:Par:288 - The signal A<2>_IBUF has no load.  PAR will not attempt to route this signal.
WARNING:Par:283 - There are 1 loadless signals in this design. This design will cause Bitgen to issue DRC warnings.

当我在我的电路设计卡(Basys)中编程时,一切正常,但分配给 A[2] 的开关不起作用,这是我的模块:

module Multi_4_1(
    input [3:0] A,
    input [1:0] S,
    output Z
    );

     wire w1, w2;

     Multi_2_1 a(.A(A[0]), .B(A[1]), .SEL(S[0]), .F(w1));
    Multi_2_1 b(.A(A[2]), .B(A[3]), .SEL(S[1]), .F(w2));
     Multi_2_1 c(.A(w1), .B(w2), .SEL(S[1]), .F(Z));

endmodule

module Multi_2_1(
    input A,
    input B,
    input SEL,
    output F
    );

     assign F = (~SEL&A)|(SEL&B);

endmodule

这是我将终端分配给卡的地方,但是我已经在另一个项目中尝试过它,它工作正常

NET "A[3]" LOC ="B4";   # sw3
NET "A[2]" LOC ="K3";
NET "A[1]" LOC ="L3";   # sw1
NET "A[0]" LOC ="P11";  # sw0, el de la derecha

NET "S[0]" LOC ="G3";   # sw4
NET "S[1]" LOC ="F3";   # sw5

NET "Z" LOC ="M5";   # L0, el de la derecha
4

1 回答 1

1

您的多路复用器设计不正确。

这是你的真值表:

S=00 => Z=A[0]
S=01 => Z=A[1]
S=10 => Z=A[3]
S=11 => Z=A[3]

因此 A[2] 永远不能成为输出,因此它被“卸载”,您的综合工具会警告您这一点。您可能打算让 Mux b 使用sel(S[0]).

于 2013-02-12T00:47:52.177 回答