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
相关推荐
海盐nnn5 小时前
面向 AI 的 FPGA 开发流程:别急着让它写代码,先把方向定好
fpga开发
zlinear数据采集卡6 小时前
数据采集卡从入门到精通(38):上位机开发实战——Python/QT/LabVIEW的技术选型与分层架构
python·单片机·嵌入式硬件·qt·fpga开发·开源·labview
zlinear数据采集卡8 小时前
数据采集卡从入门到精通(42):项目实战三——设备预测性维护系统,从布点到预警
开发语言·单片机·嵌入式硬件·安全·fpga开发
国科安芯21 小时前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
明德扬1 天前
多路MIPI摄像头如何同步聚合?一文看懂FPGA视频汇聚方案
fpga开发·音视频
松小白song1 天前
FPGA开发三大铁律:位宽、逻辑与连接,为何仿真通过上板却挂?
fpga开发
FPGA小徐2 天前
FPGA 时钟频率计算与单位换算
fpga开发
h×32 天前
FPGA视频4分屏项目 - 系统架构详细讲解
fpga开发·音视频
秋92 天前
硬件工程师全岗位薪资全景解析(2026版):IC设计·嵌入式·板级硬件·FPGA·晶圆制造
fpga开发·制造
博览鸿蒙2 天前
FPGA 工程师到底有哪些方向?每个岗位都在干什么?一篇给你讲清楚
fpga开发