https://mp.weixin.qq.com/s/nSX4prXFb4K5GSUhPtOUCg

简单介绍Crossing的实现。

1. IntXing

这是一个LazyModule:

1) 参数

a. sync:表示同步所需要的时钟周期数。

b. p:隐式参数,表示外部配置;

2) diplomacy node

用于与其他diplomacy node连接以及协商参数的节点,在这里是一个适配器节点:

3) lazy module

lazy module用于实现IntXing的内部逻辑:

A. 成对的输入边和输出边

B. 实现Crossing逻辑

这里直接使用SynchronizerShiftReg接收in的输入,并输出到out:

2. IntSyncCrossingSource

1) class

class IntSyncCrossingSource是一个LazyModule:

A. 参数alreadyRegistered表示输入in是否已经过一个异步复位寄存器;

B. node为diplomacy节点;

C. lazy module实现IntSyncCrossingSource节点的逻辑;这里使用异步复位寄存器把输入in的数据输出到out;

2) object

伴生对象用于创建一个IntSyncCrossingSource,并返回其中的diplomacy node,以与其他节点连接:

3. IntSyncCrossingSink

用于创建一个下游LazyModule:

1) 参数sync:上游到下游的Crossing所需要的时钟周期数;

2) diplomacy node:IntSyncSinkNode类型的下游节点;

3) lazy module:使用同步移位寄存器(SynchronizerShiftReg)实现Crossing逻辑;

4. CrossingHelper

1) IntInwardCrossingHelper

为参数node,根据ClockCrossingType生成相应的Crossing连接。其中,参数node作为下游节点:

2) IntOutwardCrossingHelper

为参数node,根据ClockCrossingType生成相应的Crossing连接。其中,参数node作为上游节点:

5. 附录

Rocket - interrupts - Crossing的更多相关文章

  1. Rocket - interrupts - Nodes

    https://mp.weixin.qq.com/s/BlW4y0Ez1kppxvSHAla31A 简单介绍interrupts相关的diplomacy节点. 1. IntImp 中断节点实现: 1) ...

  2. Rocket - interrupts - Parameters

    https://mp.weixin.qq.com/s/eD1_hG0n8W2Wodk25N5KnA 简单介绍interrupts相关的Parameters. 1. IntRange 定义一个中断号区间 ...

  3. Rocket - interrupts - Xbar

    https://mp.weixin.qq.com/s/icPGf4KdSOudwuNpLxdo7w 简单介绍Xbar的实现. 1. 简单介绍 IntXbar主要用于把上游多个中断源的中断组合在一起,然 ...

  4. Rocket - interrupts - NullIntSource

    https://mp.weixin.qq.com/s/Fn3u2OSLAzPDrlZTiLfikg 简单介绍NullIntSource的实现. 1. 简单介绍 NullIntSource实现一个不会发 ...

  5. Rocket - 断句 - Diplomatic Design Patterns: A TileLink Case Study

    https://mp.weixin.qq.com/s/afRVgTCYs1Mxu898uSmVaQ 整理一篇介绍Diplomacy和TileLink的文章.   原文链接: https://carrv ...

  6. [LeetCode] Self Crossing 自交

    You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to th ...

  7. 【LeetCode】Self Crossing(335)

    1. Description You are given an array x of n positive numbers. You start at point (0,0) and moves x[ ...

  8. 还记得高中的向量吗?leetcode 335. Self Crossing(判断线段相交)

    传统解法 题目来自 leetcode 335. Self Crossing. 题意非常简单,有一个点,一开始位于 (0, 0) 位置,然后有规律地往上,左,下,右方向移动一定的距离,判断是否会相交(s ...

  9. Crossing River

    Crossing River 题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=26251 题意: N个人希望去过 ...

随机推荐

  1. Re模块的 三个方法

    import re s1 = '绿茶白茶黄茶青茶红茶黑茶' s2 = '中国绿茶白茶黄茶青茶红茶黑茶' ret = re.findall(".茶", s1) print(ret) ...

  2. linux的用户管理、组管理

    用户管理:centos系统是一个多用户系统 用户分为三类: 超级用户(root) 用户id为 0 伪用户 用户id为1-499,虽然存在,但是不能用户登录 普通用户 用户id为500-60000 用户 ...

  3. 【Hadoop离线基础总结】Hive调优手段

    Hive调优手段 最常用的调优手段 Fetch抓取 MapJoin 分区裁剪 列裁剪 控制map个数以及reduce个数 JVM重用 数据压缩 Fetch的抓取 出现原因 Hive中对某些情况的查询不 ...

  4. [hdu5416 CRB and Tree]树上路径异或和,dfs

    题意:给一棵树,每条边有一个权值,求满足u到v的路径上的异或和为s的(u,v)点对数 思路:计a到b的异或和为f(a,b),则f(a,b)=f(a,root)^f(b,root).考虑dfs,一边计算 ...

  5. linux --开机自动挂载硬盘【转】

    转:http://c.biancheng.net/view/900.html 了解了 mount 命令之后,读者可能会问,系统如何在开机时自动挂载硬盘,它又是怎么知道哪些分区是需要挂载的呢? 很简单, ...

  6. Spring全家桶之springMVC(四)

      路径变量PathVariable PathVariable   Controller除了可以接收表单提交的数据之外,还可以获取url中携带的变量,即路径变量,此时需要使用@PathVariable ...

  7. React:Conditional Rendering(条件渲染)

    就像JS中常常会根据条件(比如if/else.switch)返回不同的值,React中也可以根据组件的状态或其他参考条件返回不同的React Element. 比如根据用户是否登陆渲染对应的UI面板. ...

  8. 中国空气质量在线监测分析平台之JS加密、JS混淆处理

    中国空气质量在线监测分析平台数据爬取分析 页面分析:确定url.请求方式.请求参数.响应数据 1.访问网站首页:https://www.aqistudy.cn/html/city_detail.htm ...

  9. 爬虫之图片懒加载技术、selenium工具与PhantomJS无头浏览器

    图片懒加载技术 selenium爬虫简单使用 2.1 selenium简介 2.2 selenium安装 2.3 selenium简单使用 2.3.1 selenium使用案例 2.3.2 selen ...

  10. flask之Flask-session三方组件

    from flask import Flask, views, render_template, request, session, redirect import redis as redis #p ...