blob: 062feabe024da8c8bb26cfc7a4551df65ca06b18 [file] [log] [blame]
/*Booth Encoder
Author: Zhu Xu
Email: m99a1@yahoo.cn
*/
//// SPDX-License-Identifier: LGPL-2.1-or-later ////
module booth_radix4(
input [2:0]codes,
output zero,
output double,
output negation
);
wire A;
assign A=codes[2];
wire B;
assign B=codes[1];
wire C;
assign C=codes[0];
wire nB,nC,nA;
assign nB=~B;
assign nC=~C;
assign nA=~A;
wire BC;
assign BC=B&C;
wire nBnC;
assign nBnC=nB&nC;
wire nBanC;
assign nBanC=nB|nC;
assign double=(nBnC&A)|(BC&nA);
assign negation=A&nBanC;
assign zero=(A&BC)|(nA&nBnC);
endmodule