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

    浏览量

    36421
  • DCP
    DCP
    +关注

    关注

    0

    文章

    30

    浏览量

    17256
  • DFx
    DFx
    +关注

    关注

    0

    文章

    35

    浏览量

    10560

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

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

收藏 人收藏

    评论

    相关推荐

    Linux从零到精通:最简单的Shell脚本入门教程

    通过简单的命令和脚本,实现对系统的灵活控制和自动化管理。 shell脚本前言 shell脚本入门 shell变量基础 shell变量子串 shell
    的头像 发表于 12-05 09:56 588次阅读
    Linux从零到精通:最简单的<b class='flag-5'>Shell</b>脚本入门教程

    4G模组加解密艺术:通用函数的深度解读

    今天是对加解密通用函数的深度解读,我将详细讲解,建议收藏,不可错过。
    的头像 发表于 11-12 09:58 287次阅读
    4G模组加解密艺术:通用函数的<b class='flag-5'>深度</b><b class='flag-5'>解读</b>

    Linux系统中shell命令解析

    shell是Linux系统的用户界面,提供了用户与内核交互的一种接口,它接收用户输入的命令并到送到内核去执行,因此也被称为Linux的命令解释器。
    的头像 发表于 11-05 15:40 341次阅读

    TCSH shell 编程入门

    ICer从业人员最先需要掌握的语言,就是linux shell语言。TCSH是ICer使用最多的Shell语言,可以说ICer入门语言从TCSH开始。
    发表于 11-01 10:45 0次下载

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之流程控制

    1、条件语句shell语句的流程控制与C语言不一样,流程控制中不能为空。shell中if语法如下,其中confition表示条件判断式,command为程序段落。if else语法
    发表于 09-05 09:06

    飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之流程控制

    1、条件语句 shell语句的流程控制与C语言不一样,流程控制中不能为空。 shell中if语法如下,其中confition表示条件判断式,command为程序段落。 if else
    发表于 09-04 10:12

    shell脚本执行的三种方式及区别

    在Linux系统中,Shell脚本是一种非常实用的工具,用于自动化执行一系列命令。Shell脚本可以大大提高工作效率,简化复杂的任务。在这篇文章中,我们将介绍Shell脚本执行的三种方式及其区别
    的头像 发表于 08-30 15:24 1325次阅读

    shell具有的功能和特点

    Shell 是一个命令行解释器,用于与操作系统进行交互。它提供了一种方便的方式来执行命令、管理文件和目录、运行程序等。以下是 Shell 的功能和特点的介绍: 命令执行 Shell 最基本的功能
    的头像 发表于 08-30 14:48 623次阅读

    shell脚本编写之本地脚本的编写和执行

    /scrip_test$ vim myshell.sh在该文件中,添加:#!/bin/bashecho "my first shell !"其中#!/bin/bash
    发表于 08-28 09:36

    嵌入式学习-shell介绍

    一、Shell是什么?我们在刚开始接触Linux的时候,经常会听到工程师提到Shell这个词,刚开始不知道这是个干什么的,简单的说,它是一个应用,接收用户命令,调用相应的内核接口函数或应用程序,并
    发表于 08-16 09:13

    shell基本介绍及常用命令之shell介绍

    一、Shell是什么?我们在刚开始接触Linux的时候,经常会听到工程师提到Shell这个词,刚开始不知道这是个干什么的,简单的说,它是一个应用,接收用户命令,调用相应的内核接口函数或应用程序,并
    发表于 08-15 09:28

    深度解读 VCXO VG7050CDN:可变晶体振荡器的卓越之选

    深度解读 VCXO VG7050CDN:可变晶体振荡器的卓越之选
    的头像 发表于 07-24 10:58 378次阅读

    解读PyTorch模型训练过程

    PyTorch作为一个开源的机器学习库,以其动态计算图、易于使用的API和强大的灵活性,在深度学习领域得到了广泛的应用。本文将深入解读PyTorch模型训练的全过程,包括数据准备、模型构建、训练循环、评估与保存等关键步骤,并结合相关数字和信息进行详细阐述。
    的头像 发表于 07-03 16:07 1126次阅读

    深度解读广汽全固态电池技术

    4月12日,在“科技视界”广汽科技日活动上,广汽集团发布了被称为“全球动力电池领域竞争的技术高地”的全固态动力电池技术,广汽埃安电池研发部负责人李进对此项技术进行了解读
    的头像 发表于 04-15 09:15 570次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>解读</b>广汽全固态电池技术

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

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