您的位置 首页 开关

专家支招:怎么快速处理阻隔FPGA规划中的过错

如果您的FPGA设计无法综合或者没能按预期在开发板上正常工作,原因往往不明,要想在数以千计的RTL和约束源文件中找出故障根源相当困难,而且很多

假如您的FPGA规划无法归纳或许没能按预期在开发板上正常作业,原因往往不明,要想在数以千计的RTL和束缚源文件中找出毛病本源适当困难,而且许多这些文件还或许是其他规划人员编写的。考虑到FPGA规划迭代和运转时刻的延伸,规划人员应该在规划流程的前期阶段就找出或许存在的许多过错,并想方设法要点对规划在开发板上进行验证。

在特定条件下选用更智能的技能来阻隔特定过错,找到问题电路的源头并渐进式修正过错,这很重要。为了节省时刻,您可以对时钟、束缚和模块级接口进行开始设置检查以保证契合规划规范,这样就不用在归纳与布局布线(PR)时糟蹋很多时刻。

Synopsys 公司的Synplify Premier 和Synplify Pro FPGA规划东西以及Identify RTLDebugger 等产品能协助规划人员完结上述作业。这些东西的特性使得规划人员能快速阻隔过错,有用缩短运转时刻,并削减开发板发动所需的迭代次数。

准确找到开发板上的问题

假如开发板呈现显着的功用性过错,要缩小查找问题本源的规模或许会适当困难。为了进行规划调试,咱们应当创立附加电路并保存某些节点,以便咱们对规划运转时得到的数据进行勘探、检查和剖析。下面咱们就看看怎么用板级调试软件来查找过错。

按下列四步法并运用RTL调试器,您能准确查找问题,并对信号和重视的条件采样,然后将查询成果相关至原始RTL,然后将问题确定在RTL规范或束缚设置规模内。

第一步:指定勘探。在RTL中清晰要监控哪些信号和条件。在此要声明您所感兴趣的查询点(要查询的信号或节点)和断点(RTL操控流程声明,如IF、THEN 和CASE 等)。

第二步:经过勘探构建规划。运用附加的监控电路——即用于根据您的监控要求捕捉并导出调试数据的智能内部电路仿真器(IICE)——对FPGA规划进行归纳。

第三步:剖析和调试。规划归纳完结之后,运转规划并用RTL调试器查询数据。在开发板上运转测验时,查询点和断点一起触发数据采样,使您能在您所重视的十分清晰的条件下查询并调试特定节点的电路的行为。您可将查询到的采样数据写入VCD 文件并将其相关到RTL。

第四步:渐进性修正过错(incrementaLfix)。一旦找到了过错地点,就可以经过分级、渐进式流程在RTL或束缚中渐进地进行修正。

时序和功用性过错的可视检查

FPGA规划和调试东西还有一大长处,便是能显现RTL和网表级原理图。举例来说,具有互动调试功用的原理图检查器可以显现规划的RTL和网表原理图,便于您进行查询并将时序陈述和VCD 数据(规划在开发板上运转时发生)相关至RTL源文件。检查器包括一个RTL视图,用来以图示的办法描绘规划。该视图在归纳RTL编译阶段后供给,由技能独立的加法器、寄存器、大型多路挑选器和状况机等组件构成。经过RTL原理图,您可以穿插勘探原始RTL,对不契合预订规范的规划进行调整,一起也可以勘探到束缚编辑器,然后更简洁地更新和指定束缚(图1)。

1.jpg

要将过错操作的源头追溯到RTL,您可以运用RTL调试器在RTL原理图上方实时刺进查询到的操作数据。

原理图检查器包括一个网表级技能视图,用于显现归纳后的实践规划完结状况。在HDLAnalyst 原理图检查器中,该视图根据查找表、寄存器和DSP slice 等根本的赛灵思器材原语。您可在原理图中对途径进行穿插勘探,追溯到原始的RTL以及归纳后和布局布线后的终究时序陈述,以便剖析和进步全体功用。

在FPGA中原型规划的ASIC 门控时钟结构并非FPGA完结中的必要环节,这会导致FPGA资源运用功率低下。处理该问题的有用办法便是用FPGA归纳软件转化时钟。

大型规划的调试

在大型规划中勘探一切信号是不或许,因为生成的数据量极为巨大,而且勘探数据所需的额定调试逻辑也太大。片上调试办法的一个常见弊端是难以提早猜测需求对哪些信号进行勘探和监控。

一些调试软件经过分治法可以在必定程度上处理这个问题。运用多路复用的采样组,规划人员可以有挑选性地进行采样并经过多路复用的途径和同享的IICE 在信号组之间切换。这种办法添加了可查询的信号和条件,而且不会添加数据存储要求。您可以即时切换感兴趣的信号组,不用花时刻进行从头调整或从头归纳新的规划。

