跳到主要内容
SoC设计

SoC PV

SoC PV模型相关内容

SOC PV

SoC 性能验证(Performance Verification)

验证目标

SoC性能验证主要验证以下指标:

指标验什么关键参数
带宽数据传输速率bits/ns, GB/s
延迟请求到响应时间cycles, ns
吞吐量单位时间处理量transactions/cycle
仲裁公平性多主设备竞争时的公平性服务时间比
并发能力多任务同时访问性能并发数

基础测试用例

1. 带宽测试

task measure_bandwidth;
    int start_time, end_time;
    int data_size = 1024;  // 传输1KB数据
    real bandwidth;
    begin
        start_time = $time;
        repeat(data_size) begin
            @(posedge clk);
            ddr_read_en = 1;
            ddr_addr = addr_counter;
            @(posedge ddr_ready);
        end
        end_time = $time;
        bandwidth = (data_size * 32) / (end_time - start_time);
        $display("Bandwidth: %0f Gbps", bandwidth * 1000);
    end
endtask

2. 延迟测试

task measure_latency;
    int start_cycle, end_cycle;
    begin
        start_cycle = cycle_count;
        @(posedge clk);
        bus_req = 1;
        @(posedge bus_grant);
        bus_req = 0;
        end_cycle = cycle_count;
        $display("Latency: %0d cycles", end_cycle - start_cycle);
    end
endtask

3. 仲裁公平性测试

task test_arbitration;
    begin
        fork
            master0_write(32'h0000, 32'hDEAD_BEEF);
            master1_read(32'h1000, 32);
            master2_write(32'h2000, 32'hCAFE_BABE);
            master3_read(32'h3000, 64);
        join
        check_fairness();
    end
endtask

关键指标定义

带宽(Bandwidth)

带宽 = (数据量 × 位宽) / 传输时间

例:DDR4-3200
    理论带宽 = 3200 MT/s × 64 bits = 25.6 GB/s

延迟(Latency)

延迟 = 请求发出 → 数据返回的总时间

组成:
    1. 仲裁延迟:等待总线授权
    2. 传输延迟:数据传输时间
    3. 处理延迟:目标设备处理时间

吞吐量(Throughput)

吞吐量 = 成功传输的总数据量 / 总时间

考虑因素:
    - 背靠背传输能力
    - 突发传输效率
    - 流水线深度

常见性能瓶颈

瓶颈类型表现解决方案
总线竞争多主设备等待时间长增加总线带宽、优化仲裁
存储带宽不足DDR访问延迟高增加存储通道、提高频率
缓存命中率低频繁访问主存优化缓存策略、预取
中断响应慢CPU处理延迟优化中断控制器、减少中断源

最后更新: 2026-07-15