nbhkdz.com冰点文库

FPGA设计的验证技术及其应用原则

时间:2010-11-28


分享:FPGA设计的验证技术及其应用原则 | 赛灵思中文社区

页码,1/4

分享:FPGA设计的验证技术及其应用原则

FPGA设计和验证工程师当今面临的最大挑战之一是时间和资源制约。随着FPGA在速度、密度和复杂性方面的增加,完成一个完整时序验证对人力和计算机处理器、存储器 提出了更多更高的要求。 随着FPGA器件体积和复杂性的不断增加,设计工程师越来越需要有效的验证方。时序仿真可以是一种能发现最多问题的验证方法,但对许多设计来说,它常常 是最 困难和费时的方法之一。过去,采用标准台式计算机的时序仿真是以小时或分钟计算的,但现在对某些项目来说,在要求采用高性能64位服务器的情况下,其 测试时间却 要几天甚至几周。这样,这种方法首先消弭了采用FPGA带来的上市时间和实施成本方面的好处。 FPGA设计和验证工程师当今 面临的最大挑战之一是时间和资源制约。随着FPGA在速度、密度和复杂性方面的增加,为完成一个完整时序验证,不仅对人力也对计算 机处理器和存储器提出了 更多更高的要求。另外,对设计和验证工程师来说(许多情况可能是同一个人),这为在更短的时限内,以更大信心对当今的FPGA设计在第一次就 可实施彻底成 功验证提出了更艰巨的挑战。 时序仿真的重要性 为确保设计可以工作及能连续稳定工 作,当今的FPGA既需要功能又需要时序仿真。FPGA设计的复杂性在增加,而传统的验证方法论又不再有效。过去,在FPGA设 计流中,模拟并非一个重要 阶段。但眼下,却成为最关键的步骤之一。当采用类似Xilinx的Virtex-5 FPGA Family等更先进FPGA设计时,时序仿真就变得尤其重要。 传统的FPGA验证方法是: 1.功能模拟 在验证过程中,功能模拟是个非常重要的部分,但不应是唯一部分。当进行功能模拟时,它只对RTL设计的功能性进行测试。它不包括任何时序信息,它也不考虑由实 现和优化对原初设计造成的改变。 2. 静态时序分析/形式验证 许多工程师认为为校验设计是否满足时序要求,只需进行静态时序分析。将此作为唯一时序分析方法有很多缺陷。静态分析无法发现当设计动态运行时,才能发现 的 任何问题。静态分析仅能显示该设计作为整体是否可满足设置和保持要求且一般仅达到施加的时序约束的水平。在实际系统中,动态因素可造成FPGA的时序违 规。例子之 一是块RAM(Block Ram)冲突。在FPGA器件中,随着双端口块RAM(Dual Port Block Rams)的引入,应留心避免同时读/写同一个区域,否则,读取的数据会不正确。静态分 析工具将永远无法发现该问题。类似,若有被误读的时间规范 (timespec),静态时序分析也将难以发现此问题。 3. 在系统测试 实际上,每位工程师都依赖该方法进行最终 测试。若设计能在板上工作且通过了各种测试,则该设计就将被发布。这肯定是个非常好的测试,但它也许没能发现全部 问题。有时,在一些边界情况 (corner-case)被发现前,设计需运行相当长的时间。诸如时序违约等问题并非在所有芯片中都以相同方式显露出来。当发现这些问题时,设计 通常已 交到用户手中。这意味着为找出此问题所导致的高成本、停工期和挫折感。为能正确完成在系统测试,必须清除全部硬件故障,其中包括与SSO相关的问题、交叉 干扰以及其它与板卡关联的问题。若在启动在系统测试前,有需要连接的外部接口,则将延缓产品的上市时间。 从上可知,传统的验证方法不足以进行完整的系统验证。有充足理由进行动态时序分析。 时序仿真是可在其中进行动态分析的唯一方法。许多工程师有令人信服的理由拒绝进行时序分析。一些主要担心问题是: 它很费时; 为执行验证,需要大量存储器和处理器资源; 为没有办法重复使用取自功能模拟的测试基准,必须创制新测试基准; 为因为整个网络表是展开的,所以设计调试成为一件琐事,另外,没办法及时定位问题所在; 为时序仿真显示最坏情况的数量,设计本身可能足够超脱,不至于如此兴师动众; 为并非所有子模块都是在一个环境下进行编程的; 为无法将在各个不同场所编程的部分分开,因为这些部分的设计师应是那些为能进行验证从而对设计有更深刻把握的人。 这些都是正当的关注,这也就是为什么下一节将讨论工程师能做些什么以克服其中某些问题的原因。 在时序仿真中采用Netgen以获得精准结果 Xilinx提出了一种革命性方法以从Netgen中得到用于动态分析匹配的静态时序分析数和时序数。与-pcf 开关一起运行Netgen并指向一个有效PCF文件将确保得自Trce和 Netgen的数将互相匹配。 在时序计算时,所有新Xilinx架构都利用了相对最小数(Relative Minimums)的好处。利用相对最小数意味着在设置计算以及相反的保持计算时,将采用最大时钟延时和 最小数据延时。目前的模拟器不支持使用相同SDF 文件中分别取自MIN域和MAX域的数。基于该限制,Xilinx需要两个不同的模拟-- 一个用于设置,另一个用于保持。 Netgen编写SDF文件,所以,当运行SDFMAX模拟时,将利用最大时钟延时和最小数据延时。SDFMAX保证设计能满足目标器件的设置要求。当运行SDFMIN模拟时, 利用最小时钟延时和最大数据延时。SDFMIN保证设计能满足目标器件的保持要求。 改进时序仿真体验 当描述时序仿真时,“总体大于部分的总合”这样一句常语几乎可被反过来说成:“部分的总合大于总体。”后一句话总结了本节所要阐释的内容。为缩短时序仿 真 所用的时间,我们将不得不依靠“分割后各个击破”的方法。对一个大的展开网络表来说,完成任何形式的验证都将是件费时和枯燥的任务。因此,采取的措施是 将网络

