zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/7UY99gEJ8QpVBJIohdqKhA

     

    简单介绍TLDebugModuleInner中innerCtrl相关的寄存器。

     

     

    1. innerCtrl

     

    接下来用到的innerCtrl来自于io中:

     

    io.innerCtrl从整体上看方向是输入,信号经过TLDebugModuleInnerAsync中转,来自Outer:

     

    io.innerCtrl一直处于ready状态:

     

    2. selectedHartReg

     

    selectedHartReg是一个10位宽的寄存器,接收输入的hartsel值:

     

    3. hamaskFull

     

    hamaskFull是一个掩码数组,每个核心一位:

     

    1) selectedHart对应的位为真:

     

    2) 如果supportHartArray,则根据hasel的值,使用从Outer接收的hamask的值:

    如果hartsel为假,就使用0值。

     

    4. hamaskWrSel

     

    根据io.innerCtrl.bits.hartsel/io.innerCtrl.bits.hasel/io.innerCtrl.bits.hamask的值,为每一个核心生成一个掩码,选中的为真,未选中的为假:

    与hamaskFull的区别在于这里不需要io.innerCtrl.fire(),可以直接取值。

     

    5. resumereq

     

    resumereq接收从Outer输入的resumereq值:

    这段代码混在DMSTATUS代码中,但又与之没有关联,提到这里来。

     

    6. 附录

  • 相关阅读:
    C++ string char[] 转化
    c++ 转化
    2014/4/16
    2014/4/11
    垂直电商现倒闭潮
    经典K线组合图解 > 正文
    上下影线
    分​析​主​力​试​盘​手​法
    nginx重新编译不停服
    nexus
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12433061.html
Copyright © 2011-2022 走看看