zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/jkBP6ZjEbgm-SVDpLUMjlA

     

    简单介绍Custom的实现。

     

     

    1. DebugCustomParams

     

    包含两个参数:

    a. addrs: 地址;

    b. 数据宽度;

     

    2. DebugCustomNull

     

    定义向上游传递的空参数:

     

    3. DebugCustomBundle

     

    定义DebugCustom节点连接所需要的Bundle:

     

    从一个节点的角度看,其定义如下:

     

    其中:

    a. 相连节点发送输入地址(addr),以及地址是否合法的标志(valid);

    b. DebugCustomBundle所属节点输出是否准备好接收地址的信号(ready);

    c. DebugCustomBundle所属节点输出地址对应的数据(data);

     

    4. DebugCustomImp

     

    DebugCustom节点实现:

    DUEB参数分别为:DebugCustomParams, DebugCustomNull, DebugCustomParams, DebugCustomBundle。

     

    5. DebugCustomSink

     

    定义下游节点,根据注释,下游节点是调试模块:

     

    6. DebugCustomSource

     

    定义上游节点,根据注释,上游节点是数据源:

     

    7. DebugCustomNexusNode

     

    定义用于连接多个数据源的联系节点:

     

    8. DebugCustomXbar

     

    实现联系节点的LazyModule:

     

    1) diplomacy node

     

    LazyModule DebugCustomXbar中的节点是一个DebugCustomNexusNode:

     

    A. sourceFn:用于把上游参数向下游传递的函数:

    a. 若没有上游节点,则返回一个特殊的参数:地址为空,数据宽度为0;

    b. 否则,返回去重后的地址,以及最大数据宽度;

     

    B. sinkFn:用于把下游参数向上传递的函数:

    这里不需要向上传递任何参数;因为调试模块需要被调试模块的信息,而被调试模块则不需要知道调试模块的信息。

     

    C. 连接图:

     

    2) lazy module

     

    lazy module用于根据输入边和输出边实现Xbar的功能:

    A. 输出边只有一个,即一个Xbar上可以连接多个被调试模块,但只连接一个调试模块:

     

    B. 取出上下游连接边:

     

    C. 把sources的地址逐个与sink.addr相比较,并根据前一个比较的结果,输出比对结果:

     

    D. 根据addr选择的source,把地址和地址是否合法的信号输出到对应的source中:

     

    E. 根据选择结果,以及source是否ready来向下游输出ready信号;只有选择的source输出的ready信号为真,才会向sink.ready输出真;

     

    F. 根据选择结果,向调试模块返回数据:

    这里应该有点问题:

    在Mux(i.ready, i.data, 0.U)中只判断i.ready是不够的,需要判断d & i.ready。因为i.ready是source输出,而多个source的ready可以同时为真,此时返回的result就是多个source的data或在一起,是错误的。

     

     

  • 相关阅读:
    把ssl模块加入到已经编译好的apache中实现HTTPS
    六,集合
    一. 计算机语言基础知识:
    三, 字符串
    四,列表的使用方法
    hash()函数的用法
    五,字典用法总结
    十,编码
    七八九,条件和循环语句
    二.Python的基础语法知识
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12194488.html
Copyright © 2011-2022 走看看