您的位置 首页 5G

FPGA结构勘测技巧 FPGA Editor提高功率的小窍门

FPGA构造勘察技巧 FPGA Editor提升效率的小诀窍-工程师在设计过程中,经常需要一定的创造力(你不妨称之为数字管道胶带)才能够保证设计的顺利完成。过去8年时间里,我曾经目睹许多优秀工程师利用这一方法出色地完成了许多工作,而他们采用的最主要工具就是FPGA Editor。

Clayton Cameron是赛灵思公司在多伦多市的一名资深现场运用工程师(FAE)。他于2000年参加赛灵思公司,在赛灵思渥太华的办公处作业,首要为电信客户供给支撑。作为一名现场运用工程师,Clayton为客户供给支撑,协助他们解决问题。他喜爱这一作业的多样性以及每天遇到的各种应战。业余时刻,他喜爱健身,还十分享用家庭生活。

工程师在规划进程中,常常需求必定的创造力(你无妨称之为数字管道胶带)才可以保证规划的顺利完结。曩昔8年时刻里,我从前目击许多优异工程师运用这一办法超卓地完结了许多作业,而他们选用的最首要东西便是FPGA Editor。

运用FPGA Editor,你可以调查完结的规划并确认是否在FPGA结构一级真实完结了规划意图 – 而这关于任何工程师或现场运用工程师来说都是十分需求的。假定你拿到协作者的规划,需求对其进行批改,但他们的HDL源代码十分难于了解,或许底子没有任何注释或文档。或许你仅仅想将某些时钟逻辑确认,但却不知道实例的称号或许怎么将其锁在所期望的方位。下面评论的一些用来探查FPGA结构以及创立指令行补丁的技巧可以协助规划人员满意不断迫近的使命期限要求。

FPGA结构勘测技巧

当赛灵思发布针对新FPGA器材的东西时,一般我做的榜首件事便是翻开FPGA Editor来勘FPGA器材的内部结构。具体做法是找到Xilinx → ISE →Accessories菜单并点击FPGA Editor图标,或许在指令行键入fpga_editor。图形用户界面翻开后,在File菜单下挑选New。FPGA Editor会问询规划文件称号和物理束缚文件。此刻还没有任何规划文件,因而随意键入一个规划文件名(例如,test.ncd),并挑选期望调查的器材类型。FPGA Editor将会运用相同的姓名作为物理束缚文件的称号,并加载一个空白规划。

另一种办法是编译随软件供给的某个ISE®东西套件规划比如,并将其加载到FPGA Editor中来调查FPGA结构。加载一个规划实例可以显现更多细节,并且更简略定位感兴趣的项目。

在FPGA Editor中阅览只需求记住两件事:

1、怎么运用CTRL / Shift快捷键进行扩大缩小。

2、假如运用F11键扩大选定的项目。

不运用GUI按钮快速缩放的办法是,按住Ctrl 和 Shift键,然后别离运用鼠标左键和右键进入扩大和缩小。要想快速找到任何项目,在GUI右上角的列表窗口(List window)中挑选该项目即可。一旦定位了想找的项目,按F11键。阵列窗口(Array window)就会扩大显现该项目。

FPGA Editor有四个首要窗口:列表(List)、大局(World)、阵列(Array)和块(Block)。List窗口显现规划中一切活动的项目。经过此窗口顶部的下拉菜单可挑选其内容 – 列表内容包含现已布局或还未运用的部件、网络或未布线的网络等等。

大局视图窗口(World Windows)一直显现完好FPGA硅片视图,这在企图确认某个网络的布线状况时十分有用。一起,阵列窗口(Array window)则是FPGA结构和逻辑的动态视图。假如双击Array视图中的任何项目,会显现Block视图,给出所挑选项目或逻辑单元的详细状况。

运用FPGA Editor,你可以调查物理施行后的规划并确认是否在FPGA结构一级真实完结了规划意图 – 而这关于任何工程师或现场运用工程师来说都是十分需求的。

为便利阅览或对规划进行修正,这些窗口可以仿制。许多状况下,翻开第二个Array窗口会比较便利一起在规划的两个不同部分作业。例如,假定需求在大局时钟缓冲器和芯片底部的触发器之间添加一条布线。假如在一个Array窗口中显现大局时钟缓冲器的输出,另一个Array窗口则显现触发器时钟输入,那么会做起来会更便利。否则的话就必须来回缩放来定位布线的两头,明显这很繁琐。

