Timing Analysis of MIPS
FMax : 94.44 MHz
Critical Path: (13.020ns)
Start signal: memory_controller:memory_controller_inst|memory_controller_out_reg_a[18]~_Duplicate_1
End signal: main:main_inst|main_232_Hi_1_phi_temp[30]
main_232_Hi_1_phi_temp ⇐ main_43_53;
main_232_Hi_1_phi_temp ⇐ main_54_64;
/* %53 = trunc i64 %52 to i32*/
main_43_53 = main_43_52[31:0];
/* %52 = lshr i64 %50, 32*/
main_43_52 = (main_43_50 »> (64'd32 % 64'd64));
/* %50 = mul nsw i64 %49, %46*/
main_43_50 = (main_43_49 * main_43_46);
/* %49 = sext i32 %48 to i64*/
main_43_49 = $signed({main_43_48});
/* %48 = load i32* %47, align 4, !tbaa !0*/
main_43_48 = memory_controller_out_b[31:0];
/* %46 = sext i32 %45 to i64*/
main_43_46 = $signed({main_43_45});
/* %45 = load i32* %44, align 4, !tbaa !0*/
main_43_45 = memory_controller_out_a[31:0];
/* %64 = trunc i64 %63 to i32*/
main_54_64 = main_54_63[31:0];
/* %63 = lshr i64 %61, 32*/
main_54_63 = (main_54_61 »> (64'd32 % 64'd64));
/* %61 = mul i64 %60, %57*/
main_54_61 = (main_54_60 * main_54_57);
/* %60 = sext i32 %59 to i64*/
main_54_60 = $signed({main_54_59});
/* %59 = load i32* %58, align 4, !tbaa !0*/
main_54_59 = memory_controller_out_b[31:0];
/* %57 = sext i32 %56 to i64*/
main_54_57 = $signed({main_54_56});
Corresponding C code:
case MULT:
hilo = (long long) reg[rs] * (long long) reg[rt]; Lo = hilo & 0x00000000ffffffffULL; Hi = ((int) (hilo >> 32)) & 0xffffffffUL; break;
Total | Incr | Element | ||||
---|---|---|---|---|---|---|
0 | 0 | launch edge time | ||||
2.453 | 2.453 | clock path | ||||
0 | 0 | source latency | ||||
0 | 0 | clk | ||||
0.979 | 0.979 | clk | combout | |||
1.097 | 0.118 | clk~clkctrl | inclk[0] | |||
1.097 | 0 | clk~clkctrl | outclk | |||
1.81 | 0.713 | main_inst | Mult0 | auto_generated | mac_mult5 | clk |
2.453 | 0.643 | memory_controller:memory_controller_inst | memory_controller_out_reg_a[18]~_Duplicate_1 | |||
13.02 | 10.567 | data path | ||||
2.453 | 0 | memory_controller:memory_controller_inst | memory_controller_out_reg_a[18]~_Duplicate_1 | |||
4.853 | 2.4 | main_inst | Mult0 | auto_generated | mac_mult5 | dataout[7] |
4.853 | 0 | main_inst | Mult0 | auto_generated | mac_out6 | dataa[7] |
5.077 | 0.224 | main_inst | Mult0 | auto_generated | mac_out6 | dataout[7] |
6.262 | 1.185 | main_inst | Mult0 | auto_generated | add9_result[3]~6 | datab |
6.655 | 0.393 | main_inst | Mult0 | auto_generated | add9_result[3]~6 | cout |
6.655 | 0 | main_inst | Mult0 | auto_generated | add9_result[4]~8 | cin |
6.726 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[4]~8 | cout |
6.726 | 0 | main_inst | Mult0 | auto_generated | add9_result[5]~10 | cin |
6.797 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[5]~10 | cout |
6.797 | 0 | main_inst | Mult0 | auto_generated | add9_result[6]~12 | cin |
6.956 | 0.159 | main_inst | Mult0 | auto_generated | add9_result[6]~12 | cout |
6.956 | 0 | main_inst | Mult0 | auto_generated | add9_result[7]~14 | cin |
7.027 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[7]~14 | cout |
7.027 | 0 | main_inst | Mult0 | auto_generated | add9_result[8]~16 | cin |
7.098 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[8]~16 | cout |
7.098 | 0 | main_inst | Mult0 | auto_generated | add9_result[9]~18 | cin |
7.169 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[9]~18 | cout |
7.169 | 0 | main_inst | Mult0 | auto_generated | add9_result[10]~20 | cin |
7.24 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[10]~20 | cout |
7.24 | 0 | main_inst | Mult0 | auto_generated | add9_result[11]~22 | cin |
7.311 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[11]~22 | cout |
7.311 | 0 | main_inst | Mult0 | auto_generated | add9_result[12]~24 | cin |
7.382 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[12]~24 | cout |
7.382 | 0 | main_inst | Mult0 | auto_generated | add9_result[13]~26 | cin |
7.453 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[13]~26 | cout |
7.453 | 0 | main_inst | Mult0 | auto_generated | add9_result[14]~28 | cin |
7.599 | 0.146 | main_inst | Mult0 | auto_generated | add9_result[14]~28 | cout |
7.599 | 0 | main_inst | Mult0 | auto_generated | add9_result[15]~30 | cin |
7.67 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[15]~30 | cout |
7.67 | 0 | main_inst | Mult0 | auto_generated | add9_result[16]~32 | cin |
7.741 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[16]~32 | cout |
7.741 | 0 | main_inst | Mult0 | auto_generated | add9_result[17]~34 | cin |
7.812 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[17]~34 | cout |
7.812 | 0 | main_inst | Mult0 | auto_generated | add9_result[18]~36 | cin |
7.883 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[18]~36 | cout |
7.883 | 0 | main_inst | Mult0 | auto_generated | add9_result[19]~38 | cin |
7.954 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[19]~38 | cout |
7.954 | 0 | main_inst | Mult0 | auto_generated | add9_result[20]~40 | cin |
8.025 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[20]~40 | cout |
8.025 | 0 | main_inst | Mult0 | auto_generated | add9_result[21]~42 | cin |
8.096 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[21]~42 | cout |
8.096 | 0 | main_inst | Mult0 | auto_generated | add9_result[22]~44 | cin |
8.255 | 0.159 | main_inst | Mult0 | auto_generated | add9_result[22]~44 | cout |
8.255 | 0 | main_inst | Mult0 | auto_generated | add9_result[23]~46 | cin |
8.326 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[23]~46 | cout |
8.326 | 0 | main_inst | Mult0 | auto_generated | add9_result[24]~48 | cin |
8.397 | 0.071 | main_inst | Mult0 | auto_generated | add9_result[24]~48 | cout |
8.397 | 0 | main_inst | Mult0 | auto_generated | add9_result[25]~50 | cin |
8.807 | 0.41 | main_inst | Mult0 | auto_generated | add9_result[25]~50 | combout |
9.508 | 0.701 | main_inst | Mult0 | auto_generated | op_1~50 | dataa |
9.922 | 0.414 | main_inst | Mult0 | auto_generated | op_1~50 | cout |
9.922 | 0 | main_inst | Mult0 | auto_generated | op_1~52 | cin |
9.993 | 0.071 | main_inst | Mult0 | auto_generated | op_1~52 | cout |
9.993 | 0 | main_inst | Mult0 | auto_generated | op_1~54 | cin |
10.064 | 0.071 | main_inst | Mult0 | auto_generated | op_1~54 | cout |
10.064 | 0 | main_inst | Mult0 | auto_generated | op_1~56 | cin |
10.135 | 0.071 | main_inst | Mult0 | auto_generated | op_1~56 | cout |
10.135 | 0 | main_inst | Mult0 | auto_generated | op_1~58 | cin |
10.206 | 0.071 | main_inst | Mult0 | auto_generated | op_1~58 | cout |
10.206 | 0 | main_inst | Mult0 | auto_generated | op_1~60 | cin |
10.352 | 0.146 | main_inst | Mult0 | auto_generated | op_1~60 | cout |
10.352 | 0 | main_inst | Mult0 | auto_generated | op_1~62 | cin |
10.423 | 0.071 | main_inst | Mult0 | auto_generated | op_1~62 | cout |
10.423 | 0 | main_inst | Mult0 | auto_generated | op_1~64 | cin |
10.494 | 0.071 | main_inst | Mult0 | auto_generated | op_1~64 | cout |
10.494 | 0 | main_inst | Mult0 | auto_generated | op_1~66 | cin |
10.565 | 0.071 | main_inst | Mult0 | auto_generated | op_1~66 | cout |
10.565 | 0 | main_inst | Mult0 | auto_generated | op_1~68 | cin |
10.636 | 0.071 | main_inst | Mult0 | auto_generated | op_1~68 | cout |
10.636 | 0 | main_inst | Mult0 | auto_generated | op_1~70 | cin |
10.707 | 0.071 | main_inst | Mult0 | auto_generated | op_1~70 | cout |
10.707 | 0 | main_inst | Mult0 | auto_generated | op_1~72 | cin |
10.778 | 0.071 | main_inst | Mult0 | auto_generated | op_1~72 | cout |
10.778 | 0 | main_inst | Mult0 | auto_generated | op_1~74 | cin |
10.849 | 0.071 | main_inst | Mult0 | auto_generated | op_1~74 | cout |
10.849 | 0 | main_inst | Mult0 | auto_generated | op_1~76 | cin |
11.008 | 0.159 | main_inst | Mult0 | auto_generated | op_1~76 | cout |
11.008 | 0 | main_inst | Mult0 | auto_generated | op_1~78 | cin |
11.079 | 0.071 | main_inst | Mult0 | auto_generated | op_1~78 | cout |
11.079 | 0 | main_inst | Mult0 | auto_generated | op_1~80 | cin |
11.15 | 0.071 | main_inst | Mult0 | auto_generated | op_1~80 | cout |
11.15 | 0 | main_inst | Mult0 | auto_generated | op_1~82 | cin |
11.221 | 0.071 | main_inst | Mult0 | auto_generated | op_1~82 | cout |
11.221 | 0 | main_inst | Mult0 | auto_generated | op_1~84 | cin |
11.292 | 0.071 | main_inst | Mult0 | auto_generated | op_1~84 | cout |
11.292 | 0 | main_inst | Mult0 | auto_generated | op_1~86 | cin |
11.363 | 0.071 | main_inst | Mult0 | auto_generated | op_1~86 | cout |
11.363 | 0 | main_inst | Mult0 | auto_generated | op_1~88 | cin |
11.773 | 0.41 | main_inst | Mult0 | auto_generated | op_1~88 | combout |
12.786 | 1.013 | main_inst | main_232_Hi_1_phi_temp[30]~4 | datad | ||
12.936 | 0.15 | main_inst | main_232_Hi_1_phi_temp[30]~4 | combout | ||
12.936 | 0 | main_inst | main_232_Hi_1_phi_temp[30] | datain | ||
13.02 | 0.084 | main:main_inst | main_232_Hi_1_phi_temp[30] |
Timing Analysis of isolated multiplication
FMax : 108.02 MHz
Total | Incr | Element | |||
---|---|---|---|---|---|
2.712 | 2.712 | clock path | |||
2.069 | 0.862 | Mult0 | auto_generated | mac_mult9 | clk |
0 | 0 | clk | |||
0.989 | 0.989 | clk | combout | ||
1.207 | 0.218 | clk~clkctrl | inclk[0] | ||
1.207 | 0 | clk~clkctrl | outclk | ||
2.712 | 0.643 | regb[0] | |||
0 | 0 | source latency | |||
11.954 | 9.242 | data path | |||
5.112 | 2.4 | Mult0 | auto_generated | mac_mult9 | dataout[0] |
5.112 | 0 | Mult0 | auto_generated | mac_out10 | dataa[0] |
5.336 | 0.224 | Mult0 | auto_generated | mac_out10 | dataout[0] |
6.711 | 0.414 | Mult0 | auto_generated | op_1~0 | cout |
6.297 | 0.961 | Mult0 | auto_generated | op_1~0 | dataa |
6.711 | 0 | Mult0 | auto_generated | op_1~2 | cin |
6.782 | 0.071 | Mult0 | auto_generated | op_1~2 | cout |
6.782 | 0 | Mult0 | auto_generated | op_1~4 | cin |
6.853 | 0.071 | Mult0 | auto_generated | op_1~4 | cout |
6.853 | 0 | Mult0 | auto_generated | op_1~6 | cin |
6.924 | 0.071 | Mult0 | auto_generated | op_1~6 | cout |
6.924 | 0 | Mult0 | auto_generated | op_1~8 | cin |
6.995 | 0.071 | Mult0 | auto_generated | op_1~8 | cout |
6.995 | 0 | Mult0 | auto_generated | op_1~10 | cin |
7.066 | 0.071 | Mult0 | auto_generated | op_1~10 | cout |
7.066 | 0 | Mult0 | auto_generated | op_1~12 | cin |
7.225 | 0.159 | Mult0 | auto_generated | op_1~12 | cout |
7.225 | 0 | Mult0 | auto_generated | op_1~14 | cin |
7.296 | 0.071 | Mult0 | auto_generated | op_1~14 | cout |
7.296 | 0 | Mult0 | auto_generated | op_1~16 | cin |
7.367 | 0.071 | Mult0 | auto_generated | op_1~16 | cout |
7.367 | 0 | Mult0 | auto_generated | op_1~18 | cin |
7.438 | 0.071 | Mult0 | auto_generated | op_1~18 | cout |
7.438 | 0 | Mult0 | auto_generated | op_1~20 | cin |
7.509 | 0.071 | Mult0 | auto_generated | op_1~20 | cout |
7.509 | 0 | Mult0 | auto_generated | op_1~22 | cin |
7.58 | 0.071 | Mult0 | auto_generated | op_1~22 | cout |
7.58 | 0 | Mult0 | auto_generated | op_1~24 | cin |
7.651 | 0.071 | Mult0 | auto_generated | op_1~24 | cout |
7.651 | 0 | Mult0 | auto_generated | op_1~26 | cin |
7.722 | 0.071 | Mult0 | auto_generated | op_1~26 | cout |
7.722 | 0 | Mult0 | auto_generated | op_1~28 | cin |
7.868 | 0.146 | Mult0 | auto_generated | op_1~28 | cout |
7.868 | 0 | Mult0 | auto_generated | op_1~30 | cin |
7.939 | 0.071 | Mult0 | auto_generated | op_1~30 | cout |
7.939 | 0 | Mult0 | auto_generated | op_1~32 | cin |
8.349 | 0.41 | Mult0 | auto_generated | op_1~32 | combout |
9.221 | 0.414 | out[34]~78 | cout | ||
8.807 | 0.458 | out[34]~78 | dataa | ||
9.221 | 0 | out[35]~80 | cin | ||
9.292 | 0.071 | out[35]~80 | cout | ||
9.292 | 0 | out[36]~82 | cin | ||
9.363 | 0.071 | out[36]~82 | cout | ||
9.363 | 0 | out[37]~84 | cin | ||
9.434 | 0.071 | out[37]~84 | cout | ||
9.434 | 0 | out[38]~86 | cin | ||
9.505 | 0.071 | out[38]~86 | cout | ||
9.505 | 0 | out[39]~88 | cin | ||
9.576 | 0.071 | out[39]~88 | cout | ||
9.576 | 0 | out[40]~90 | cin | ||
9.735 | 0.159 | out[40]~90 | cout | ||
9.735 | 0 | out[41]~92 | cin | ||
9.806 | 0.071 | out[41]~92 | cout | ||
9.806 | 0 | out[42]~94 | cin | ||
9.877 | 0.071 | out[42]~94 | cout | ||
9.877 | 0 | out[43]~96 | cin | ||
9.948 | 0.071 | out[43]~96 | cout | ||
9.948 | 0 | out[44]~98 | cin | ||
10.019 | 0.071 | out[44]~98 | cout | ||
10.019 | 0 | out[45]~100 | cin | ||
10.09 | 0.071 | out[45]~100 | cout | ||
10.09 | 0 | out[46]~102 | cin | ||
10.161 | 0.071 | out[46]~102 | cout | ||
10.161 | 0 | out[47]~104 | cin | ||
10.232 | 0.071 | out[47]~104 | cout | ||
10.232 | 0 | out[48]~106 | cin | ||
10.378 | 0.146 | out[48]~106 | cout | ||
10.378 | 0 | out[49]~108 | cin | ||
10.449 | 0.071 | out[49]~108 | cout | ||
10.449 | 0 | out[50]~110 | cin | ||
10.52 | 0.071 | out[50]~110 | cout | ||
10.52 | 0 | out[51]~112 | cin | ||
10.591 | 0.071 | out[51]~112 | cout | ||
10.591 | 0 | out[52]~114 | cin | ||
10.662 | 0.071 | out[52]~114 | cout | ||
10.662 | 0 | out[53]~116 | cin | ||
10.733 | 0.071 | out[53]~116 | cout | ||
10.733 | 0 | out[54]~118 | cin | ||
10.804 | 0.071 | out[54]~118 | cout | ||
10.804 | 0 | out[55]~120 | cin | ||
10.875 | 0.071 | out[55]~120 | cout | ||
10.875 | 0 | out[56]~122 | cin | ||
11.034 | 0.159 | out[56]~122 | cout | ||
11.034 | 0 | out[57]~124 | cin | ||
11.105 | 0.071 | out[57]~124 | cout | ||
11.105 | 0 | out[58]~126 | cin | ||
11.176 | 0.071 | out[58]~126 | cout | ||
11.176 | 0 | out[59]~128 | cin | ||
11.247 | 0.071 | out[59]~128 | cout | ||
11.247 | 0 | out[60]~130 | cin | ||
11.318 | 0.071 | out[60]~130 | cout | ||
11.318 | 0 | out[61]~132 | cin | ||
11.389 | 0.071 | out[61]~132 | cout | ||
11.389 | 0 | out[62]~134 | cin | ||
11.46 | 0.071 | out[62]~134 | cout | ||
11.954 | 0.084 | out[63]~reg0 | |||
11.87 | 0 | out[63]~reg0 | datain | ||
11.46 | 0 | out[63]~136 | cin | ||
11.87 | 0.41 | out[63]~136 | combout | ||
2.712 | 0 | regb[0] | |||
0 | 0 | launch edge time |