一:优化逻辑级数主要就是减少组合逻辑
二:打开方式:
1:
2:在tcl输入如下指令:
report_design_analysis -logic_level_distribution -logic_level_dist_paths 5000 -name design_analysis_prePlace
3
4:
5:
三:如何优化逻辑级数
1:ila位宽太大
2:计数器位数太高
3:用流水线代替组合逻辑
3.1ng
3.2ok
module Test_Logic_levels( input i_clk, input i_rst, input [31:0] i_data_A, input [31:0] i_data_B, output [31:0] o_sum ); // 拆分输入为高低16位 wire [15:0] A_low = i_data_A[15:0]; wire [15:0] A_high = i_data_A[31:16]; wire [15:0] B_low = i_data_B[15:0]; wire [15:0] B_high = i_data_B[31:16]; // 第一级:低16位加法结果+进位寄存器 reg [15:0] low_sum_reg; reg carry_reg; // 低16位加法的进位 // 第二级:高16位加法结果寄存器 reg [15:0] high_sum_reg; // 输出拼接 assign o_sum = {high_sum_reg, low_sum_reg}; // 第一级:低16位加法(组合逻辑)+ 寄存器打拍 always@(posedge i_clk) begin if(i_rst) begin low_sum_reg <= 16'd0; carry_reg <= 1'b0; end else begin // 低16位加法,计算和与进位 {carry_reg, low_sum_reg} <= A_low + B_low; end end // 第二级:高16位加法(含低16位进位)+ 寄存器打拍 always@(posedge i_clk) begin if(i_rst) begin high_sum_reg <= 16'd0; end else begin // 高16位加法,加上低16位的进位 high_sum_reg <= A_high + B_high + carry_reg; end end endmodule