在FPGA Editor GUI的右侧是一组由20个功用按钮组成的东西条,用于规划调查和修正。经过修正$XILINX/data目录下的fpga_editor.ini文件可以添加更多功用按钮。当调查规划时,应当随时运用INFO按钮。该功用会将所挑选项意图一切信息转录到控制台(Console)窗口。这一功用十分便利,你可以在控制台窗口中标示数据并将其复制到其它当地运用,例如编写UCF束缚。

一旦了解了最基本的概念和操作,就可以开端调查FPGA结构。一般我都从时钟逻辑开端。这包含数字时钟管理器(DCM)、锁相环(PLL)、大局时钟缓冲器(BUFG)、区域时钟缓冲器(BUFR)、I/O缓冲器(BUFIO)以及不同的时钟区域。(要想按字母列出项目表,可以到LIST窗口点击Type来排序。)点击一个DCM并按F11。ARRAY窗口会定位到挑选的DCM并扩大显现它。持续点击DCM并调查GUI底部的Console窗口,其间会显现与下面相似的内容:

comp “DCM_BASE_inst_star”, site “DCM_ADV_X0Y9”, type = DCM_ADV

(RPM grid X73Y202)

这是有用的数据。 复制并张贴上述内容到UCF文件中,并作如下更改以确认这一DCM逻辑:

INST “DCM_BASE_inst_star”

LOC=DCM_ADV_X0Y9;

运用这一办法,简直可以确认FPGA中的任何项目。 下面是BUFG确认的另一个比如:

comp “BUFG_inst_star”, site “BUFGCTRL_X0Y20”, type = BUFG (RPM grid X73Y124)

INST “BUFG_inst_star”

LOC=BUFGCTRL_X0Y20;

再次回到List窗口并标示同一DCM。 双击之后将会在Block视图中显现该DCM以及一切设置和参数。这是一项十分强壮的功用,可用于FPGA结构中的任何逻辑项目。假如挑选一个逻辑片并双击它,就可以看到逻辑片是怎么布线衔接的,以及是否运用了进位链或本地触发器。

Block视图的按钮条包含许多其它选项。值得一提的是 F= button按钮,其功用是显现逻辑片中运用的项意图完好装备。例如,假如运用了一个LUT6和一个触发器,按下F= 按钮将会给出LUT的布尔议程以及触发器的装备形式。

阅览赛灵思用户攻略是一回事,而从计算机屏幕上翻开的视图上探察一切逻辑、开关和参数则是另一回事。一旦了解了FPGA结构及一切资源,那么在编写和验证规划时取得的协助将会令人感到惊讶。

在规划流程中记载生成补丁脚本

当用户在GUI环境中修正规划时,FPGA Editor可以记载用户动作。用户不只可以保存记载动作流程,还可在今后从头运用记载的脚本并加以重复。当无法更改RTL,但又需求在规划进程中对规划进行批改时,这一功用特别有用。假定规划选用了第三方IP或赛灵思加密IP,其间包含一个大局时钟和一个DCM来生成称为 interface_clk的时钟。然后再假定接口所衔接的ASIC出现问题,无法在预订的interface_clk的上升沿接纳数据。怎么批改这一问题?

当然,你可以改动PCB,替换出现问题的ASIC或许让第三方IP小组来批改时钟输出逻辑以供给90度相移的interface_clk。一切这些解决方案都既消耗时刻又本钱昂扬。一个更简略的主张是运用FPGA Editor来记载批改动作,对interface_clk逻辑进行必要的更改,然后为出现问题的ASIC供给正确的时钟相位。一旦有了相关批改的FPGA Editor脚本,就可以回放这些指令行脚本记载的批改进程,而你也可以正常持续你的FPGA规划流程。当出现问题的ASIC修正正常今后,你只需求将FPGA Editor脚本从编译脚本中移除就可以,而interface_clk也会康复其正常的行为。

要想对规划进行手动修正,首要需求在FPGA Editor中敞开读/写(read/write)权限。在菜单条中点击File → Main ProperTIes。在此菜单下,可以调整修正形式(从No logic Change到Read/Write)。点击Apply,现在就可以开端对规划进行修正了。鄙人一步运用FPGA Editor记载对规划进行的一切批改时,只需求简略地从菜单条中点击Tools → Scripts →Begin Recording。FPGA Editor将会提示输入一个脚本姓名(如patch.scr)。输完脚本姓名,就可以对规划进行必要的批改了。

