2013-02-12 2 views
0

Im записывает мультиплексор 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), все работает отлично, но переключатель, который является правопреемником до а [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] 

Таким образом, А [2] никогда не может быть выход, так что «разгрузили», и ваш инструмент синтеза предупреждает Вас об этом. Вероятно, вы собираетесь использовать Mux b для использования sel(S[0]).

+0

Спасибо, я думал, что это что-то вроде ISE (там используется программа i'm), но ваше право =) – user2063154

+0

@ user2063154: быстрая симуляция показала бы это очень быстро тоже ... –

Смежные вопросы