0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度解读Abstract Shell流程

OpenFPGA 来源:TeacherGaoFPGAHub 作者: TeacherGJ 2021-09-01 09:36 次阅读

为便于说明,这里我们给出一个应用案例。DFX设计中有两个RP:count和shift。每个RP下分别有两个RM,即count下有count_down和count_up两个RM,shift下有shift_left和shift_right两个RM,如下图所示。

7935e9b8-fd3c-11eb-9bcf-12bb97331649.png

标准的DFX流程会形成两个configuration,如下图所示。config_1为static + count_up +shift_right,config_2为static +count_down + shift_left。在此基础上形成两个Design Runs,其中parent run为impl_1,child run为child_0_impl_1,如下图所示。

7955ae4c-fd3c-11eb-9bcf-12bb97331649.png

79a348a0-fd3c-11eb-9bcf-12bb97331649.png

执行impl_1,直至生成布线后的.dcp文件,共4个。top_routed.dcp:整个设计布线后的.dcp文件(static + count_up + shift_right)top_routed_bb.dcp:静态区布线后的.dcp文件(static + count_blacbox + shift_blackbox)此时,静态区布局布线信息被锁定,每个RP被当作黑盒子。u_count_count_up_routed.dcp:RM count_up布线后的.dcpu_shift_shift_right_routed.dcp:RM shift_right布线后的.dcp

Abstract Shell流程和标准的DFX流程至此操作是相同的。接下来Abstract Shell流程就需要对每个RP生成相应的Abstract Shell。此时需要用到的文件是top_routed.dcp。打开该文件执行命令write_abstract_shell,如下图所示。

以图中第19行代码为例,write_abstract_shell会首先通过命令update_design -blackbox将RP count的RM换为黑盒子,之后锁定相关静态区与之的接口信息以及RP count的位置信息,并生成相应的.dcp文件即ab_sh_count.dcp。这个过程中还会执行pr_verify命令(这些命令都被包含在wrtie_abstract_shell中,不需要单独执行)。

79ea4d4a-fd3c-11eb-9bcf-12bb97331649.png

打开ab_sh_count.dcp,可以看到Netlist窗口下显示的信息除了静态区部分cell之外就是RP count对应的黑盒子u_count,同时左侧Physical Constraints窗口表明RP count的位置信息已经被锁定。

同样地,也要生成另外一个RP即RP shift对应的Abstract Shell文件:ab_sh_shift.dcp。接下来分别用这两个AbstractShell文件生成各自RP下新的RM对应的.dcp文件。例如,对于RP count,添加ab_sh_count.dcp,添加count_down综合后的.dcp文件count.dcp,执行布局布线,生成相应的.dcp,相关命令如下图所示。

同样地,需要生成RP shift下新的RM对应的.dcp。由于这两个操作只需要各自对应的Abstract Shell,故相互独立互不干扰,从而可并行执行,缩短编译时间。

7a373632-fd3c-11eb-9bcf-12bb97331649.png

7a805664-fd3c-11eb-9bcf-12bb97331649.png

最后,生成相应的Partial Bitstream文件。比较简单的方法是直接利用Abstract Shell方式生成的.dcp文件生成对应的Bitstream。例如:利用abstract_shell_count_down_routed.dcp可生成count_down对应的Bitstream文件。

7ab2383c-fd3c-11eb-9bcf-12bb97331649.png

对比标准DFX设计流程和AbstractShell流程如下图所示。

7b8571e8-fd3c-11eb-9bcf-12bb97331649.png

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RM
    RM
    +关注

    关注

    0

    文章

    14

    浏览量

    36338
  • DCP
    DCP
    +关注

    关注

    0

    文章

    28

    浏览量

    17026
  • DFx
    DFx
    +关注

    关注

    0

    文章

    35

    浏览量

    10367

