https://mp.weixin.qq.com/s/HgUpTCh0D94Uymj5qQk-ag

 
介绍NodeImp相关基础类的实现。
 
 
1. 类图
 
 
节点实现(NodeImp)的基础类主要有:
a. InwardNodeImp:内向节点实现;
b. OutwardNodeImp: 外向节点实现;
c. NodeImp:节点实现,同时混入了InwardNodeImp和OutwardNodeImp;
d. SimpleNodeImp:简单节点实现;
 
 
2. InwardNodeImp
 
内向节点实现,其定义如下:
 
a. edgeI: 把DI和UI参数转变为一个EI,即Edge的类型;
b. bundleI:把Edge(EI)转变为一个Bundle类型(BI);
c. monitor:目前没有使用;
d. render:定义如何渲染Edge(EI)的逻辑,比如确定颜色(colour);
e. mixI:从UI到UI,把node的信息加入到UI参数中;
 
 
3. OutwardNodeImp
 
外向节点实现,其定义如下:
a. edgeO:把DO和UO参数转变为一个EO,即Edge类型;
b. bundleO:把Edge(EO)转变为一个与下游节点连接的实际Bundle类型(BO);
c. mixO:从DO到DO,把node的信息加入到DO参数中;
d. getI:目前没有使用;
 
 
4. NodeImp
 
节点实现,其定义如下:
a. 同时混入InwardNodeImp和OutwardNodeImp,意味着既是内向节点实现,也是外向节点实现;
b. 把DI/DO, UI/UO, BI/BO统一为D,U,B类型;
c. EI/EO仍然是分开的;
 
 
5. SimpleNodeImp
 
简单节点实现,其定义如下:
 
相较于NodeImp,这里把EI/EO也统一为E。
 
并且提供了初步的实现:
a. 把edgeI/edgeO都通过调用edge()实现,因为EI/EO都是E;
b. 把bundleI/bundleO都通过bundle()实现,因为BI/BO都是B;
 
 
6. 实例:AXI4Imp
 
 
1) AXI4Imp继承自SimpleNodeImp,所以只有一组D/U/E/B参数,没有再进一步对其做I/O区分;即:
 
D: AXI4MasterPortParameters
U: AXI4SlavePortParameters
E: AXI4EdgeParameters
B: AXI4Bundle
 
2) edge()实现:根据D/U和参数p,生成一个Edge:
其中包含一个bundle成员变量;
 
3) bundle()实现:根据Edge的信息,返回一个AXIBundle:
 
4) 实现mixI()/mixO():把node加入到nodePath中;

Rocket - diplomacy - NodeImp的更多相关文章

  1. Rocket - diplomacy - DUEB参数模型的设计

    https://mp.weixin.qq.com/s/9PEEpe1pkQDN9RWpOGSUCQ   介绍DUEB参数模型的设计,不包含实现(实现对设计做了简化).     1. DUEB   di ...

  2. Rocket - diplomacy - LazyModule的组织方式

    https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule L ...

  3. Rocket - diplomacy - LazyModule的实例化(补)

    https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  4. Rocket - diplomacy - LazyModule的实例化

    https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  5. Rocket - diplomacy - LazyModule

    https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ   介绍LazyModule的实现.     ​​   1. children   LazyModu ...

  6. Rocket - diplomacy - ValName

    https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ   简单调试ValName实现:   1. 使用     ​​   Desugar之后如下: ​​ ...

  7. Rocket - diplomacy - NodeHandle相关类

    https://mp.weixin.qq.com/s/GWL41P1G1BXm2sTeLmckdA   介绍NodeHandle相关的类.     ​​   1. NoHandle   顶层类(tra ...

  8. Rocket - diplomacy - 模块结构信息

    https://mp.weixin.qq.com/s/cTRxXwWNEeb4-XX_t4bRcg   讨论模块结构信息的来源及使用方式.     ​​   1. diplomacy   diplom ...

  9. Rocket - diplomacy - misaligned

    https://mp.weixin.qq.com/s/poCJBcx45clXHm6Uuv8M6w 介绍AddressSet.misaligned的实现.之前介绍的比较概括,也有偏差.这里根据实际执行 ...

随机推荐

  1. 【认证与授权】Spring Security自定义页面

    在前面的篇幅中,我们对认证和授权流程大致梳理了一遍.在这个过程中我们一直都是使用系统生成的默认页面,登录成功后也是直接调转到根路径页面.而在实际的开发过程中,我们是需要自定义登录页面的,有时还会添加各 ...

  2. rsync客户端一键安装rsync脚本(源码)

    客户端 read -np "请输入源码rsync的URL 地址 包名(以空格为分隔符,别带/):" URL DZ BM yum remove -y rsync &>& ...

  3. 实现简单网页rtmp直播:nginx+ckplayer+linux

    一.安装nginx 安装带有rtmp模块的nginx服务器(其它支持rtmp协议的流媒体服务器像easydarwin.srs等+Apache等web服务器也可以),此处使用nginx服务器,简单方便. ...

  4. SDK,JDK,API的区别

    [基础概念] 先留一波传送门: SDK:软件开发工具包(外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的 ...

  5. 学习ASP.NET Core(06)-Restful与WebAPI

    上一篇我们使用Swagger添加了接口文档,使用Jwt完成了授权,本章我们简答介绍一下RESTful风格的WebAPI开发过程中涉及到的一些知识点,并完善一下尚未完成的功能 .NET下的WebAPI是 ...

  6. 10 分离式web框架

    10 分离式web框架 wsgiref模块: 将http请求封装成以键值对的形式封装成字典environ: "PATH_INFO"对应的值为请求文件路径, “QUERY_STRIN ...

  7. Django之ORM中事务和锁

    ORM事务: 事务: 数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成. 事务的特点: 并非任意的对数据库的操作序列都是数据库事务.数据库事务拥有以下四 ...

  8. 使用PHP得到所有的HTTP请求头

    作者:老王 在PHP里,想要得到所有的HTTP请求头,可以使用getallheaders方法,不过此方法并不是在任何环境下都存在,比如说,你使用fastcgi方式运行PHP的话,就没有这个方法,所以说 ...

  9. JavaDoc文件如何生成

    目录 如何使用 1.通过命令行生成JavaDoc文档 2.IDEA如何配置后生成javadoc文档 javadoc命令是用来生成自己的API文档的 参考信息: @author 作者名 @version ...

  10. CF838A

    题目链接:http://codeforces.com/contest/838/problem/A 知识点: (void) 题目大意: 给一个 \(n \times m\) 的 01 矩阵,对于矩阵在 ...