Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
57c4f8d6
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 搜索 >>
提交
57c4f8d6
编写于
6月 20, 2020
作者:
L
LinJiawei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rename: send phy-reg status(rdy/busy) to dispatch-2
上级
d8a48a5f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
29 addition
and
5 deletion
+29
-5
src/main/scala/xiangshan/Bundle.scala
src/main/scala/xiangshan/Bundle.scala
+1
-0
src/main/scala/xiangshan/backend/Backend.scala
src/main/scala/xiangshan/backend/Backend.scala
+18
-3
src/main/scala/xiangshan/backend/dispatch/Dispatch2.scala
src/main/scala/xiangshan/backend/dispatch/Dispatch2.scala
+3
-0
src/main/scala/xiangshan/backend/exu/Exu.scala
src/main/scala/xiangshan/backend/exu/Exu.scala
+1
-2
src/main/scala/xiangshan/backend/rename/Rename.scala
src/main/scala/xiangshan/backend/rename/Rename.scala
+6
-0
未找到文件。
src/main/scala/xiangshan/Bundle.scala
浏览文件 @
57c4f8d6
...
...
@@ -57,6 +57,7 @@ class Redirect extends XSBundle {
val
brTag
=
UInt
(
BrTagWidth
.
W
)
val
isException
=
Bool
()
val
roqIdx
=
UInt
(
RoqIdxWidth
.
W
)
val
freelistAllocPtr
=
UInt
(
PhyRegIdxWidth
.
W
)
}
class
Dp1ToDp2IO
extends
XSBundle
{
...
...
src/main/scala/xiangshan/backend/Backend.scala
浏览文件 @
57c4f8d6
...
...
@@ -12,7 +12,7 @@ import xiangshan.backend.brq.Brq
import
xiangshan.backend.dispatch.
{
Dispatch1
,
Dispatch2
}
import
xiangshan.backend.exu._
import
xiangshan.backend.issue.IssueQueue
import
xiangshan.backend.regfile.
Regfile
import
xiangshan.backend.regfile.
{
Regfile
,
RfWritePort
}
import
xiangshan.backend.roq.Roq
...
...
@@ -89,6 +89,8 @@ class Backend(implicit val p: XSConfig) extends XSModule
dispatch1
.
io
.
roqIdxs
<>
roq
.
io
.
roqIdxs
dispatch2
.
io
.
in
<>
dispatch1
.
io
.
out
dispatch2
.
io
.
intPregRdy
<>
rename
.
io
.
intPregRdy
dispatch2
.
io
.
fpPregRdy
<>
rename
.
io
.
fpPregRdy
intRf
.
io
.
readPorts
<>
dispatch2
.
io
.
readIntRf
fpRf
.
io
.
readPorts
<>
dispatch2
.
io
.
readFpRf
...
...
@@ -98,12 +100,25 @@ class Backend(implicit val p: XSConfig) extends XSModule
val
wbFpReqs
=
(
fmacExeUnits
++
fmiscExeUnits
++
fmiscDivSqrtExeUnits
).
map
(
_
.
io
.
out
)
val
intWbArb
=
Module
(
new
WriteBackArbMtoN
(
wbIntReqs
.
length
,
NRWritePorts
))
val
fpWbArb
=
Module
(
new
WriteBackArbMtoN
(
wbFpReqs
.
length
,
NRWritePorts
))
val
wbIntResults
=
intWbArb
.
io
.
out
val
wbFpResults
=
fpWbArb
.
io
.
out
def
exuOutToRfWrite
(
x
:
Valid
[
ExuOutput
])
=
{
val
rfWrite
=
Wire
(
new
RfWritePort
)
rfWrite
.
wen
:=
x
.
valid
rfWrite
.
addr
:=
x
.
bits
.
uop
.
pdest
rfWrite
.
data
:=
x
.
bits
.
data
rfWrite
}
intWbArb
.
io
.
in
<>
wbIntReqs
intRf
.
io
.
writePorts
<>
intWbArb
.
io
.
out
intRf
.
io
.
writePorts
<>
wbIntResults
.
map
(
exuOutToRfWrite
)
fpWbArb
.
io
.
in
<>
wbFpReqs
fpRf
.
io
.
writePorts
<>
fpWbArb
.
io
.
out
fpRf
.
io
.
writePorts
<>
wbFpResults
.
map
(
exuOutToRfWrite
)
rename
.
io
.
wbIntResults
<>
wbIntResults
rename
.
io
.
wbFpResults
<>
wbFpResults
roq
.
io
.
exeWbResults
<>
exeWbReqs
...
...
src/main/scala/xiangshan/backend/dispatch/Dispatch2.scala
浏览文件 @
57c4f8d6
...
...
@@ -13,6 +13,9 @@ class Dispatch2 extends XSModule with NeedImpl {
// read regfile
val
readIntRf
=
Vec
(
NRReadPorts
,
Flipped
(
new
RfReadPort
))
val
readFpRf
=
Vec
(
NRReadPorts
,
Flipped
(
new
RfReadPort
))
// read reg status (busy/ready)
val
intPregRdy
=
Vec
(
NRReadPorts
,
Input
(
Bool
()))
val
fpPregRdy
=
Vec
(
NRReadPorts
,
Input
(
Bool
()))
// enq Issue Queue
val
enqIQCtrl
=
Vec
(
exuConfig
.
ExuCnt
,
DecoupledIO
(
new
MicroOp
))
...
...
src/main/scala/xiangshan/backend/exu/Exu.scala
浏览文件 @
57c4f8d6
...
...
@@ -4,7 +4,6 @@ import chisel3._
import
chisel3.util._
import
xiangshan._
import
xiangshan.FuType._
import
xiangshan.backend.regfile.RfWritePort
case
class
ExuConfig
(
...
...
@@ -113,7 +112,7 @@ trait HasExeUnits{
class
WriteBackArbMtoN
(
m
:
Int
,
n
:
Int
)
extends
XSModule
with
NeedImpl
{
val
io
=
IO
(
new
Bundle
()
{
val
in
=
Vec
(
m
,
Flipped
(
DecoupledIO
(
new
ExuOutput
)))
val
out
=
Vec
(
n
,
Flipped
(
new
RfWritePor
t
))
val
out
=
Vec
(
n
,
ValidIO
(
new
ExuOutpu
t
))
})
}
...
...
src/main/scala/xiangshan/backend/rename/Rename.scala
浏览文件 @
57c4f8d6
...
...
@@ -8,7 +8,13 @@ class Rename extends XSModule with NeedImpl {
val
io
=
IO
(
new
Bundle
()
{
val
redirect
=
Flipped
(
ValidIO
(
new
Redirect
))
val
roqCommits
=
Vec
(
CommitWidth
,
Flipped
(
ValidIO
(
new
RoqCommit
)))
val
wbIntResults
=
Vec
(
NRWritePorts
,
Flipped
(
ValidIO
(
new
ExuOutput
)))
val
wbFpResults
=
Vec
(
NRWritePorts
,
Flipped
(
ValidIO
(
new
ExuOutput
)))
val
intPregRdy
=
Vec
(
NRReadPorts
,
Output
(
Bool
()))
val
fpPregRdy
=
Vec
(
NRReadPorts
,
Output
(
Bool
()))
// from decode buffer
val
in
=
Vec
(
RenameWidth
,
Flipped
(
DecoupledIO
(
new
CfCtrl
)))
// to dispatch1
val
out
=
Vec
(
RenameWidth
,
DecoupledIO
(
new
MicroOp
))
})
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录