Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
fd6a6c99
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
9 个月 前同步成功
通知
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 搜索 >>
提交
fd6a6c99
编写于
8月 04, 2023
作者:
X
Xuan Hu
提交者:
huxuan0307
8月 05, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
params,backend: merge piped fu, use less exu
上级
39c59369
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
6 addition
and
27 deletion
+6
-27
src/main/scala/xiangshan/Parameters.scala
src/main/scala/xiangshan/Parameters.scala
+4
-12
src/main/scala/xiangshan/backend/fu/FuConfig.scala
src/main/scala/xiangshan/backend/fu/FuConfig.scala
+2
-15
未找到文件。
src/main/scala/xiangshan/Parameters.scala
浏览文件 @
fd6a6c99
...
@@ -327,28 +327,20 @@ case class XSCoreParameters
...
@@ -327,28 +327,20 @@ case class XSCoreParameters
val
vfSchdParams
=
{
val
vfSchdParams
=
{
implicit
val
schdType
:
SchedulerType
=
VfScheduler
()
implicit
val
schdType
:
SchedulerType
=
VfScheduler
()
SchdBlockParams
(
Seq
(
SchdBlockParams
(
Seq
(
IssueBlockParams
(
Seq
(
ExeUnitParams
(
"VEX0"
,
Seq
(
VialuCfg
),
Seq
(
VfWB
(
port
=
0
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
ExeUnitParams
(
"VEX1"
,
Seq
(
VimacCfg
),
Seq
(
VfWB
(
port
=
0
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
),
numEntries
=
8
,
numEnq
=
2
),
IssueBlockParams
(
Seq
(
IssueBlockParams
(
Seq
(
ExeUnitParams
(
"FEX0"
,
Seq
(
FmacCfg
),
Seq
(
VfWB
(
port
=
0
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)))),
ExeUnitParams
(
"FEX0"
,
Seq
(
FmacCfg
),
Seq
(
VfWB
(
port
=
0
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)))),
ExeUnitParams
(
"FEX1"
,
Seq
(
FmacCfg
),
Seq
(
VfWB
(
port
=
1
,
0
)),
Seq
(
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)),
Seq
(
VfRD
(
6
,
0
)))),
ExeUnitParams
(
"FEX1"
,
Seq
(
FmacCfg
),
Seq
(
VfWB
(
port
=
1
,
0
)),
Seq
(
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)),
Seq
(
VfRD
(
6
,
0
)))),
),
numEntries
=
8
,
numEnq
=
2
),
),
numEntries
=
8
,
numEnq
=
2
),
IssueBlockParams
(
Seq
(
IssueBlockParams
(
Seq
(
ExeUnitParams
(
"FEX2"
,
Seq
(
FDivSqrtCfg
),
Seq
(
VfWB
(
port
=
2
,
0
)),
Seq
(
Seq
(
VfRD
(
11
,
0
)),
Seq
(
VfRD
(
12
,
0
)))),
ExeUnitParams
(
"FEX2"
,
Seq
(
FDivSqrtCfg
),
Seq
(
VfWB
(
port
=
2
,
0
)),
Seq
(
Seq
(
VfRD
(
11
,
0
)),
Seq
(
VfRD
(
12
,
0
)))),
ExeUnitParams
(
"FEX3"
,
Seq
(
F2fCfg
,
F2iCfg
,
VSetRvfWvfCfg
),
Seq
(
VfWB
(
port
=
2
,
0
),
IntWB
(
port
=
5
,
0
)),
Seq
(
Seq
(
VfRD
(
7
,
0
)),
Seq
(
VfRD
(
8
,
0
)))),
ExeUnitParams
(
"FEX3"
,
Seq
(
F2fCfg
,
F2iCfg
,
VSetRvfWvfCfg
),
Seq
(
VfWB
(
port
=
3
,
0
),
IntWB
(
port
=
5
,
0
)),
Seq
(
Seq
(
VfRD
(
7
,
0
)),
Seq
(
VfRD
(
8
,
0
)))),
),
numEntries
=
8
,
numEnq
=
2
),
IssueBlockParams
(
Seq
(
ExeUnitParams
(
"VEX2"
,
Seq
(
VppuCfg
),
Seq
(
VfWB
(
port
=
3
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
ExeUnitParams
(
"VEX3"
,
Seq
(
VipuCfg
),
Seq
(
VfWB
(
port
=
3
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
),
numEntries
=
8
,
numEnq
=
2
),
),
numEntries
=
8
,
numEnq
=
2
),
IssueBlockParams
(
Seq
(
IssueBlockParams
(
Seq
(
ExeUnitParams
(
"VEX
2"
,
Seq
(
Vfal
uCfg
),
Seq
(
VfWB
(
port
=
4
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
ExeUnitParams
(
"VEX
0"
,
Seq
(
VialuCfg
,
VimacCfg
,
VppuCfg
,
Vip
uCfg
),
Seq
(
VfWB
(
port
=
4
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
ExeUnitParams
(
"VEX
3"
,
Seq
(
VfmaCfg
),
Seq
(
VfWB
(
port
=
4
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
ExeUnitParams
(
"VEX
1"
,
Seq
(
VfaluCfg
,
VfmaCfg
),
Seq
(
VfWB
(
port
=
5
,
0
)),
Seq
(
Seq
(
VfRD
(
7
,
0
)),
Seq
(
VfRD
(
8
,
0
)),
Seq
(
VfRD
(
9
,
0
)),
Seq
(
VfRD
(
10
,
0
)),
Seq
(
VfRD
(
11
,
0
)))),
),
numEntries
=
8
,
numEnq
=
2
),
),
numEntries
=
8
,
numEnq
=
2
),
IssueBlockParams
(
Seq
(
IssueBlockParams
(
Seq
(
ExeUnitParams
(
"VEX
4"
,
Seq
(
VfdivCfg
),
Seq
(
VfWB
(
port
=
5
,
0
)),
Seq
(
Seq
(
VfRD
(
1
,
0
)),
Seq
(
VfRD
(
2
,
0
)),
Seq
(
VfRD
(
3
,
0
)),
Seq
(
VfRD
(
4
,
0
)),
Seq
(
VfRD
(
5
,
0
)))),
ExeUnitParams
(
"VEX
3"
,
Seq
(
VfdivCfg
),
Seq
(
VfWB
(
port
=
5
,
0
)),
Seq
(
Seq
(
VfRD
(
7
,
0
)),
Seq
(
VfRD
(
8
,
0
)),
Seq
(
VfRD
(
9
,
0
)),
Seq
(
VfRD
(
10
,
0
)),
Seq
(
VfRD
(
11
,
0
)))),
),
numEntries
=
8
,
numEnq
=
2
),
),
numEntries
=
8
,
numEnq
=
2
),
),
),
numPregs
=
vfPreg
.
numEntries
,
numPregs
=
vfPreg
.
numEntries
,
...
...
src/main/scala/xiangshan/backend/fu/FuConfig.scala
浏览文件 @
fd6a6c99
...
@@ -573,19 +573,6 @@ object FuConfig {
...
@@ -573,19 +573,6 @@ object FuConfig {
dataBits
=
128
,
dataBits
=
128
,
)
)
val
VfpuCfg
:
FuConfig
=
FuConfig
(
name
=
"vfpu"
,
fuType
=
FuType
.
vfpu
,
fuGen
=
null
,
// Todo
srcData
=
Seq
(
Seq
(
VecData
(),
VecData
(),
VecData
(),
MaskSrcData
(),
VConfigData
()),
// vs1, vs2, vd_old, v0
Seq
(
FpData
(),
VecData
(),
VecData
(),
MaskSrcData
(),
VConfigData
()),
// f[rs1], vs2, vd_old, v0
),
piped
=
false
,
writeVecRf
=
true
,
latency
=
UncertainLatency
(),
)
val
VlduCfg
:
FuConfig
=
FuConfig
(
val
VlduCfg
:
FuConfig
=
FuConfig
(
name
=
"vldu"
,
name
=
"vldu"
,
fuType
=
FuType
.
vldu
,
fuType
=
FuType
.
vldu
,
...
@@ -609,12 +596,12 @@ object FuConfig {
...
@@ -609,12 +596,12 @@ object FuConfig {
def
allConfigs
=
Seq
(
def
allConfigs
=
Seq
(
JmpCfg
,
BrhCfg
,
I2fCfg
,
CsrCfg
,
AluCfg
,
MulCfg
,
DivCfg
,
FenceCfg
,
BkuCfg
,
VSetRvfWvfCfg
,
VSetRiWvfCfg
,
VSetRiWiCfg
,
JmpCfg
,
BrhCfg
,
I2fCfg
,
CsrCfg
,
AluCfg
,
MulCfg
,
DivCfg
,
FenceCfg
,
BkuCfg
,
VSetRvfWvfCfg
,
VSetRiWvfCfg
,
VSetRiWiCfg
,
FmacCfg
,
F2iCfg
,
F2fCfg
,
FDivSqrtCfg
,
LduCfg
,
StaCfg
,
StdCfg
,
MouCfg
,
MoudCfg
,
VialuCfg
,
VipuCfg
,
V
fpuCfg
,
V
lduCfg
,
FmacCfg
,
F2iCfg
,
F2fCfg
,
FDivSqrtCfg
,
LduCfg
,
StaCfg
,
StdCfg
,
MouCfg
,
MoudCfg
,
VialuCfg
,
VipuCfg
,
VlduCfg
,
VfaluCfg
,
VfmaCfg
VfaluCfg
,
VfmaCfg
)
)
def
VecArithFuConfigs
=
Seq
(
def
VecArithFuConfigs
=
Seq
(
VialuCfg
,
VimacCfg
,
VppuCfg
,
VipuCfg
,
Vf
puCfg
,
Vf
aluCfg
,
VfmaCfg
VialuCfg
,
VimacCfg
,
VppuCfg
,
VipuCfg
,
VfaluCfg
,
VfmaCfg
)
)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录