1 推进FPGA调试技能改动的原因
进行硬件规划的功用调试时,FPGA的再编程才能是要害的长处。CPLD和FPGA前期运用时,假如发现规划不能正常作业,工程师就运用“调试钩”的办法。先即将调查的FPGA内部信号引到引脚,然后用外部的逻辑剖析仪捕获数据。可是当规划的杂乱程度添加时,这个办法就不再合适了,其中有几个原因。榜首是因为FPGA的功用添加了,而器材的引脚数目却缓慢地添加。因而,可用逻辑对I/O的比率减小了,参见图1。此外,规划很杂乱时,一般完结规划后只要几个空余的引脚,或许根本就没有空余的引脚能用于调试。
图1 Lattice FPGA的LUT/可用I/O
第二,现在规划的杂乱性常常需求调查许多信号,而不是几个信号。常用的技能是完成较宽的内部总线,以便在较大的FPGA中到达高的体系吞吐量。假如置疑内部的32位总线里有坏的数据,则难以用几个I/O引脚来确认问题所在。
第三,一般需求在体系中测验杂乱的功用。在这种状况下,在体系中调试时拜访一些I/O也许是有限的。新类型的包还束缚拜访FPGA引脚。体系速度也是个问题,因为探针的衔接或许会引起功用或许噪声信号下降。
最终,推进FPGA调试办法改动的要害因素是有了新的东西,这些东西选用内部或许嵌入式逻辑剖析仪。
具有这些东西可得到最佳的成果,而不是用与从前东西相同的办法。资源、静态参数和动态参数一般束缚了内部逻辑剖析仪和外部逻辑剖析仪。本文对这两种类型东西的束缚进行了比较,调查怎么最佳地运用内部逻辑剖析仪。
2 外部逻辑剖析仪遭到的束缚
外部逻辑剖析仪现已用了几十年了。外部逻辑剖析仪的最大长处是能够存储很多的信号信息,或许用来盯梢数据。装备在不断改动,但大多数外部逻辑剖析仪能够存储兆字节的数据。为了对FPGA运用外部逻辑剖析仪,数据信号有必要引到片外。可用两种办法中的一种来做。榜首种办法是直接把信号送到用于调查的I/O引脚。取决于FPGA 的封装类型,触摸I/O引脚 或许会有困难。 针对用这种办法进行调试的电路板 规划 要用衔接器,例如与FPGA相连的MICTOR衔接器。可是这种办法不是很有用, 因为每个信号都需求一个I/O引脚。
第二种办法是刺进能把信号引到I/O的核。这种办法的长处是这个核规划成能多路复用信号至I/O引脚,答应引脚同享。这种办法的束缚是信号要被外部的逻辑剖析仪实时捕获,多路复用大大下降了快速捕获信号的或许性。因为这个原因,一般运用2x 或许 4x多路复用计划。这意味着现在32 个I/O引脚能够支撑64个或128个信号。这样得到了很大的改善,可是依然有束缚,例如要调试宽总线的状况。一旦信号衔接到外部的逻辑剖析仪,然后就设置触发和数据捕获条件。
运用外部逻辑剖析仪设置的束缚是有限的信号、高速触发逻辑和很多的盯梢存储器。大多数逻辑剖析仪运用状况机触发机制。用户指定一个值等候这个信号,然后捕获这个数据,或许进入另一个状况,寻觅不同的状况。这些信号自身是静态的,但各种状况是动态的,会在任何时候发生改动。给定束缚后,这个办法很有用。因为束缚了信号的数目,在信号组合的状况下削减了操作数。可是盯梢的存储器相对较大,企图找到一个挨近的调查点是很一般的事,然后捕捉很多的数据以找到问题所在。
3 运用内部逻辑剖析仪
用内部逻辑剖析仪能与外部逻辑剖析仪相同对FPGA进行功用调试。内部逻辑剖析仪运用嵌入在FPGA规划中的一个或多个逻辑剖析仪核。规划者运用PC在软件中设置触发条件,经过JTAG拜访FPGA。一旦逻辑剖析仪软核捕获了数据,经过JTAG将信息回来PC,然后规划者对这些数据进行调查。触发信号的杂乱性和盯梢存储器的巨细对信号数目有束缚。大多数状况下,规划者能够调查成百上千个信号。
触发资源受FPGA束缚,即未运用的逻辑和RAM。盯梢存储器有些完成需求RAM。有些则需求RAM或许LUT。可是,所需求的盯梢存储器比用外部逻辑剖析仪大大削减,一般为数千位与数百万位之比。触发和数据捕获以规划的全速进行,因为信号不需求在FPGA片外复用。
用外部逻辑剖析仪时,信号有必要静态界说。改动信号常常需求FPGA再次履行,虽然有些东西供给只添加FPGA布线来改动部分或悉数衔接信号的才能。在调试期间,大多数完成部分或一切触发条件动态地改动。可是,触发的杂乱性的改动取决于所用的东西。信号不同越多,所能供给的存储器就越小。为了取得最佳的成果,不同的触发选项驱动了运用内部逻辑剖析仪的需求。
杂乱调试的一个比如是在SMPTE SDI HD显现中寻觅一个特别的像素。在特别的状况下,找到EAV (end active video)时序是有必要的,然后寻觅与数据相关的特别线数,再寻觅SAV (start acTIve video)时序。最终依据线中对应的像素,核算字节数目,参见图2。
图2 SDI HD数据流实例
为了调试找到这种数据需求寻觅值的时序,再找特别值,然后完毕序列,最终在捕获数据前数时钟的数目。为了了解是怎么做的,有必要检查详细的完成进程。莱迪思的Reveal硬件调试器运用触发单元和触发表明以决议触发点。触发单元是一个比较器,触发表明答应触发单元和序列值组合在一起。
关于这个SDI实例,用3个触发单元来界说EAV和SAV序列,别的的触发单元用于线数,最终在发现数据前的一个计数声明用于等候。触发树立的实例如图3所示。这个设置能够用来寻觅任何要求的线数和像素,因为线数触发的值和计数能够动态地改动。
图3 触发设置的实例
4 定论
工程师将持续运用外部逻辑剖析仪,因为用它剖析体系级功用时是很有价值的。可是用于内部FPGA调试需求衔接到电路板,信号的数目遭到了束缚。而内部逻辑剖析仪在可用信号数目方面供给了很大的自由度,可是在触发逻辑和盯梢存储器方面遭到束缚。可是小心肠运用触发选项使内部逻辑剖析仪在准确的时刻开端捕获数据,要最大化可用的资源。这个比如中,需求剖析在SDI视频信号里特别的像素(线和字)的杂乱完成被分解成简略的元素,这种办法提高了功率。这个比如仅仅阅读了内部逻辑剖析仪的运用和使用。因为FPGA规划杂乱性不断添加,针对功用验证和调试,内部逻辑剖析仪和相似的东西遭到了规划者的喜爱。
责任编辑:gt