Как написать код verilog, если один вход имеет то же значение, что и один выход - PullRequest
0 голосов
/ 20 октября 2019

Мой вывод A, B, C, D и ввод x, y, z, из таблицы истинности, которую я только что сделал, я обнаружил, что A имеет то же значение, что и x, как я могу выразить A при написании описательной части verilogмодуль? Я знаю из C = x + y, что могу написать

AND G1(C,x,y);

, но что мне делать, когда мне даже не нужны ворота? Я могу придумать 2 способа написания, какой из них имеет больше смысла?

module question1(B,C,x,y);
        output B,C,x;
        input x,y;

или

module question1(A,B,C,y);
        output A,B,C;
        input A,y;

Также я хочу знать, имеет ли выход D такое же значение, как и выход CКак я мог упомянуть D в модуле?

1 Ответ

2 голосов
/ 21 октября 2019

Некоторые инструменты требуют некоторой логики между портами. Вы можете использовать buf примитив.

module question1(output A,B,C,D, input x,y,z);
  buf (A,x);
  ...
endmodule

В противном случае вы можете использовать выражение порта

module question1(output A,B,C,D, input .x(A) ,y,z);

  ...
endmodule
...