⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiplier_top_bak.v

📁 8*8乘法器及其测试:采用booth编码的乘法器:1. ultipler_quick_add_4 即4位的并行全加器
💻 V
📖 第 1 页 / 共 3 页
字号:
multiplier_unit         multiplier_unit_3_7(
   .y                        (p[9:6]),
   .x                        (x[1]),
   .shiftin1                 (shiftout_3[6]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_3[7]),
   .sumin                    (sumout_2[7]),
   .sumout                   (sumout_3[7]),
   .cin1                     (cout1_3[6]),
   .cin2                     (cout2_3[5]),
   .cin3                     (c_3[6]),
   .cout1                    (cout1_3[7]),
   .cout2                    (cout2_3[7]),
   .c                        (c_3[7])
   );                               
   
   
multiplier_unit         multiplier_unit_3_8(
   .y                        (p[9:6]),
   .x                        (x[2]),
   .shiftin1                 (shiftout_3[7]),
   .shiftin2                 (shiftout_3[6]),
   .shiftout                 (shiftout_3[8]),
   .sumin                    (sumout_2[8]),
   .sumout                   (sumout_3[8]),
   .cin1                     (cout1_3[7]),
   .cin2                     (cout2_3[6]),
   .cin3                     (c_3[7]),
   .cout1                    (cout1_3[8]),
   .cout2                    (cout2_3[8]),
   .c                        (c_3[8])
   );                               
   
   
multiplier_unit         multiplier_unit_3_9(
   .y                        (p[9:6]),
   .x                        (x[3]),
   .shiftin1                 (shiftout_3[8]),
   .shiftin2                 (shiftout_3[7]),
   .shiftout                 (shiftout_3[9]),
   .sumin                    (sumout_2[9]),
   .sumout                   (sumout_3[9]),
   .cin1                     (cout1_3[8]),
   .cin2                     (cout2_3[7]),
   .cin3                     (c_3[8]),
   .cout1                    (cout1_3[9]),
   .cout2                    (cout2_3[9]),
   .c                        (c_3[9])
   );                                  


multiplier_unit         multiplier_unit_3_10(
   .y                        (p[9:6]),
   .x                        (x[4]),
   .shiftin1                 (shiftout_3[9]),
   .shiftin2                 (shiftout_3[8]),
   .shiftout                 (shiftout_3[10]),
   .sumin                    (sumout_2[10]),
   .sumout                   (sumout_3[10]),
   .cin1                     (cout1_3[9]),
   .cin2                     (cout2_3[8]),
   .cin3                     (c_3[9]),
   .cout1                    (cout1_3[10]),
   .cout2                    (cout2_3[10]),
   .c                        (c_3[10])
   );                                 
   
   
multiplier_unit         multiplier_unit_3_11(
   .y                        (p[9:6]),
   .x                        (x[5]),
   .shiftin1                 (shiftout_3[10]),
   .shiftin2                 (shiftout_3[9]),
   .shiftout                 (shiftout_3[11]),
   .sumin                    (sumout_2[11]),
   .sumout                   (sumout_3[11]),
   .cin1                     (cout1_3[10]),
   .cin2                     (cout2_3[9]),
   .cin3                     (c_3[10]),
   .cout1                    (cout1_3[11]),
   .cout2                    (cout2_3[11]),
   .c                        (c_3[11])
   );                                   


multiplier_unit         multiplier_unit_3_12(
   .y                        (p[9:6]),
   .x                        (x[6]),
   .shiftin1                 (shiftout_3[11]),
   .shiftin2                 (shiftout_3[10]),
   .shiftout                 (shiftout_3[12]),
   .sumin                    (sumout_2[12]),
   .sumout                   (sumout_3[12]),
   .cin1                     (cout1_3[11]),
   .cin2                     (cout2_3[10]),
   .cin3                     (c_3[11]),
   .cout1                    (cout1_3[12]),
   .cout2                    (cout2_3[12]),
   .c                        (c_3[12])
   );     
   
   
multiplier_unit         multiplier_unit_3_13(
   .y                        (p[9:6]),
   .x                        (x[7]),
   .shiftin1                 (shiftout_3[12]),
   .shiftin2                 (shiftout_3[11]),
   .shiftout                 (shiftout_3[13]),
   .sumin                    (sumout_2[13]),
   .sumout                   (sumout_3[13]),
   .cin1                     (cout1_3[12]),
   .cin2                     (cout2_3[11]),
   .cin3                     (c_3[12]),
   .cout1                    (cout1_3[13]),
   .cout2                    (cout2_3[13]),
   .c                        (c_3[13])
   );                                    
   
   
multiplier_unit         multiplier_unit_3_14(
   .y                        (p[9:6]),
   .x                        (ZERO),
   .shiftin1                 (shiftout_3[13]),
   .shiftin2                 (shiftout_3[12]),
   .shiftout                 (shiftout_3[14]),
   .sumin                    (sumout_2[14]),
   .sumout                   (sumout_3[14]),
   .cin1                     (cout1_3[13]),
   .cin2                     (cout2_3[12]),
   .cin3                     (c_3[13]),
   .cout1                    (cout1_3[14]),
   .cout2                    (cout2_3[14]),
   .c                        (c_3[14])
   );                                    


multiplier_unit         multiplier_unit_3_15(
   .y                        (p[9:6]),
   .x                        (ZERO),
   .shiftin1                 (shiftout_3[14]),
   .shiftin2                 (shiftout_3[13]),
   .shiftout                 (shiftout_3[15]),
   .sumin                    (sumout_2[15]),
   .sumout                   (sumout_3[15]),
   .cin1                     (cout1_3[14]),
   .cin2                     (cout2_3[13]),
   .cin3                     (c_3[14]),
   .cout1                    (cout1_3[15]),
   .cout2                    (cout2_3[15]),
   .c                        (c_3[15])
   );                                
   



