Slide 32
Slide 32 text
合成の例
▍人間が書く必要があるのが以下の
コード(16bit乗算器)
▍これを合成すると…約900行のVerilog
が生成される
◆NAND/INV等の論理ゲートを使った記
述になっている
module mul(a, b, p);
input [15:0] a;
input [15:0] b;
output [31:0] p;
assign p = a*b;
endmodule // mul
module mul ( A, B, P );
input [15:0] A;
input [15:0] B;
output [31:0] P;
wire N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12,
N13, N14, N15, N16,N17, N18, N19, N20, N21, N22, N23, N24,
N25, N26, N27, N28, N29, N30, N31, N32, N33, N34, N35, N36,
N37, N38, N39, N40, N41, N42, N43, N44,
INVXD U669 ( .A(N766), .YB(P[3]) );
OA21XB U670 ( .A0(N769), .A1(N768), .B(N767), .Y(P[2]) );
NAND2XB U671 ( .A(A[1]), .B(B[0]), .YB(N771) );
XOR2XB U672 ( .A(N771), .B(N770), .Y(P[1]) );
INVXD U673 ( .A(N773), .YB(N775) );
AO221XB U674
( .A0(N775), .A1(N774), .B0(N773), .B1(B[15]), .C(N772), .Y(N784)
);
ADDFXD U675
( .A(N786), .B(N777), .CIN(N776), .COUT(N782), .SUM(N778) );
ADDFXD U676
( .A(N780), .B(N779), .CIN(N778), .COUT(N781), .SUM(N659) );
XNOR2XB U677 ( .A(N782), .B(N781), .YB(N783) );
XNOR2XB U678 ( .A(N784), .B(N783), .YB(N785) );
XOR2XB U679 ( .A(N786), .B(N785), .Y(P[31]) );
endmodule
…
32