查看: 957|回复: 0

FPGA的在线调试

[复制链接]
  • TA的每日心情
    无聊
    2018-11-16 10:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-12-25 09:35:23 | 显示全部楼层 |阅读模式
    分享到:
    从一个研发的周期来看,设计所占的比重其实是很小的。往往耗费设计人员大量的时间和精力的是仿真和调试。工程师可以通过仿真工具对自己的设计进行验证。但不同于软件,PLD的仿真毕竟脱离了具体的硬件环境和业务环境,与真实的应用还是有一段距离。特别是在板子上出现的问题无法通过仿真复现的时候,工程师就特别需要一个在线调试的工具。
    示波器是其中一种。但示波器只能观察到芯片IO上的信息,不能深入探测信号在逻辑内部是如何传递的。如果要探测内部的信号,就必须要修改设计,将内部信号引到IO上。这就增加了调试的复杂度。而且示波器受探头数量的限制,能检测的信号有限,也不能实现复杂的触发条件。
    成熟的EDA厂家都会提供PLD的在线调试工具。通过一个JTAG电缆,就可以捕获到芯片内部的信号,而且不需要工程师修改设计文件。这就大大简化了调试的流程。是深受PLD开发者青睐的一项功能。
    每一个厂家都为自己的调试工具起了不同的名字。Xilinx的叫Chipscope,IntelPSG的是Signaltap,Lattice的工具是Reveal。这仅仅是名字的不同。其实现的基本原理是一样的:利用PLD内部的Block RAM,当触发条件成立时,将待检测的信号写入Block RAM,通过JTAG I/F读取并显示出来。在实现的具体细节上,各个厂家略有不同。对此我们没有必要判定哪个更好,这与设计这款软件的工程师的脑回路有关。当然如果你有更好的建议,可以通过代理商或原厂的渠道反馈。一个负责任的公司会认真考虑用户的需求的。
    大家在使用在线调试工具的时候,有一个重要的概念要清楚:在线调试工具采用的是同步采样。根据香农定理(也有叫奈奎斯特定理的),对模拟信号的采集,采样频率至少要2倍于待采信号才能准确的恢复信号的原貌。对数字信号,这个采样频率的要求会更高。用过示波器的都知道,示波器的采样频率一般至少是输入信号频率的10倍以上。
    同步采样要求待检测的信号必须是在采样时钟域下的信号,或者采样时钟频率是待采信号的10倍以上。如果不能满足这个要求,你通过在线调试工具看到的信号就会与实际的信号有比较大的误差。
    下面这个例子,我用120MHz的采样时钟去抓取一个44.33MHz变化的信号。信号原来的占空比是50%。实际上看到的信号,占空比是变化的。

    时钟域.jpg


    如果要采集的信号分属于不同的时钟域,我们就需要在工具中创建不同的在线调试模块。在后面我们的讨论中,我们涉及到这个话题。
    为了便于讨论,后面我们会以Lattice的Reveal为例,介绍在线调试工具的使用和一些注意事项。


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 19:56 , Processed in 0.136119 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.