| module top( |
| input clk, |
| input rst, |
| input [7:0] a, |
| input [7:0] b, |
| output [15:0] y); |
| wire co; |
| wire [31:0] out; |
| SB_MAC16 i_sbmac16 |
| ( |
| .A(a), |
| .B(b), |
| .C(8'd0), |
| .D(8'd0), |
| .O(out), |
| .CLK(clk), |
| .IRSTTOP(rst), |
| .IRSTBOT(rst), |
| .ORSTTOP(rst), |
| .ORSTBOT(rst), |
| .AHOLD(1'b0), |
| .BHOLD(1'b0), |
| .CHOLD(1'b0), |
| .DHOLD(1'b0), |
| .OHOLDTOP(1'b0), |
| .OHOLDBOT(1'b0), |
| .OLOADTOP(1'b0), |
| .OLOADBOT(1'b0), |
| .ADDSUBTOP(1'b0), |
| .ADDSUBBOT(1'b0), |
| .CO(co), |
| .CI(1'b0), |
| .ACCUMCI(), |
| .ACCUMCO(), |
| .SIGNEXTIN(), |
| .SIGNEXTOUT() |
| ); |
| |
| //Config: mult_8x8_pipeline_unsigned |
| |
| defparam i_sbmac16. B_SIGNED = 1'b0; |
| defparam i_sbmac16. A_SIGNED = 1'b0; |
| defparam i_sbmac16. MODE_8x8 = 1'b1; |
| |
| defparam i_sbmac16. BOTADDSUB_CARRYSELECT = 2'b00; |
| defparam i_sbmac16. BOTADDSUB_UPPERINPUT = 1'b0; |
| defparam i_sbmac16. BOTADDSUB_LOWERINPUT = 2'b00; |
| defparam i_sbmac16. BOTOUTPUT_SELECT = 2'b10; |
| |
| defparam i_sbmac16. TOPADDSUB_CARRYSELECT = 2'b00; |
| defparam i_sbmac16. TOPADDSUB_UPPERINPUT = 1'b0; |
| defparam i_sbmac16. TOPADDSUB_LOWERINPUT = 2'b00; |
| defparam i_sbmac16. TOPOUTPUT_SELECT = 2'b10; |
| |
| defparam i_sbmac16. PIPELINE_16x16_MULT_REG2 = 1'b0; |
| defparam i_sbmac16. PIPELINE_16x16_MULT_REG1 = 1'b1; |
| defparam i_sbmac16. BOT_8x8_MULT_REG = 1'b1; |
| defparam i_sbmac16. TOP_8x8_MULT_REG = 1'b1; |
| defparam i_sbmac16. D_REG = 1'b0; |
| defparam i_sbmac16. B_REG = 1'b1; |
| defparam i_sbmac16. A_REG = 1'b1; |
| defparam i_sbmac16. C_REG = 1'b0; |
| |
| assign y = out[15:0]; |
| endmodule |