zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/70BoeS7z4aBZK24zxdZzXA

     

    简单介绍DMI的实现。

     

     

    1. DMIConsts

     

    定义DMI使用的常量:

    其中:

    a. dmiDataSize为数据宽度;

    b. dmiOpSize为操作宽度;

     

    2. DMIReq

     

    定义DMI请求的结构:

    其中:

    a. addr为请求地址,其宽度由参数传入;

    b. data为请求时使用的数据;

    c. op为请求的操作类型;

     

    3. DMIResp

     

    定义DMI响应的结构:

    其中:

    a. data为响应的数据;

    b. resp为响应的状态:

     

    4. DMIIO

     

    定义顶层DMI接口:

    其中:请求接口中的地址宽度,从全局配置中获取;

     

    5. ClockedDMIIO

     

    增加了时钟和复位信号输出的DMI接口:

     

    6. DMIToTL

     

    定义DMI接口向TileLink接口转换的逻辑:

     

    1) diplomacy node

     

    这是一个只有输出边没有输入边的节点(TLClientNode):

     

    2) lazy module

     

    lazy module实现具体的转换逻辑:

     

    A. diplomacy node只有输出边,没有输入边:

     

    B. 定义模块IO:

     

    C. 生成通过channel a发起请求所需的fromSource/toAddr/size:

     

    D. 生成读写请求逻辑:

     

    E. 生成NOP逻辑:

    其中:mask=0代表不写入:

     

    F. 根据操作类型,选择通过channel a发出的请求:

     

    G. 适配请求的ready/valid:

     

    H. 适配响应的ready/valid:

     

    I. 返回响应状态和数据:

     

    J. 不支持缓存:

     

  • 相关阅读:
    学生管理
    数据类型
    Linux安装、发布Django项目
    函数式编程
    学生管理系统
    mysql数据库工具类
    python操作数据库
    链接mysql建库建表
    列表元组字典集合
    内置对象相关方法
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12239592.html
Copyright © 2011-2022 走看看