http://xilinx.eetrend.com/article/1273

2010-11-6

分享:FPGA设计的验证技术及其应用原则 | 赛灵思中文社区

页码,2/4

表分割为多个小部分。 该方法论并非是数字逻辑领域的一场革命,它是一种渐进的沿革。自从HDL出现后,设计师一直喜欢采用基于部 分组件的模拟而非整个大设计。问题是,没办法将此 手段引入时序仿真。这与在FPGA实现中,在保持层次中所取得的进展不再一样。其基于的理念很简单。许多 设计创生于若干更小模块,而验证在各个子模块层次进行。 不久前,推出了一种称为KEEP_HIERARCHY的方法。该方案允许设计在 经历实现时也能保持层次。它在改进时序仿真方案方面前进了一小步,但它有助于解决的实 际问题是在调试阶段。现在,设计不再是一个展开网络表。后标注的 HDL文件具有不同的层次部分以匹配原初设计。现在,当在时序仿真中发现问题时,能容易地多地对 故障源进行定位并进行调试除错。正如上面提到的,这只是该 特性全面能力的一个过度。 KEEP_HIERARCHY的下一步是生成“多层次文件(Multiple Hierarchical Files)”的能力。这一引入到软件工具中的特性能为层次的各部分编写独立的网络表及相应的 SDF(标准延时格式)文件。该特性的引入为与时序仿真一起 使用的各种方法敞开了大门。一旦能为层次的各部分编写,则每个时序模块看起来与RTL版本一样。这就支持能 再利用在进行功能模拟时使用的测试基准。这在时 序仿真中是个长足进步。 现在,工程师不再需要仅为进行时序仿真编写一个独立的测试基准。若已为功能模拟编写了一个测试基准,则几乎不需 任何改动就可将其用于时序仿真。位于顶层的 端口名称将总是相同的,这样,测试基准就可被再利用。此类设计的主要优势之一是它可容易地定位问题所在。为能充 分了解该特性的真实能力,我们将考察一个实际例 子。

