FPGA 逻辑级数

一:优化逻辑级数主要就是减少组合逻辑

二:打开方式:

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
相关推荐
qq_小单车8 小时前
xilinx-DNA
fpga开发·xilinx
Flamingˢ9 小时前
FPGA中的嵌入式块存储器RAM:从原理到实现的完整指南
fpga开发
Flamingˢ10 小时前
FPGA中的存储器模型:从IP核到ROM的深度解析与应用实例
网络协议·tcp/ip·fpga开发
FPGA小c鸡1 天前
【FPGA深度学习加速】RNN与LSTM硬件加速完全指南:从算法原理到硬件实现
rnn·深度学习·fpga开发
Aaron15881 天前
通信灵敏度计算与雷达灵敏度计算对比分析
网络·人工智能·深度学习·算法·fpga开发·信息与通信·信号处理
博览鸿蒙1 天前
IC 和 FPGA,到底区别在哪?
fpga开发
思尔芯S2C1 天前
FPGA原型验证实战:如何应对外设连接问题
fpga开发·risc-v·soc设计·prototyping·原型验证
Flamingˢ1 天前
FPGA实战:VGA成像原理、时序详解与Verilog控制器设计与验证
fpga开发
FPGA_小田老师1 天前
xilinx原语:OSERDES2(并串转换器)原语详解
fpga开发·lvds·xilinx原语·oserdese·并串转换
Blossom.1181 天前
从数字大脑到物理实体:具身智能时代的大模型微调与部署实战
人工智能·python·深度学习·fpga开发·自然语言处理·矩阵·django