2013-02-12 133 views
0

我正在写一个4位多路复用器作为输入,1作为输出。我有托盘几种方法,使用的情况下,如果等,但我不断收到此错误:Verilog模块警告

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 

回答

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])

+0

感谢男人们,我认为这是ISE(我正在使用的程序),但是您的右边=) – user2063154 2013-02-12 00:51:09

+0

@ user2063154:快速模拟会很快显示出来...... – 2013-02-12 11:19:11