图1中,子模块A首先由工程团队1生成、子模块B和C由工程团队2生成,另外,IP模块D从第三方买进。这些模块都在不同时间及/或由不同工程师生成, 且为了验证 每个模块的功能准确性,各模块都用其自己的测试基准进行了验证。一旦成功对各个独立部分进行了验证,它们就被整合进FPGA以进行实现。RTL 模拟通常就是这样做 的。现在,借助与KEEP_HIERARCHY一起使用MHF(多层级文件)的能力,甚至在进行时序仿真时都可能保持相同策略。 采用该特性能帮助想进行时序仿真的设计师解决他们面临的两个最大难题:1)各个模块重复使用测试基准的能力;2)定位发生问题的具体模块的能力。可有多种途径进 行时序仿真。当采用MHF时,因为所有这些模块的顶层端口都保持一致,所以可容易地重复使用RTL测试基准。 以组块形态形成的最终网络表确实可使用户为其RTL等价物选取不同的模块。这样做,用户将可加快模拟的运行时间。RTL几乎永远比结构化网络表等快得 多,若有 种方法在不影响设计功能的前提下可用RTL替换结构码,则就应尝试这种方法。几乎没一种设计在实现后就尽善尽美。这就是为什么需要进行时序仿真的 原因。 采用上述同一个例子,我们可考察如何改进整个设计的速度及可观察性。为得到最短的运行时间,理想的情况是在一个模块上一次仅运行 时序仿真。此例中,我们可 在子模块A运行时序仿真然后使子模块B、C和D处在RTL形式。一旦我们进行时序仿真并发现一切如预期的一样,就可对任何子模块 进行切换并以相同的方式进行测试。采 用该方法论还意味着,若在一个子模块中发现了问题,则可容易地定位该问题子模块并将它拿给该模块的设计者进行修改。 若发现多个子模块存在问题,则该方法带来的 额外好处是,两(多)个不同工程团队能同时着手解决发现的问题。 在传统流程中,当发现设计 的一个部分存在问题时,只有在该部分的问题被解决后,设计师才可能处理设计的其它部分。在采用MHF设计流后将不再受这种限制。时 序仿真用户的另一个主要 抱怨是:若其它工程团队不在国内,则完成最后的验证会相当困难且需花很长时间。这是因为,它将浪费许多时间以及当采用传统时序仿真方法 论时的许多相互关联 和依赖问题。借助MHF方法论,去掉了关联因素。利用MHF,不同工程团队可省去许多空闲时间。这将确保发挥团队的最大效率。具有模块结构的网 络表也能为 验证小组提供帮助。过去,需要由一位验证工程师完成的工作现可由不同小组的多位验证工程师完成。开发小组采用的理念也可同样用于验证小组。 除在模拟领域取得持续进展以外,在施加激励的方法方面也有重要进步。过去的设计通常非常小,所以以前的设计激励方法是采用模拟器提示(prompt)的 施力文件 (force file)或简单刺激以切换每个信号。随着设计变得益发复杂,施加激励也需要更好的方法。这里,VHDL和Verilog 的能力将有用武之地。随着HDL编码语言的引入,测 试基准变得更复杂和紧凑。 在该领域,出现了诸如PSL、SystemC和 SystemVerilog等技术。这些语言覆盖的范围不在本文讨论之内。这些编程方式的一个不利方面是它要求将一个模拟的输出作 为另一个模拟的输入。一 些模拟器支持允许用户准确进行这种操控的Extended Value Change Dump Format 格式。不采用这种方法进行时序仿真的用户遇到的主要障碍 是:因为当将一切都展开后端口名称将改变,所以没办法将输出作为激励。采用MHF方法会去掉此问 题,因为,现在这里有可施以激励的独立模块,另外,现在一个模块 的输出可被用作另一个模块进行RTL以及时序仿真的激励。 选择层次 取得层次模拟成功的一个主要部分是选取层次。没有现成的公式可用于选择正确的层次。这就是为什么没有对或错的层次的原因,虽然在试图选取层次还是有些原则可 资借鉴的。确保满足如下这些原则永远是明智之举。

