美文网首页
Rocket Core:常量定义规范

Rocket Core:常量定义规范

作者: gs要加油呀 | 来源:发表于2020-02-21 21:02 被阅读0次

设计中常常需要定义一些常量,给多个模块复用, rocketchip中通过trait+package object的方式定义常量

1. 首先在trait中定义consts常量

文件命名:const.scala

package freechips.rocketchip.rocket.constants
trait ScalarOpConstants {
  def X = BitPat("b?")
  def N = BitPat("b0")
  def Y = BitPat("b1")
  ...
}
trait MemoryOpConstants {
  val NUM_XA_OPS = 9
  val M_SZ      = 5
  def M_X       = BitPat("b?????");
  def M_XRD     = UInt("b00000"); // int load
  def M_XWR     = UInt("b00001"); // int store
  ...
}

2. 单独定义一个package object,打包trait中的常量

文件命名:package.scala

package freechips.rocketchip

package object rocket extends rocket.constants.ScalarOpConstants with rocket.constants.MemoryOpConstants

3. 使用方式:import 导入上述package object

import freechips.rocketchip.rocket._

相关文章

  • Rocket Core:常量定义规范

    设计中常常需要定义一些常量,给多个模块复用, rocketchip中通过trait+package object的...

  • 32,枚举

    枚举其实就是常量的规范应用:定义season常量: 定义区域常量: 类中调用常量:

  • React Native 开发规范

    React Native 开发规范 一、编码规范 (一) 命名风格 (二) 常量定义 (三) 变量定义 (四) 对...

  • Rocket Core : 译码逻辑

    Rocket Chip 代码注释已上传至github,持续更新中。 Decode 本文分析Rocket Core中...

  • Effective Objective-C 读书笔记

    1. 编码优化: 多用类型常量,少用#define 预处理命令 规范定义全局型常量,如通知名 这样定义常量要优于使...

  • Go语言常量

    常量的定义使用 常量的命名规范与变量命名规范一致。问题:什么场景下会用到常量呢?在程序开发中,我们用常量存储一直不...

  • 变量的基本类型与零值 golang

    最佳实践规范 go程序编写规范: 首行命名这个文件属于哪个包 往下再导入其他包 定义常量 定义全局变量 定义结构 ...

  • 个人对宏定义命名规范的理解

    1.宏定义的命名规范 通用常量宏 私有常量宏 配置类常量宏 通用操作宏 模板宏 方法简写宏 特定类中的步骤简称 其...

  • Rocket Core: 参考框图

  • Java 接口

    接口 方法申明的集合,用来定义规范、标准 可以定义:抽象方法、常量、嵌套类型,从Java 8开始可以定义:默认方法...

网友评论

      本文标题:Rocket Core:常量定义规范

      本文链接:https://www.haomeiwen.com/subject/alvhqhtx.html