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
相关推荐
minglie119 小时前
简易寄存器接口SMMR---正交编码器
fpga开发
神电测控1 天前
新品发布:32通道50MS/s同步并行14位采集模块PG-FMC9249(支持任意FPGA/ZYNQ,兼容LabVIEW FPGA软件开发)
fpga开发·labview·ni·神电测控·王电令·ad9249·32通道
Drgfd1 天前
半导体国产替代进入“深水区”:决战设备、材料、IP三大高地
网络·fpga开发
国产HT1621B1 天前
YL1650 LED驱动芯片详解:从原理到实战应用(附51单片机驱动代码)
stm32·单片机·嵌入式硬件·mcu·fpga开发·lcd驱动
szxinmai主板定制专家1 天前
驱控一体新范式:RK3576+FPGA+CODESYS工业实时AI控制架构全解
人工智能·嵌入式硬件·计算机视觉·fpga开发·架构·工业ai·驱控一体
国科安芯1 天前
ASC0101S自动双向电平转换原理深剖
单片机·嵌入式硬件·fpga开发·云计算·信息与通信
落chen1 天前
7 Series FPGAs Clocking Resources
fpga开发
落chen2 天前
基于FPGA的IIC协议通信-强化篇
fpga开发
梦开始的地方 �2 天前
实例化和句柄
fpga开发
lf2824814312 天前
11 FM调制与解调的仿真
fpga开发