在规划中运转规划规矩查看(DRC)来看一下是否有规矩抵触的赤色标志是一个很好的办法。在我的规划比如中,有14条正告,但都可以疏忽。下一步咱们将需求定位interface_clk运用的DCM,并为此DCM的90度相移输出创立另一个称为DCM_clk90_out的时钟。这需求运用大局时钟布线资源将时钟衔接到BUFG。要添加一个BUFG,先在FPGA结构中找到一个未用的BUFG方位,右击并挑选 Add(添加)。然后,东西会提示你为BUFG命名(clk90_bufg)并确认其类型:BUFG(参见图1)。

FPGA结构勘测技巧 FPGA Editor提高功率的小窍门

图1:特点窗口答应用户装备并命名选定的逻辑项目

创立了新的BUFG,就需求将其输入和输出衔接到恰当的方位。在本例中,DCM的90度相移输出将驱动BUFG。在窗口Array1中,点击DCM的90度输出端衰减器,在窗口Array2中,点击BUFG的输入端衰减器,一起按住Ctrl键,可完结衔接。然后开释Ctrl键,点击鼠标右键并挑选Add。东西会提示为新网络衔接输入姓名。这样就将DCM 和 BUFG经过新网络衔接到一起了(参看图2)。

FPGA结构勘测技巧 FPGA Editor提高功率的小窍门

图2:在两个逻辑项目中手动布线时,如赤色三角所示,运用两个Array窗口可以轻松挑选源头和方针

clk90_bufg的输出要替代由原interface_clk驱动的IOB上的时钟。要将IOB从本来的时钟域中移开,需求定位IOB,标示时钟输入端衰减器并按下Delete键移除这一衔接。这样咱们就可以将新的clk90_bufg时钟衔接到这儿,然后完结整个补丁。要衔接BUFG (clk90_bufg)的输出,按住Ctrl键不放,在窗口Array2中标示BUFG的输出端衰减器并在Array1窗口中挑选IOB的时钟输入。松开Ctrl键,点击鼠标右键显现选项菜单并挑选Add。这样就终究完结了BUFG输出和IOB之间的衔接,而IOB则用来驱动下流ASIC的新建接口,运用interface_clk90时钟就可以正确地捕获传输的数据。

这样就完结了ASIC的补丁。现在从头运转规划规矩(DRC)查看器,保证没有引进任何新的过错。在菜单条中点击Tools →DRC →Run。

脚本完结并且没有过错的状况下,就可以回到菜单挑选Tool →Script →End Recording。这将中止并封闭脚本记载进程,下次需求这一ASIC补丁时你还可以从头运用这一脚本。一个不错的办法是在文本修正器中翻开脚本文件,将一切GUI Post 和 Unpost指令去除。这些指令并不是必要的,并且藏着它们还让脚本难于阅览。下面的文本便是咱们ASCI补丁的脚本。 如前面所述,内容十分直接,易于读取。

unselect -all

setattr main edit-mode Read-Write

add -s “BUFGCTRL_X0Y28” comp

clk90_bufg ;

setattr comp clk90_bufg type BUFG

unselect -all

select pin ‘BUFGCTRL_X0Y28.I0’

select pin ‘DCM_ADV_X0Y11.CLK90’

add

post attr net $NET_0

setattr net $NET_0 name

DCM_clk90_out

unselect -all

select pin ‘OLOGIC_X0Y2.CLK’

delete

unselect -all

select pin ‘ILOGIC_X0Y3.CLK’

delete

unselect -all

select pin ‘ILOGIC_X0Y3.CLK’

select pin ‘OLOGIC_X0Y2.CLK’

select pin ‘BUFGCTRL_X0Y28.O’

add

post attr net $NET_1

setattr net $NET_1 name

clk90_bufg_out

unselect -all

drc

save -w design “patch.ncd”

“patch.pcf”

exit

end

细心看看脚本内容,看能否分辨出对应GUI中做的动作。

很重要的是,可以从GUI(在菜单条 Tool →Scripts →Playback下)中或指令行回放这一脚本。 要在编译脚本中参加补丁,只需求添加下面一条指令就可以了:

fpga_edline yourdesign.ncd

yourdesign.pcf -p yourscript.scr

应当在布局布线(PAR)完结后再履行这一指令,即当NCD和PCF文件完结后。

FPGA Editor真的是一项强壮的用户东西,虽然并非每个人都期望或需求在规划进程中用到它。 但当需求一些特别处理或需求在某些当地打破规矩以使规划功用更强时,没有其它东西可以像FPGA Editor相同供给如此强壮的才能。你的FAE可以向你展现其功用,展现FPGA Editor怎么协助你完结规划调试和验证,当然还包含对规矩的打破。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部