Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
12bb47dd
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
10 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
12bb47dd
编写于
9月 17, 2020
作者:
L
LinJiawei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FunctionUnit: use trait 'HasPipelineReg' instead abstract class 'PipelinedFunctionUnit'
上级
b5a00ce7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
16 addition
and
19 deletion
+16
-19
src/main/scala/xiangshan/backend/fu/CSR.scala
src/main/scala/xiangshan/backend/fu/CSR.scala
+5
-1
src/main/scala/xiangshan/backend/fu/FunctionUnit.scala
src/main/scala/xiangshan/backend/fu/FunctionUnit.scala
+7
-15
src/main/scala/xiangshan/backend/fu/Multiplier.scala
src/main/scala/xiangshan/backend/fu/Multiplier.scala
+4
-3
未找到文件。
src/main/scala/xiangshan/backend/fu/CSR.scala
浏览文件 @
12bb47dd
...
...
@@ -166,7 +166,7 @@ class FpuCsrIO extends XSBundle {
val
frm
=
Input
(
UInt
(
3.
W
))
}
class
CSRIO
extends
FunctionUnitIO
[
UInt
,
Null
](
csrCfg
,
64
,
FuOpType
())
{
class
CSRIO
extends
FunctionUnitIO
[
UInt
,
Null
](
csrCfg
,
len
=
64
,
extIn
=
FuOpType
())
{
val
cfIn
=
Input
(
new
CtrlFlow
)
val
redirectOut
=
Output
(
new
Redirect
)
...
...
@@ -181,6 +181,10 @@ class CSRIO extends FunctionUnitIO[UInt, Null](csrCfg, 64, FuOpType()) {
// for differential testing
// val intrNO = Output(UInt(XLEN.W))
val
wenFix
=
Output
(
Bool
())
override
def
cloneType
:
CSRIO.this.
type
=
new
CSRIO
().
asInstanceOf
[
this.
type
]
}
class
CSR
extends
XSModule
...
...
src/main/scala/xiangshan/backend/fu/FunctionUnit.scala
浏览文件 @
12bb47dd
...
...
@@ -2,10 +2,8 @@ package xiangshan.backend.fu
import
chisel3._
import
chisel3.util._
import
xiangshan._
import
utils._
import
FunctionUnit._
/*
...
...
@@ -52,6 +50,9 @@ class FunctionUnitIO[TI <: Data, TO <: Data]
})
val
redirectIn
=
Flipped
(
ValidIO
(
new
Redirect
))
override
def
cloneType
:
FunctionUnitIO.this.
type
=
new
FunctionUnitIO
(
cfg
,
len
,
extIn
,
extOut
).
asInstanceOf
[
this.
type
]
}
abstract
class
FunctionUnit
[
TI
<:
Data
,
TO
<:
Data
]
...
...
@@ -59,24 +60,16 @@ abstract class FunctionUnit[TI <: Data, TO <: Data]
cfg
:
FuConfig
,
len
:
Int
=
64
,
extIn
:
=>
TI
=
null
,
extOut
:
=>
TO
=
null
extOut
:
=>
TO
=
null
,
val
latency
:
Int
=
0
)
extends
XSModule
{
val
io
=
IO
(
new
FunctionUnitIO
[
TI
,
TO
](
cfg
,
len
,
extIn
,
extOut
))
}
abstract
class
PipelinedFunctionUnit
[
TI
<:
Data
,
TO
<:
Data
]
(
cfg
:
FuConfig
,
len
:
Int
,
latency
:
Int
,
extIn
:
=>
TI
=
null
,
extOut
:
=>
TO
=
null
)
extends
FunctionUnit
(
cfg
,
len
,
extIn
,
extOut
)
{
val
hasExtIn
=
extIn
!=
null
trait
HasPipelineReg
[
TI
<:
Data
,
TO
<:
Data
]
{
this:
FunctionUnit
[
TI
,
TO
]
=>
val
validVec
=
io
.
in
.
valid
+:
Array
.
fill
(
latency
)(
RegInit
(
false
.
B
))
val
rdyVec
=
Array
.
fill
(
latency
)(
Wire
(
Bool
()))
:+
io
.
out
.
ready
...
...
@@ -116,7 +109,6 @@ abstract class PipelinedFunctionUnit[TI <: Data, TO <: Data]
def
S4Reg
[
TT
<:
Data
](
next
:
TT
)
:
TT
=
PipelineReg
[
TT
](
4
)(
next
)
def
S5Reg
[
TT
<:
Data
](
next
:
TT
)
:
TT
=
PipelineReg
[
TT
](
5
)(
next
)
}
object
FunctionUnit
{
...
...
src/main/scala/xiangshan/backend/fu/Multiplier.scala
浏览文件 @
12bb47dd
...
...
@@ -30,9 +30,10 @@ class MulDivIO(val len: Int) extends XSBundle {
abstract
class
Multiplier
(
val
len
:
Int
,
val
latency
:
Int
=
3
)
extends
PipelinedFunctionUnit
(
mulCfg
,
len
,
latency
,
new
MulDivCtrl
)
{
// val io = IO(new MulDivIO(len))
latency
:
Int
=
3
)
extends
FunctionUnit
(
cfg
=
mulCfg
,
extIn
=
new
MulDivCtrl
,
latency
=
latency
)
with
HasPipelineReg
[
MulDivCtrl
,
Null
]
{
val
(
src1
,
src2
)
=
(
io
.
in
.
bits
.
src
(
0
),
io
.
in
.
bits
.
src
(
1
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录