http://xilinx.eetrend.com/article/1273

2010-11-6

分享:FPGA设计的验证技术及其应用原则 | 赛灵思中文社区

页码,3/4

1)设计应当是完全同步的。 2)所有关键路径应包括在一个逻辑组(可被分别同步的设计的一部分)中。典型情况,每个逻辑组应是在设计顶层例示(instantiated)的Verilog内的一个模块或VHDL内的一 个实体 。 3)全部IOB(输入/输出块)逻辑应在顶层。器件的任一个输入和输出应在顶层及I/O缓冲器和I/O三态门内进行声明。但,逻辑组内例示的I/O逻辑是可接受的。 4)在每个逻辑组的输入和/或输出应放置寄存器。高明的作法是在逻辑组的边界对所有输入信号或输出信号进行寄存处理。它确保逻辑组内的所有关键路径得到保持并免 去了当通过逻辑组边界进行逻辑优化时可能导致的问题。在设计中的所有层次组内都应一致遵守该规则。 5)顶层应只包含例示的模块或实体、IOB逻辑及时钟逻辑(DCM、BUFG等)。 6)选择逻辑组时,应不使任一组过小以至对其单独进行验证的价值不大或不太关乎大局,还应不使任一组过大以便当发生问题时难以模拟和调试。但对此没有确切的定 律,另外,它可根据设计和验证要求而变。 7)选择逻辑组时还应注意使设计中最可能在后续设计流中被改动的部分与设计中更稳定的部分独立开来。这样,当进行了这种明智选择后,以后的设计变更对验证时间 产生的影响最小。 只要遵循上述提到的规则,保持层次就该不会对设计性能产生影响。为从保有的层次中得到最大利益,只应将其应用在设计中的其端口在门级模拟中需要可见性的 块 中。一般情况,这些块是遵循了上述规则的上层块。通过对选择的块限制其保留层次,综合和实现工具将具有更多的自由以优化设计并改进性能。下图2显示的是 在一个范 例设计中可在哪里保留层次的例子。

应注意的是这里只有指导方针。没有指定如何选择或保持层次的确定规则。它的确因设计而异、因用户而不同。应由用户来决定在哪里保持层次对验证最有价值、以及 在哪里应将其解构。 层次验证进入实战 为对在时序仿真中采用层次方法的可能好处进行量化,我们将检查两个设计:VHDL和Verilog各一个,它们都是以中等规模Xilinx FPGA为目标器件的,且采用了500微 秒的Model Technology ModelSim SE模拟器进行模拟。这些模拟是在带2GB RDRAM存储器的双2.0 GHz Xeon计算机上在Linux环境下运行的。这是为表现该方法论能显现 的量值差别所进行的一个适当的尝试,它并不一定代表典型的模拟运行时间或存储器需 求。 VHDL设计在一定程度上代表了典型的以DSP为导向的设计,这里用的是Xilinx的 Virtex-4 SX35 FPGA。我们选择将设计分为9个子层和一个顶层,在每个期望子层都放 置一个KEEP_HIERARCHY。 在该测试中,我们选取代码最不稳定的部分,也即在设计流的这一部分它频繁改变。执行一个相对简单的模拟,并比较TRL模拟时间与设计的时序仿真时间,我 们发 现它对运行时间和存储器容量要求有显著增加,见下表1。但,若我们采取仅对设计的改变部分施以时序仿真的方法,我们可相应降低运行时间24倍、减小存 储器容量21 倍。即使我们选择仅采用改变的部分对整个设计进行时序验证,我们看到,与完全RTL模拟相比,其所需的运行时间和存储器容量与完全RTL模拟 相比也只需增加约一倍。 与更传统的全时序仿真相比,其对上述两个指标的要求也有大幅降低。

