fpga系列 HDL:Quartus II SignalTap的Create Signal Tap List File功能

Create Signal Tap List File

  • SignalTap II 需要JTAG与FPGA连接,程序在真实硬件中运行。

设置

  • Filter 选择 SignalTap II: pre-synthessis 项(否则可能找不到网络标识)
  • SignalTap II设置完成之后再次进行综合。

抓取

  • 保存stp后,下载程序,进行波形分析

Create Signal Tap List File

  • 生成的数据示例:

    Signal Legend:

    Key Signal Name

    0 = top:BANK0|CS
    1 = top:BANK0|STA
    2 = top:BANK0|STA[2]
    3 = top:BANK0|STA[1]
    4 = top:BANK0|STA[0]

    Data Table:

    Signals-> 0 1 2 3 4

    sample

    -64 1 3h 0 1 1
    -63 1 3h 0 1 1
    -62 1 3h 0 1 1
    ......
    -3 1 3h 0 1 1
    -2 1 0h 0 0 0
    -1 1 1h 0 0 1
    0 1 2h 0 1 0
    1 1 3h 0 1 1
    2 1 3h 0 1 1
    3 1 3h 0 1 1
    ......
    440 1 3h 0 1 1
    441 1 3h 0 1 1
    442 1 3h 0 1 1
    443 1 3h 0 1 1
    444 1 3h 0 1 1
    445 1 3h 0 1 1
    446 1 3h 0 1 1
    447 1 3h 0 1 1

数据在仿真中使用

文本处理

复制代码
03 00 01 01  // 去掉h字符,处理为可读数据
03 00 01 01
03 00 01 01
03 00 01 01

测试代码

复制代码
module top (
    input wire clk,
    input wire rst_n,
    input wire [15:0] data_in,
    output reg [15:0] data_out
);

reg [15:0] intermediate_data;

//(* preserve *)
reg [7:0] intermediate_data; 


always @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
        intermediate_data <= 8'b0;
        data_out <= 8'b0;
    end else begin
        intermediate_data <= data_in;
        data_out <= data_in;
    end
end

endmodule
  • $readmemh("<数据文件名>",<数组名>,<起始地址>,<结束地址>)函数读取

    module top_test;
    reg [7:0] memory [0:15];
    initial begin
    // 使用 readmemh 加载数据 readmemh("E:\Projects\top\data.dat", memory);
    end
    // 信号声明
    reg clk;
    reg rst_n;
    reg [15:0] data_in;
    wire [15:0] data_out;

    复制代码
      // 实例化被测模块
      top uut (
          .clk(clk),
          .rst_n(rst_n),
          .data_in(data_in),
          .data_out(data_out)
      );
    
      // 时钟生成
      initial begin
          clk = 0;
          forever #5 clk = ~clk;  // 10个时间单位的周期
      end
    
      // 复位和测试序列
      initial begin
          // 初始化信号
          rst_n = 0;
          data_in = 8'b0;
    
          // 施加复位
          #10 rst_n = 1;  // 释放复位
    
          // 等待几个时钟周期
          #20;
    
          // 提供一些测试向量
          @(posedge clk) data_in = memory[0];
          @(posedge clk) data_in = memory[1];
          @(posedge clk) data_in = memory[2];
          @(posedge clk) data_in = memory[3];
          @(posedge clk) data_in = memory[4];
          @(posedge clk) data_in = memory[5];
    
          // 结束仿真
          #20 $finish;
      end

    endmodule

仿真结果

相关推荐
GateWorld2 小时前
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析LLP (二)
fpga开发·mipi csi2
hahaha601612 小时前
Xilinx 325T FPGA 中的 GT(GTP 或 GTX)收发器和普通 LVDS 接口的差模和共模电压
fpga开发
hahaha601619 小时前
FPGA没有使用的IO悬空对漏电流有没有影响
fpga开发
贝塔实验室1 天前
FPGA 动态重构配置流程
驱动开发·fpga开发·硬件架构·硬件工程·射频工程·fpga·基带工程
GateWorld1 天前
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
fpga开发·mipi csi2
思尔芯S2C1 天前
思尔芯携手Andes晶心科技,加速先进RISC-V 芯片开发
人工智能·科技·fpga开发·risc-v·debugging·prototyping·soc validation
tiantianuser2 天前
RDMA简介5之RoCE v2队列
fpga开发·verilog·fpga·rdma·高速传输·rocev2
碎碎思2 天前
打破延迟极限的 FPGA 机械键盘
fpga开发·计算机外设
hahaha60163 天前
Flash烧录速度和加载配置速度(纯FPGA & ZYNQ)
fpga开发
hahaha60163 天前
ARINC818编解码设计FPGA实现
fpga开发