Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
3366070d
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
11 个月 前同步成功
通知
1183
Star
3914
Fork
526
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
XiangShan
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3366070d
编写于
8月 12, 2020
作者:
W
William Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
RVA: add RVA decode
上级
e8c3f332
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
4 deletion
+21
-4
src/main/scala/xiangshan/backend/decode/Decoder.scala
src/main/scala/xiangshan/backend/decode/Decoder.scala
+1
-1
src/main/scala/xiangshan/backend/decode/isa/RVA.scala
src/main/scala/xiangshan/backend/decode/isa/RVA.scala
+18
-2
src/main/scala/xiangshan/package.scala
src/main/scala/xiangshan/package.scala
+2
-1
未找到文件。
src/main/scala/xiangshan/backend/decode/Decoder.scala
浏览文件 @
3366070d
...
...
@@ -143,5 +143,5 @@ class Decoder extends XSModule with HasInstrType {
when
(
io
.
out
.
ctrl
.
isXSTrap
){
io
.
out
.
ctrl
.
lsrc1
:=
10.
U
// a0
}
io
.
out
.
ctrl
.
noSpecExec
:=
io
.
out
.
ctrl
.
isXSTrap
||
io
.
out
.
ctrl
.
fuType
===
FuType
.
csr
io
.
out
.
ctrl
.
noSpecExec
:=
io
.
out
.
ctrl
.
isXSTrap
||
io
.
out
.
ctrl
.
fuType
===
FuType
.
csr
||
io
.
out
.
ctrl
.
fuType
===
FuType
.
mou
}
src/main/scala/xiangshan/backend/decode/isa/RVA.scala
浏览文件 @
3366070d
...
...
@@ -3,6 +3,7 @@ package xiangshan.backend.decode.isa
import
chisel3._
import
chisel3.util._
import
xiangshan.FuType
import
xiangshan.mem.LSUOpType
import
xiangshan.backend.decode.HasInstrType
...
...
@@ -25,6 +26,21 @@ object RVAInstr extends HasInstrType {
def
AMOMAXU
=
BitPat
(
"b11100_??_?????_?????_01?_?????_0101111"
)
// funct3 === 010 or 011
// fixme: add rva inst
val
table
=
Array
()
val
table
=
Array
(
// LR -> List(InstrI, FuType.mou, LSUOpType.lr),
// SC -> List(InstrS, FuType.mou, LSUOpType.sc),
LR_D
->
List
(
InstrI
,
FuType
.
mou
,
LSUOpType
.
lr
),
LR_W
->
List
(
InstrI
,
FuType
.
mou
,
LSUOpType
.
lr
),
SC_D
->
List
(
InstrSA
,
FuType
.
mou
,
LSUOpType
.
sc
),
SC_W
->
List
(
InstrSA
,
FuType
.
mou
,
LSUOpType
.
sc
),
AMOSWAP
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amoswap
),
AMOADD
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amoadd
),
AMOXOR
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amoxor
),
AMOAND
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amoand
),
AMOOR
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amoor
),
AMOMIN
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amomin
),
AMOMAX
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amomax
),
AMOMINU
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amominu
),
AMOMAXU
->
List
(
InstrR
,
FuType
.
mou
,
LSUOpType
.
amomaxu
)
)
}
src/main/scala/xiangshan/package.scala
浏览文件 @
3366070d
...
...
@@ -41,13 +41,14 @@ package object xiangshan {
def
ldu
=
"b1100"
.
U
def
stu
=
"b1101"
.
U
def
mou
=
"b1110"
.
U
// for amo, lr, sc, fence
def
apply
()
=
UInt
(
log2Up
(
num
).
W
)
def
isIntExu
(
fuType
:
UInt
)
=
!
fuType
(
3
)
def
isFpExu
(
fuType
:
UInt
)
=
fuType
(
3
,
2
)
===
"b10"
.
U
def
isMemExu
(
fuType
:
UInt
)
=
fuType
(
3
,
2
)
===
"b11"
.
U
def
isLoadExu
(
fuType
:
UInt
)
=
fuType
===
ldu
def
isLoadExu
(
fuType
:
UInt
)
=
fuType
===
ldu
||
fuType
===
mou
def
isStoreExu
(
fuType
:
UInt
)
=
fuType
===
stu
val
functionNameMap
=
Map
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录