原文标题:Abstract Shell流程分析(2)

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    工商业储能技术规范及并网流程解读

    工商业储能技术规范及并网流程解读-古瑞瓦特 本文主要根据“浙江省用户侧电化学储能技术导则(征求意见稿)”及“《国网浙江省电力有限公司用户侧储能系统并网服务管理细则(暂行)》”,摘录部分主要内容并针对
    的头像 发表于 01-23 11:55 424次阅读
    工商业储能技术规范及并网<b class='flag-5'>流程</b><b class='flag-5'>解读</b>

    100个Linux Shell脚本总结

    不知道大家有没有发现,会编写shell脚本的运维,工资不会低,并且他的工作会很轻松!今天浩道跟大家分享每一个Linux运维应知必会的100个shell脚本,虽然你工作中可能用不上,但是却不能不懂!懂了,你就可以很吃香了,大家可以收藏起来,每天在自己办公电脑上敲一敲,提升自
    的头像 发表于 12-05 09:28 493次阅读

    python shell怎么用

    Python Shell是一种交互式解释器,可以通过命令行直接运行Python代码。在Shell中,可以输入一行代码并立即得到结果,非常适合于测试、尝试新代码或进行简单的任务。本文将详细介绍
    的头像 发表于 11-29 14:36 369次阅读

    linux命令和shell编程有什么联系

    Linux命令和Shell编程之间存在密切的联系。 首先,Shell是Linux命令行下的解释器,它提供了一个用户界面,使用户能够与Linux内核进行交互。Shell解释器可以解释和执行用户输入
    的头像 发表于 11-08 10:53 411次阅读

    如何利用shell进行脚本程序的设计?

    利用Shell进行脚本程序的设计可以按照以下步骤进行: 选择Shell解释器:在Unix和Linux系统中,通常会默认安装一个或多个Shell解释器,其中最常见且功能强大的是Bash(Bourne
    的头像 发表于 11-08 10:17 287次阅读

    常见的一些shell script规则

    shell script对于硬件嵌入式行业从业者来说应该是一个常用的工具,它是程序化脚本,是一种自动化管理linux的好工具了,所以对于嵌入式开发的工程师来说也是一个非常实用的工具。 并且在硬件行业
    的头像 发表于 11-07 10:29 259次阅读
    常见的一些<b class='flag-5'>shell</b> script规则

    请问abstract command和指令集中的lw指令有什么关系?

    在看Openocd的代码发现,在写内存过程中,通过将abstract command写入到DM模块的command寄存器中,就能实现将数据写入内存,我想问这个abstract command和指令集中的lw指令有什么关系?
    发表于 08-16 06:59

    Linux shell脚本分享

    今天浩道跟大家分享几个Linux运维中常用到的shell脚本!
    发表于 07-18 09:53 456次阅读
    Linux <b class='flag-5'>shell</b>脚本分享

    嵌入式Linux入门(五、Shell脚本编程上:认识Shell脚本)

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程。
    的头像 发表于 07-13 16:10 1009次阅读
    嵌入式Linux入门(五、<b class='flag-5'>Shell</b>脚本编程上:认识<b class='flag-5'>Shell</b>脚本)

    shell核心知识常见符号和流程控制:13.1 重定向 管道符

    Shell
    充八万
    发布于 :2023年07月12日 11:18:39

    shell编程知识学习

      1、为何叫做 Shell? 我们知道计算机的运作离不开硬件,但却无法直接操作硬件,硬件的驱动只能通过一种称之为“操作系统(OS,Opertating System)的软件来管控。Linux
    的头像 发表于 07-06 10:45 281次阅读

    一个小而美的嵌入式shell - letter shell

    熟悉Linux的朋友的都知道,shell包裹在内核之外的人机交互界面,用于用户和内核之间打交道的功能,类似于windows CMD。 通过Shell将输入的命令与内核通讯,好让内核可以控制硬件开正确
    的头像 发表于 06-10 15:11 4443次阅读
    一个小而美的嵌入式<b class='flag-5'>shell</b> - letter <b class='flag-5'>shell</b>

    如何快速入门Shell脚本呢?

    Shell 语言作为类 Unix 系统的原生脚本,有着非常实用的价值。
    的头像 发表于 05-22 11:51 414次阅读

    超级漂亮的Shell介绍

    Linux/Unix 提供了很多种 Shell,为毛要这么多 Shell? 难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员往往
    的头像 发表于 05-12 10:55 380次阅读
    超级漂亮的<b class='flag-5'>Shell</b>介绍

    剖析Linux shell 函数实现

    作为一个嵌入式 Linux 工程师,肯定需要编写 shell 脚本进行一些自动化工作。刚好,我最近就有类似需求——一键交叉编译 DDS。本着“编写漂亮代码的原则”,我用到了 **shell 函数** 。
    的头像 发表于 05-12 10:27 335次阅读
    剖析Linux <b class='flag-5'>shell</b> 函数实现