•  1 module top(    
     2     output        [31:0]     c                 
     3 );
     4 
     5 localparam [15:0]    a = 65535;
     6 localparam [15:0]    b = 25687;
     7 
     8 
     9 assign c = a*b;
    10 //两个常数相乘,综合后不使用资源,直接综合为一个常数
    11 module top(    
    12     output        [15:0]     c                 
    13 );
    14 
    15 localparam [15:0]    a = 65520;
    16 localparam [15:0]    b = 25687;
    17 
    18 
    19 assign c = a/b;
    20 //两个常数相除,综合后不使用逻辑资源,直接综合为一个常数
    21 module top(    
    22     output        [15:0]     c                 
    23 );
    24 
    25 localparam [15:0]    a = 65535;
    26 localparam [15:0]    b = 25687;
    27 
    28 
    29 assign c = a%b;
    30 //两个常数取余,不使用逻辑资源
    31 module top(    
    32     input        [15:0]     a             ,
    33     output        [16:0]     c                 
    34 );
    35 
    36 assign c = a*256;
    37 //变量与2的指数相乘,不会使用逻辑资源,综合为移位的方式
    38 module top(    
    39     input        [15:0]     a             ,
    40     output        [14:0]     c                 
    41 );
    42 
    43 assign c = a/512;
    44 //变量与2的指数相除,不使用逻辑资源,综合为移位的方式
    45 module top(    
    46     input        [15:0]     a             ,
    47     output        [15:0]     c                 
    48 );
    49 
    50 assign c = a%1024; 
    51 //变量与2的指数取余,不使用逻辑资源
    52 module top(        
    53     input        [15:0]     a             ,    
    54     output        [31:0]     c                 
    55 );
    56 
    57 assign c = a*32767;
    58 //变量与非2的指数相乘,综合为LUT,且随着乘数的增大,LUT也会增加,或者直接使用DSP;
    59 module top(        
    60     input        [15:0]     a             ,    
    61     output        [15:0]     c                 
    62 );
    63 
    64 assign c = a/3;
    65 //变量与非2的指数相除,综合为LUT,且LUT占用较多
    66 module top(        
    67     input        [15:0]     a             ,    
    68     output        [15:0]     c                 
    69 );
    70 
    71 assign c = a%32767;
    72 //变量与非2的指数取余,综合为LUT,
    73 module top(    
    74     input        [15:0]     a             ,
    75     input        [15:0]     b             ,
    76     output        [31:0]     c                 
    77 );
    78 
    79 assign c = a*b;
    80 //两个变量相乘,综合为DSP
    81 module top(    
    82     input        [15:0]     a             ,
    83     input        [15:0]     b             ,
    84     output        [15:0]     c                 
    85 );
    86 
    87 assign c = a/b;
    88 //两个变量相除,综合为较多的LUT
    89 module top(    
    90     input        [15:0]     a             ,
    91     input        [15:0]     b             ,
    92     output        [15:0]     c                 
    93 );
    94 
    95 assign c = a%b;
    //两个变量取余,综合为较多的LUT