不幸的是,在勘探和采样数据时用使的调试IICE 逻辑会占用包括存储器BRAM 在内的芯片资源。您可在SRAM 存储卡中对IICE 采样数据进行片外存储,以削减片上BRAM 的运用。这种办法的另一个优点是能添加采样数据的深度。

我的规划无法归纳

规划过错的呈现或许导致无法完结有用归纳或布局布线。因为存在不计其数的RTL和束缚源文件,因而或许需求几个星期才干完结初次归纳与布局布线。进行FPGA原型规划时,应让ASIC 规划源文件处于“FPGA安排妥当”状况。举例来说,便是要进行门时钟转化。

在 FPGA中原型规划的AS%&&&&&%门控时钟结构并非FPGA完结中的必要环节,这会导致FPGA资源运用功率低下。处理该问题的有用办法便是用FPGA归纳软件转化时钟。例如,门控或生成时钟转化功用可将生成时钟和门控时钟逻辑从次序组件的时钟引脚转移到使能引脚,这样您就能将次序组件直接绑定到源时钟,消除偏移问题,并削减规划中所需的时钟源数量,然后节省资源。

在Synplify Premier 软件中启用门控时钟选项:

– 挑选Project->Implementation Options

– 在GCC Prototyping Tools 标签中点击Clock Conversion checkbox

或在TCL中运用以下指令

set_option -fix_gated_and_generated_ clocks 1

在Synplify Pro/Premier 中履行门控和生成时钟转化,而set_option -conv_mux_xor_gated_clocks 1则针对根据Synopsys HAPS 的规划在Synplify Premier 时钟树的多路挑选器或OR 门上履行门控时钟转化。

“完好”的系列时钟束缚包括在一切正确方位界说时钟并在生成的时钟之间界说联系。有时候,时钟会出于某种原因与真实的源断开相关,例如时钟源和时钟方针端间发生了黑盒,这样会形成次序组件的时钟缺失或时钟束缚放置过错,导致初次时钟转化因为短少时钟束缚而失利。在许多状况下,转化失利是由束缚不完好形成的。举例来说,门控逻辑中或许存在一个组合回路,应在时钟转化之前运用反常处理束缚将其打破。归纳编译阶段之后会供给一个门控时钟陈述,告知您有哪些门控和生成时钟已被转化以及被转化时钟的称号、类型、分组和相关束缚。另一个时钟列表则显现的是未转化的时钟,并包括毛病信息,用于阐明原因。图2 给出了陈述实例。

2.jpg

举例来说,假如规划中有黑盒子,您可以在RTL中指定详细的软件指令,用于为主动化门控时钟转化供给辅佐。比方说,选用 syn_gatedclk_clock_en 指令在黑盒子中指定启用引脚的称号,用syn_gatedclk_clock_en_polarity 指令指出黑盒子上时钟使能端口的极性。每个转化实例和驱动实例的时钟引脚都被赋予一个可查找的特点,然后能在规划数据库中辨认,并提取到定制 TLC/Find 脚本生成陈述中。

端口不匹配

规划包括公司内外部供给的文件。在规划中进行IP 实例化或预验证分级模块时,常常会呈现“端口不匹配”过错,而且难以检测,特别是呈现在混合言语规划中更是如此。举例来说,假如顶层VHDL实体 “Top”实例化Verilog 模块“sub”,那么顶层VHDL声明sub 有4 位端口,而实践Verilog 模块只要3 位端口。就Synplify Premier 软件而言,会当即将其符号为不匹配,并在独自的日志陈述中经过超级链接引证该过错。

视图work.sub.syn_black_box 和视图work.sub.verilog 之间的接口不匹配

细节:

========

源视图work.sub.syn_black_box 中的以下位端口在方针视图work.sub.verilog 中不存在。

=======================================

Bit Port in1[4]

Bit Port in2[4]

Bit Port dout[4]

多级层次中,怎么将不匹配问题追寻到问题模块的RTL界说呢?东西应以某种办法给一切模块实例打标签,比方说选用orig_inst_of 特点。特点的值包括模块的原始RTL称号,可方便地检索至RTL。例如,假定sub_3s 导致端口不匹配过错,那么咱们就能用以下TCL指令找回RTL模块的原始称号“sub”:get_prop -prop orig_inst_of {v:sub_3s} 返回值为“sub”。

束缚的铲除

指定足够且正确的束缚将影响到成果质量和功用。束缚声明一般应包括三个元素:主时钟和时钟组界说、异步时钟声明、过错和多循环途径声明。

进行归纳之前检查束缚是一个很好的办法。供给束缚检查器的东西能发现语法过错并剖析时序束缚和实例称号是否适用,警示问题地点。比方说,它会陈述通配符扩展后束缚怎么运用以及在界说时钟束缚后发生的时钟联系。它会标出那些因为参数或方针类型无效或不存在而未被运用的时序束缚。

