在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法-Lattice-莱迪斯社区-FPGA CPLD-ChipDebug

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法

原文: 《Reveal in Crosslink》
作者: Srikanth Chekoti


大纲

  • Reveal概述
  • Crosslink中的Reveal
  • 怎样在Crosslink中使用Reveal
  • 测试DEMO

Reveal

什么是Reveal?

  • FPGA的片上调试工具
  • 所有逻辑容量大于1200 LUTs的LATTICE器件,包括Crosslink, ECP3/5, Mach XO2/3都可以使用它。
  • 通过JTAG接口与PC通讯
  • 包含两个主要组成部分:
    • Reveal Inserter
    • Reveal Analyzer

Reveal Inserter

  • 可包含被跟踪的调试信号
  • 可加入触发信号及触发条件
  • 其于触发单元和触发表达式的触发架构
  • 可以指定需要捕获的数据量
    Reveal Inserter

Reveal Analyzer

  • 内嵌的逻辑分析仪
  • 将Reveal Inserter工程中设置的触发条件对要跟踪的信号进行捕获,然后将捕获的数据传到PC上。
  • 通过JATG接口给一个已编程器件配置触发设置和更准确的信息。
  • 依据设置显示捕获的数据

ECP和MachXO系列器件中的Reveal

  • 使用专用的JTAG IO口
  • 不需要手动指定JTAG脚,Diamond软件会自动分配JTAG引脚。
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 ECP和MachXO系列器件中的Reveal

Crosslink中的Reveal

  • 在Crosslink中没有专用的JTAG引脚
  • Diamond不会自动分配JTAG引脚,需要手动的指定TCK、TDI、TDO、TMS引脚到GPIO上。
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 Crosslink中的Reveal

设计流程

  1. 创建/打开一个Lattice Diamond工程。
  2. 创建/配置一个Reveal Inserter
  3. 添加Reveal Inserter,对Crosslink而言即指定软JTAG管脚
  4. 生成比特流并烧写FPGA
  5. 创建/打开Reveal Analyzer
  6. 运行Reveal Analyzer

打开或者创建Diamond工程

  • 在File菜单点击”New->Project”创建新的Diamond工程
  • 在File菜单点击“Open->Project”打开一个已有的Diamond工程
  • 以运行在Master Link Board开发板上的 2:1MIPI CSI-2 聚合桥接DEMO为例

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 打开或者创建Diamond工程

创建或者打开一个Reveal Inserter工程

  • 在Crosslink中添加Reveal的步聚跟在其它器件中添加Reveal的步骤是一样的。只是需要手动指定JTAG引脚。
  • 创建一个新的Reveal Inserter, 可以点击Reveal Inserter按钮图标或者点击菜单 Tools->Reveal Inserter

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 创建或者打开一个Reveal Inserter工程

配置 Reveal Inserter

配置 Reveal Inserter

  • 添加要追踪的信号
    • 图中的reset_n_i, byte_clk_o 和 byte_data_i 信号将会被捕获
  • 指定采样时钟
    • 在这个例子中,我们将用PLL产生一个Reveal 采样时钟。
  • 指定存储信号的缓冲深度
    -本例中选择的采样缓冲深度是512
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 配置 Reveal Inserter

设置触发单元

  • 如图采用reset_n_i信号的上升沿进行触发
  • 也可以手动触发

设置触发表达式

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 设置触发单元 设置触发表达式

保存Reveal Inserter

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 保存Reveal Inserter

将Reveal Inserter 添加到diamond工程中

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 将Reveal Inserter 添加到diamond工程中

  • 在crosslink器件上没有专用的JTAG接口
  • 当Reveal被插入到设计中时工具会自动添加软的JTAG逻辑到工程中。
  • 需要手动指定引脚
  • 点击 OK 按钮以继续
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 处理警告

  • 请确保Reveal Inserter处理激活active状态。

  • 如果Reveal Inserter处理激活状态,这个reveal inserter文件的名字将会高亮加粗
  • 在一个Reveal Inserter文件上右击选择“Set as Active Debug File”将Reveal插入到设计中。

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 激活Reveal Inserter