看Verilog设计,它代表了某种更大更复杂数据路径方式的设计,我们以Xilinx Virtex-4 LX80 FPGA为目标器件。我们将其分为14个子层和一个顶层,采用 KEEP_HIERARCHY约束以支持分段时序仿真。我们看到,与VHDL运行相比,所需 的时间长了些,但对该设计仍取得类似的改进。仅对改变部分进行的时序仿真与对整个 设计进行时序仿真相比,运行时间和模拟存储器分别节省了6.3和6.6 倍。仅将设计的改变部分代替以时序仿真网络表然后模拟整个RTL设计,运行时间和存储器需求仍分别 缩短了3.6倍、减小了 5.5倍。 在两个设计中,被改变模块的覆盖范围完全相当,且因为更快的运行时间以及需分析的设计更小,设计调试变得更容易。也许因为需要更大的存储器,模拟器用起来 也更觉灵便。我们注意到,采用该方法论(扩展了验证设计的可用资源并允许并行运行以进一步降低总体运行时间),可能用一款较低端的计算机(速度更慢、存储 器更少)执 行该模拟。 本文小结

http://xilinx.eetrend.com/article/1273

2010-11-6

分享:FPGA设计的验证技术及其应用原则 | 赛灵思中文社区

页码,4/4

本文覆盖了利用目前可用的一种技术进行高级验证的 方法论。它并非一种革命性的方法论,而是一种大多数设计师并不完全了解或彻底把握的一种方法。这些技术过 去一直用于不同类型的模拟和验证,但可能并没发挥 出全部效力。采用层次模拟可对需要多长时间及多大努力才能完成一个设计验证产生巨大影响。令人欣慰的是,借助 本文,在未来的FPGA设计中,在降低模拟对 硬件需求的同时有可能实现更快和更高效的时序仿真。 作者:Xilinx公司 附件 时序仿真 在一个范例设计中可在哪里保留层次的例子 Verilog设计 添加新评论 Premduth Vidyanandan 大小 19.55 KB 18.19 KB 23.33 KB 配置 验证 初级知识库

相关文章
谈谈赛灵思(xilinx )FPGA 配置电路设计 显示器的扩频时钟接收应用指南 赛灵思Spartan-3E FT256 BGA封装的四层和六层高速PCB设计指南 Cadence并购Taray加速加速实现FPGA design-in 设计技巧:用matlab来实现fpga功能的设计 FPGA管教分配需要考虑因素 赛灵思堆叠硅片互联技术问答 大幅提升FPGA性能,赛灵思全球首发堆叠硅片互联技术 关于我们 | 法律声明 | 采购声明 | 电子创新网 ?2006-2010 Xilinx. All rights reserved. 粤ICP备08115057号

http://xilinx.eetrend.com/article/1273

2010-11-6


第11章 FPGA设计验证_图文.ppt

第11章 FPGA设计验证 - 第11章 设计验证 设计验证 ? 随着IC 集成度的不断提高,系统的规模日益庞 大且复杂。验证成为了整个ASIC/FPGA 设计流 程中的一个瓶颈...

第7章 FPGA设计原则.doc

4 IRL技术可以应用于许多场合: --在部分功能没有...第2节 FPGA设计基本原则(1)面积与速度的折衷 1 面积...使用增量设计,设计人员可在验证过程中加速设计变化的...

基于UVM方法的FPGA验证技术.doc

逻辑门阵列(FPGA)在雷达信号处理领域日趋显现重要性,通 过对传统 FPGA 功能仿真验证分析,指出必须对 FPGA 设计进行充分的验证以提高相应雷达 产品的性能和可靠...

基于FPGA设计的功能验证技术_论文.pdf

基于FPGA设计的功能验证技术 - 功能验证是FPGA设计中的一个重要阶段。随着

基于DO254的FPGA设计验证方法学的研究.doc

基于DO254的FPGA设计验证方法学的研究 - 龙源期刊网 http://www.qikan.com.cn 基于 DO254 FPGA 设计验证方法学的 研究 作者:史光丽 段煜 来...

ASIC设计-FPGA原型验证_图文.pdf