进行归纳之前,在Synplify Pro/Premier 软件中生成名为projectName_cck.rpt 的束缚检查器陈述:

Synplify Pro/Premier GUI: Run -> Constraint check

或选用TCL指令:project -run constraint_check

留意,要防止潜在的MetA不稳定性,应运转“异步时钟陈述”,提醒您留意那些在一个时钟域发动而在另一个时钟域中完毕的途径。

在Synplify Pro/Premier 软件中生成时钟同步陈述projectName_async_clk.rpt.csv:

Synplify Pro/Premier GUI:Analysis->Timing Analyst并挑选Generate Asynchronous Clock Report 选项。

选用TCL指令: set_option -reporting_async_clock

正确的办法是保证您充沛且全面地对规划进行束缚,而且不会过度束缚(过度会导致运转时刻延伸,生成要害途径过错陈述)。保证您已彻底指定多周期和过错途径,而且已为得到的时钟设置了束缚(set_multicycle_path,set_false_path)。

缩短调试时刻

施行潜在的RTL或束缚毛病处理计划或许需求好几个小时才干看出成果。咱们来看看怎么运用分级“分治法”规划办法和“过错持续”功用在单次归纳迭代中发现多个过错,然后削减迭代次数。

为缩短运转时刻,模块化流程必不可少。这种流程支撑规划保存,能确定现已证明有用的规划部分。支撑模块化流程的东西能协助您在进行归纳前创立RTL分区,也便是编译点。一些软件还能协助规划人员将有毛病的规划部分变成黑盒子,彻底将该部分导出并作为独立的规划子项目进行再加工。一旦处理问题,子项目还可以以网表方式经过自下而上的流程或用作为RTL经过自上而下的流程整合回原规划,乃至还能归纳运用自上而下和自下而上两种流程。

要集成和调试大型规划,应尽早在规划进程中发现过错的阐明。举例来说,“过错持续”功用可供给触及每个归纳经过信息的组合过错陈述。“过错持续”能容许非丧命的非语法HDL编译问题和某些映射过错,因而规划人员可在每次归纳迭代中剖析并完结尽或许多的规划内容。为了在带有 SynplifyPro/Premier GUI 的Synplify Premier 软件中调用“过错持续”功用,应启用项目视图左边的Continue-on-Error 选项。

在TCL中:set_option –continue_on_error 1

用特点is_error_blackbox=1 符号毛病模块和带接口过错的实例父模块,如图3 所示。

3.jpg

用TCL找到一切“毛病实例”:

c_list [find -hier -inst * -filter

@is_error_blackbox==1]

用TCL列出一切“毛病模块”:

get_prop -prop inst_of [find -hier -inst

* -filter @is_error_blackbox==1]

要检查将被关入黑盒子或导出的毛病模块,请查找HDLAnalyst RTL视图中的赤色块(图3)。

经过导出模块阻隔问题

您可将毛病模块作为彻底独立的归纳项目导出,以便专门对该模块进行调试。导出进程会发生阻隔的归纳项目,其间包括一切该模块的源文件、言语规范和编译库,以及所含文件的目录途径和途径次序,以到达对该模块进行独自归纳与调试的意图。如前一节所示,呈现过错的模块会主动在规划数据库中标出过错特点,并在规划原理图中杰出显现,便于对该模块进行查找和提取。

为了导出模块及其一切相关源文件进行阻隔调试,应首先在Synplify Pro/Premier 软件GUI 中(图4)的规划分级视图或RTL视图中挑选规划模块或实例,然后点击右键并在弹出菜单中挑选“Generate Dependent File List”。

4.jpg

将每个分级模块的过错进行修正后,您可将其再集成到规划中,既可作为RTL在整个规划环境中从头归纳(自上而下的归纳流程),也可作为网表(自下而上的流程)进行归纳(见图5)。

5.jpg

要满意时序要求就不可防止地要用到规划分级,这或许会带来应战。层级边界或许会束缚功用,除非为规划的每个层级分区树立时序预算。运用RTL分区(也称为手动确定编译点)时,一些东西能主动设置时序预算。Synplify Pro/Premier 软件还能供给主动编译点,能创立主动分区,比方说经过多处理加快运转速度。预算功用为每个RTL分区树立接口逻辑模型(ILM),这样软件就能知道怎么满意每个分区的时序方针。这样,您可为每个编译点指定一个束缚文件,然后掩盖手动确定编译点主动时序预算。

Synopsy 近期进行的全球用户查询发现,59% 的规划人员以为“规划规范的正确性”是最重要的规划应战之一。这个应战会形成规划延期,最坏状况下或许导致规划失利。规划东西有必要能尽早捕捉到过错,并就规划作业供给更高的可视化,保证规划规范得到有用验证和修正。这些东西还有必要就提出的规划修正计划供给反应途径。

作者:Synopsys公司资深产品营销司理Angela Sutton

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/321198.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部