分配软JTAG的管脚

  • 综合设计,然后用Spreadsheet指定软JTAG的IO管脚
    • 也可以用LPF文件进行约束
  • 软JTAG管脚可以使用任意的IO

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 分配软JTAG的管脚

  • 如果Reveal被取消激活,那么JTAG管脚将会被自动移除
  • 需要使用HW-USBN-2A或者HW-USBN-2B的下载线
  • 图中使用Bank0作为JTAG IO
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 分配软JTAG的管脚2
    • JTAG_TCK -> F2(CLK_SCL)
    • JTAG_TDI -> J2(CLK_SDA)
    • JTAG_TMS -> J1(SPISO)
    • JTAG_TDO -> H1(MCLK)

生成比特流Bitsteram

  • 余下的步骤都是和其它器件一样
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 生成比特流Bitsteram

烧录FPGA

  • 使用Reveal Analyzer,需要器件上运行了Reveal Inserter
  • 打开Programmer对器件进行编程
  • 如果你扫描到的器件是MachXO3LF而不是Crosslink,那和换个别的端口试一试。
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 烧录FPGA
  • 烧录FPGA的过程状态如下图
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法  烧录FPGA的过程状态图

连接USBN-2A/2B下载线

  • 把下载线的TCK、TDI、TDO和TMS与板子上的对应引脚连接起来。
  • 下载线的GND和VCC也要连上,将VCC连到JTAG管脚所在的VCCIO上,本例中VCC连到VCCIO0上。

在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法  连接USBN-2A/2B下载线

启动Reveal Analyzer

创建Reveal Analyzer

  • 点击 Reveal Analyzer的快捷图标按钮创建一个新的Reveal Analyzer工程。
  • 或者通过点击菜单 “Tools -> Reveal Analyzer”进行创建
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 新建Reveal Analyzer

运行Reveal Analyzer

  • Reveal Analyzer的界面如下
  • 点击图中红色框标出的开始按钮以运行Reveal Analyzer
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 运行Reveal Analyzer

  • 第一次配置Reveal Analyzer需要选择正确的触发条件,然后等待条件发生。

  • 一旦Reveal Analyzer运行,如果触发条件一直没有满足,Reveal Analyzer将会始终处理Running状态,如下图
  • 可以点击下图中的红色按钮停止运行
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 停止运行Reveal Analyzer
  • 如果触发条件满足,Reveal Analyzer将会显示捕获的数据,如下图
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法  Reveal Analyzer显示捕获的数据

  • 下图是一个非常常见的错误,请作如下检查:

    • 确保器件已经烧录了包含有Reveal Inserter的程序,并且程序已经在运行。
    • 检查Reveal的采样时钟频率
    • 检查JTAG下载线和下载线的连接状态
      • USB2.0 Mini-B的下载线是不被支持的
        在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 常见的错误
  • 如果问题仍然没有解决,可以试试下面的步骤
    • 打开Windows的任务管理器,然后点击进程选项卡
    • 右键点击“cableserver.exe”,然先选择“终止进程”
      在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 常见的错误解决方法1
    • 最大化Reveal Analyzer
      在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 常见的错误解决方法2
    • 点击菜单Desing -> Cable Connection Manager,打开Cable Connection Manager。
      在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 常见的错误解决方法3
    • 点击”Detect”按钮扫描Lattice编程下载线
    • 在检测到可用的下载线之前,OK按钮都是被禁用的。
      在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 常见的错误解决方法4
    • 一旦Cable Connection Manager 检测到下载线,请点击’OK’按钮
      在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 常见的错误解决方法5
    • 最后运行Reveal Analyzer
      在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 常见的错误解决方法6

更多关于Reveal的信息

  • 可以在Diamond的Start Page页找到Reveal User Guide and Troubleshooting Guide 获取更多关于Reveal异常处理的信息
    在Lattice CrossLink 器件中使用嵌入式逻辑分析仪Reveal方法 获取更多关于Reveal的信息
请登录后发表评论