# 开源免费API:FPGA信号全可见 **Repository Path**: forgeda/ahto-api ## Basic Information - **Project Name**: 开源免费API:FPGA信号全可见 - **Description**: 采用EDA硬件辅助验证行业先进的非实时信号跟踪技术,用户无需在源码/网表级别植入任何探针(Probe),就能在FPGA调试过程中,获得100%信号可见性。 - **Primary Language**: 其他 - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 1 - **Created**: 2022-12-07 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: hardware **Tags**: 前沿技术, 异构计算, EDA, 硬件加速, FPGA ## README ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/ahtoapi-logo.PNG) #### 如果说调试是自动化最后的堡垒,那么数据则是调试的生命线。采用先进的位流数据快照技术,无需额外占用任何片上资源,即可获取FPGA设计100%的信号可见性(Global System Visibility)。 与FPGA芯片数据相关的任何自动化,大多以TCL语言实现,本次开源免费的复及科技AHTO-API,采用代表FPGA最先进调试验证能力的EDA硬件辅助验证工具广泛使用的TCL语言编写,支持Xilinx第七代的 全部芯片型号,易于使用。对于在校学生,与具体项目相结合,可发表高质量的学术论文;对于工程师,可用于服务实际项目的调试验证,提升开发效率等。 ## 目录 1. [设计理念](#1-设计理念) 2. [关于API](#2-关于API) 3. [核心功能](#3-核心功能) 4. [应用背景](#4-应用背景) 5. [功能扩展](#5-功能扩展) 6. [运行启动](#6-运行启动) 7. [获取方式](#7-获取方式) 8. [芯片型号](#8-芯片型号) 9. [联系我们](#9-联系我们) ## 1. 设计理念 代码是设计出来的,也是调试出来的。如果调试不直观,那么即使有可见性,也无法知道看到的是什么。 对于FPGA调试,一直以来工程师普遍抱怨,可见性非常差,但可见性、可观测能力,或者说能够获取尽可能多的数据,是做出正确决策的第一步。 FPGA芯片作为价格亲民的"ASIC",两者共享一样的设计开发流程,把代表FPGA最先进调试能力的EDA硬件辅助验证技术,服务日常的FPGA应用开发。 ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/GSV.JPG) ## 2. 关于API AHTO是Automatic Hardware State Observability的首字母缩写,直接调用驱动芯片运行的二进制数据APIs,快速获取FPGA运行的状态数据(DFF)。 借用软件行业流行的低代码设计概念,用户只需几行代码,三个步骤的API调用操作,即可自动串接获取寄存器信号值所需的全部处理流程。 ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/workflow.PNG) 采用EDA硬件辅助验证行业广泛使用的Tcl语言编写,整体框架设计由数据关联的表单形式组成,简捷高效: * 增强的数据分析能力: 对FPGA内部所有寄存器数据的在线捕获速度,提升数十倍以上; * 运行状态的访问能力: 支持在调试过程中的任意时刻,随时获取所有寄存器的状态值; ## 3. 核心功能 新思科技将该技术誉为FPGA原型验证的技术圣杯。2015年,推出当时最先进高性能ASIC原型验证系统HAPS80(芯片型号VU440 FPGA)首次使用。 ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/HAPS-GSV.jpg) AHTO-API采用同样的技术,以非插桩、零侵扰工作方式,不占用任何宝贵的FPGA片上资源。并且是完全开源免费使用。 ## 4. 应用背景 随着FPGA容量变得更大,应用开发也比以往更为复杂。 除了那些专用于超大规模IC设计的特殊功能外,其它提升调试验效率的软件功能,同样可服务于日常的FPGA应用设计。 在计算机领域,不管是设计(Dev)还是运维(Ops),如果某个系统内部是“不可见”,那么就距离崩溃不远了。但在FPGA行业,全可视化调试能力(Full Visibility&Debugging),长期只是EDA硬件辅助验证,才特别配备的专有先进功能。 EDA硬件辅助验证行业的FPGA调试验证技术,可查看复及科技近期的公众号原创文章 :point_right: [FPGA调试验证工具及方法详解](https://mp.weixin.qq.com/s/jiFcUvJixsqXVSN4puP27w?token=1167322581&lang=zh_CN) EDA硬件辅助验证行业整体概况介绍,参见 :point_right: [行业往事:天下武功,皆出少林](https://mp.weixin.qq.com/s?__biz=Mzg4MTg4MjQzNQ==&mid=2247483719&idx=1&sn=ae1fc3b5b7c94178e55d9d6c5f0ba47b&chksm=cf5e656bf829ec7d3b2e1b1c585546d2614a0e6e67508b97750b3720dcefa4c992781455f9f7#rd) ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/forgeda-1.png) 以及发表在半导体行业观察的封面文章 :point_right: [FPGA的中场战事](https://mp.weixin.qq.com/s?__biz=Mzg4MTg4MjQzNQ==&mid=2247484317&idx=1&sn=4c5d89c47f8fc53150ef075d72014a13&chksm=cf5e67b1f829eea7083dded7b4140241cb9a7a997c77f8be9c05a73ac47da85a2b8b75b9511f#rd) ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/forgeda-2.png) ## 5.功能扩展 在对RISC-V CPU、多核处理器等SoC系统进行调试验证时,由于软件和硬件的在线调试通常是分离的,加之硬件电路有限的可观测能力,想要实现硬件电路与软件程序之间的协同调试,并不容易。 只有EDA巨头或者少数领先公司的专用工具可以做到,新思科技的Verdi,Cadence的Indigo等,相对昂贵。 在您熟悉使用AHTO-API后,也可用与更为复杂的SoC设计。 #### * 用于建立指令精确的软/硬件同步视图,支持对SoC系统的软/硬件协同调试工作; 用户可通过AHTO-API,建立指令精确的同步视图,获得对硬件活动的可见性,以及程序指令的完整执行场景,缩短查找错误所需的时间。 #### * 在任意时刻观测任意寄存器状态信号,避免不必要的编译迭代过程 当信号追踪调试工具(如ILA等)抓取的信号数量不够时,直接用AHTO-API进行状态信号的观测,例如:检查 reset信号有没有拉起来,控制寄存器是否配置正确,为后续的信号抓取提供指导,加快调试进程。 #### * 以“所见即所得”方式,获得完整的故障场景,快速确定后续调试方向 当设计因未知原因出错,走到了一个不知道怎么走下一步的情况,如系统发生挂起、死锁等问题时,直接使用AHTO-API,把芯片内部全部寄存器状态值打印出来,使用户能够方便地分析某个状态为何一直没有跳转,或者某 个控制字的值为何与预期不符,然后就从这个错误模块开始进行调试。 ## 6. 运行启动 操作系统: * Linux * x86-64bit Windows; 在Windows和Linux环境下,均可通过Vivado Tcl Shell,或者安装standalone tcl shell,都可直接启动AHTO-API。 :point_right: [瞬感探针AHTO-API使用指南](https://gitee.com/forgeda/ahto-api/raw/master/docs/AHTO-API-User-Guide.pdf)。 ## 7. 获取方式 提供三种获取渠道: 1)直接在本页面右上角的“克隆/下载”,通过 git pull命令,或者选择downlod zip文件。 2)打开微信“扫一扫”,通过二维码直接下载: ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/link-addr.png) 3)也可直接从百度网盘中下载同样的免安装软件包,解压缩后运行使用。 链接: https://pan.baidu.com/s/1uFy8P5R8Xyc_QD7YFS6cJA 提取码: 2016 ## 8. 芯片型号 支持Xilinx第七代Virtex、Kintex、Artix的全部应用设计。 ![Image text](https://gitee.com/forgeda/ahto-api/raw/master/images/fpga_types.png) 在demo/arty-35t目录下提供了三个不同类型的设计样例,可供参考。 ## 9. 联系我们 关于AHTO-API的使用意见、建议或者任何反馈,都可发送至viewall#forgeda.com,我们非常乐意为您详尽解答。 关注公众号,获取新资讯,解锁更多详情 ![Image text](https://gitee.com/forgeda/forgedaX-35T/raw/master/images/forgeda.jpg)