和Vertex-7 T2000 FPGA使用实践经验,DDR PHY设计...121 III Goke Microelectronics 1 ASIC 验证技术 1....但在进行原型设计中需要遵 循的一个原则就是“尊重...

用多片FPGA进行ASIC设计验证的分区和综合技术.pdf

用多片 FPGA 进行 ASIC 设计验证的分区和综合技术本文将介绍, 如何在专业的验证软件 Certify 的帮助下, 实现快速有效的用多片 FPGA 来进行 ASIC 设 计验证。 ...

FPGA应用技术及其发展.doc

龙源期刊网 http://www.qikan.com.cn FPGA 应用技术及其发展 作者:左骐 来源:《大东方》2016 年第 04 期 摘要:FPGA 技术在电子设计领域应用广泛,逐渐成为设计...

FPGA设计原则以及代码规范_图文.ppt

FPGA设计原则以及代码规范_电子/电路_工程科技_专业...算法功 能适合放在DSP、CPU里面实现,或者在使用...哪个模块去关系排列,这 样在后期仿真验证找错时...

用VerilogHDL进行FPGA设计的原则与方法_祁晓磊_图文.pdf

用VerilogHDL进行FPGA设计的原则与方法_祁晓磊_信息...实现 、 布线 后仿真与验证和下板调试等主要步骤 ...2008. 3 E D A 技术的不断发展 , 综合软件对...

用多片FPGA进行ASIC设计验证的分区和综合技术_论文.pdf

用多片FPGA进行ASIC设计验证的分区和综合技术 - 本文将介绍如何在专业的验证软件Certify的帮助下,实现快速有效的用多片FPGA来进行ASIC设计验证

FPGA设计及多片FPGA进行ASIC设计验证的探讨研究.doc

FPGA 设计及多片 FPGA 进行 ASIC 设计验证的探讨研究 作者:黄可望 时间:2006...而且随着越来越多的需要处理大量实时数据的应用, 验证技术就要求能够在接近 实时...

FPGA设计与应用教学课件.ppt

FPGA设计与应用教学课件_电子/电路_工程科技_专业...和时序的后验证,以保证布局布 线所带来的门延时和...很明显,VHDL遵循EDA解决方案中自顶向下的设 计原则...

FPGA设计及应用_图文.ppt

FPGA设计及应用_工学_高等教育_教育专区。基于FPGA数字系统 设计电子工程学院 ...(形式验证技术) 仿真(simulation): 指从电路的描述抽象出 模型,然后将外部激励...

FPGA设计中优化时序的原则与方法_图文.pdf

设计、 制造与应用 FPGA 设计中优化时序的原则与...FPGA 验证是 ASIC 投片前 原型验证的重要手段 , ...模 数转 换 器应 用技术 [ M ]. 北京 : ...

FPGA设计的安全性.pdf

现代电子系统设计中被广泛应用,并已经成为系统设计的...技术, 将 SRAM 和 Flash 整合在同一个 FPGA 中,...密钥等参数计算信息验证代码 (MAC2),并发送给 FPGA...

FPGA设计及应用_图文.ppt

掌握FPGA设计和验证流程; ?掌握FPGA配置方法; ?掌握综合(Synthesize)的不同属性...(互补场效应管)工艺,出现了FPGA (Field Programmable Gate Array),CAD技术应用...

防止FPGA设计被盗版:高性价比认证方案.pdf

FPGA 设计 IP Bernhard Linke, 首席技术专家 摘要:本应用笔记介绍了 FPGA (...基于密钥认证方法是把密钥 验证数据(即“信息”)作为输入, 计算信息验证...

FPGA设计与应用_图文.ppt

FPGA设计与应用 - FPGA设计与应用 2010.10 ? ? ? ? ? ? IC的设计要求 设计时间 设计正确性 设计成本 产品性能 可测性设计 EDA技术发展 EDA...

FPGA技术及系统设计_图文.ppt

FPGA系统设计的基本原则 ? FPGA设计中的时序分析及...Lattice 是ISP 技术的发明者,在小规模PLD 应用上有...集成Dual Cortex A9 Core 原型验证平台 Z7 ? ...