multiplier_unit         multiplier_unit_4_6(
   .y                        (Y1),
   .x                        (ZERO),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[6]),
   .sumin                    (sumout_3[6]),
   .sumout                   (sumout_4[6]),
   .cin1                     (ZERO),
   .cin2                     (ZERO),
   .cin3                     (ZERO),
   .cout1                    (cout1_4[6]),
   .cout2                    (cout2_4[6]),
   .c                        (c_4[6])
   );            


multiplier_unit         multiplier_unit_4_7(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[7]),
   .sumin                    (sumout_3[7]),
   .sumout                   (sumout_4[7]),
   .cin1                     (cout1_4[6]),
   .cin2                     (ZERO),
   .cin3                     (c_4[6]),
   .cout1                    (cout1_4[7]),
   .cout2                    (cout2_4[7]),
   .c                        (c_4[7])
   );            


multiplier_unit         multiplier_unit_4_8(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[8]),
   .sumin                    (sumout_3[8]),
   .sumout                   (sumout_4[8]),
   .cin1                     (cout1_4[7]),
   .cin2                     (cout2_4[6]),
   .cin3                     (c_4[7]),
   .cout1                    (cout1_4[8]),
   .cout2                    (cout2_4[8]),
   .c                        (c_4[8])
   );            


multiplier_unit         multiplier_unit_4_9(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[9]),
   .sumin                    (sumout_3[9]),
   .sumout                   (sumout_4[9]),
   .cin1                     (cout1_4[8]),
   .cin2                     (cout2_4[7]),
   .cin3                     (c_4[8]),
   .cout1                    (cout1_4[9]),
   .cout2                    (cout2_4[9]),
   .c                        (c_4[9])
   );            


multiplier_unit         multiplier_unit_4_10(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[10]),
   .sumin                    (sumout_3[10]),
   .sumout                   (sumout_4[10]),
   .cin1                     (cout1_4[9]),
   .cin2                     (cout2_4[8]),
   .cin3                     (c_4[9]),
   .cout1                    (cout1_4[10]),
   .cout2                    (cout2_4[10]),
   .c                        (c_4[10])
   );            


multiplier_unit         multiplier_unit_4_11(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[11]),
   .sumin                    (sumout_3[11]),
   .sumout                   (sumout_4[11]),
   .cin1                     (cout1_4[10]),
   .cin2                     (cout2_4[9]),
   .cin3                     (c_4[10]),
   .cout1                    (cout1_4[11]),
   .cout2                    (cout2_4[11]),
   .c                        (c_4[11])
   );            

multiplier_unit         multiplier_unit_4_12(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[12]),
   .sumin                    (sumout_3[12]),
   .sumout                   (sumout_4[12]),
   .cin1                     (cout1_4[11]),
   .cin2                     (cout2_4[10]),
   .cin3                     (c_4[11]),
   .cout1                    (cout1_4[12]),
   .cout2                    (cout2_4[12]),
   .c                        (c_4[12])
   );            


multiplier_unit         multiplier_unit_4_13(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[13]),
   .sumin                    (sumout_3[13]),
   .sumout                   (sumout_4[13]),
   .cin1                     (cout1_4[12]),
   .cin2                     (cout2_4[11]),
   .cin3                     (c_4[12]),
   .cout1                    (cout1_4[13]),
   .cout2                    (cout2_4[13]),
   .c                        (c_4[13])
   );            


multiplier_unit         multiplier_unit_4_14(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[14]),
   .sumin                    (sumout_3[14]),
   .sumout                   (sumout_4[14]),
   .cin1                     (cout1_4[13]),
   .cin2                     (cout2_4[12]),
   .cin3                     (c_4[13]),
   .cout1                    (cout1_4[14]),
   .cout2                    (cout2_4[14]),
   .c                        (c_4[14])
   );            


multiplier_unit         multiplier_unit_4_15(
   .y                        (Y2),
   .x                        (ONE),
   .shiftin1                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftin2                 (ONE & ~p[3] | ZERO & p[3]),
   .shiftout                 (shiftout_4[15]),
   .sumin                    (sumout_3[15]),
   .sumout                   (sumout_4[15]),
   .cin1                     (cout1_4[14]),
   .cin2                     (cout2_4[13]),
   .cin3                     (c_4[14]),
   .cout1                    (cout1_4[15]),
   .cout2                    (cout2_4[15]),
   .c                        (c_4[15])
   );            


multiplier_quick_add_4    multiplier_quick_add_4_1(
    .a                        ({sumout_3[5:2]}),
    .b                        (cout1_3[4:1]),
    .s                        (z[5:2]),
    .cout                     (cout1)
    );
    

multiplier_quick_add_5    multiplier_quick_add_5_1(
    .a                        (sumout_4[10:6]),
    .b                        ({cout1_4[9:6],cout1}),    
    .cin                      (ZERO),
    .s                        (z[10:6]),
    .cout                     (cout2)
    );
    

multiplier_quick_add_5    multiplier_quick_add_5_2(
    .a                        (sumout_4[15:11]),
    .b                        (cout1_4[14:10]),    
    .cin                      (cout2),
    .s                        (z[15:11]),
    .cout                     (cout3)
    );

assign z[0] = sumout_2[0];
assign z[1] = sumout_3[1];


   
endmodule                                        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -