Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
6e4a4779
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,发现更多精彩内容 >>
提交
6e4a4779
编写于
11月 17, 2022
作者:
C
czw
提交者:
ZhangZifei
1月 06, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(ReservationStationStd): success for povray, mcf, gcc
TODO: modify the asynchronous read regfile to synchronous read regfile
上级
d7531d35
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
4 addition
and
10 deletion
+4
-10
src/main/scala/xiangshan/backend/issue/ReservationStationBase.scala
...cala/xiangshan/backend/issue/ReservationStationBase.scala
+2
-6
src/main/scala/xiangshan/backend/issue/ReservationStationStd.scala
...scala/xiangshan/backend/issue/ReservationStationStd.scala
+2
-4
未找到文件。
src/main/scala/xiangshan/backend/issue/ReservationStationBase.scala
浏览文件 @
6e4a4779
...
...
@@ -504,7 +504,6 @@ class BaseReservationStation(params: RSParams)(implicit p: Parameters) extends R
// Do the read data arbitration
val
s1_is_first_issue
=
Wire
(
Vec
(
params
.
numDeq
,
Bool
()))
val
s1_all_src_ready
=
Wire
(
Vec
(
params
.
numDeq
,
Bool
()))
val
s1_out_addr
=
Wire
(
Vec
(
params
.
numDeq
,
UInt
(
params
.
numEntries
.
W
)))
val
dataArrayWrite
=
Wire
(
Vec
(
params
.
numEnq
,
new
Bundle
{
val
enable
=
Bool
()
val
addr
=
UInt
(
params
.
numEntries
.
W
)
...
...
@@ -525,9 +524,6 @@ class BaseReservationStation(params: RSParams)(implicit p: Parameters) extends R
s1_out
(
i
).
bits
.
uop
:=
Mux
(
s1_issue_oldest
(
i
),
payloadArray
.
io
.
read
.
last
.
data
,
Mux
(
s1_in_selectPtrValid
(
i
),
payloadArray
.
io
.
read
(
i
).
data
,
s1_dispatchUops_dup
.
head
(
i
).
bits
))
s1_out_addr
(
i
)
:=
Mux
(
s1_issue_oldest
(
i
),
s1_oldestSel
.
bits
,
Mux
(
s1_in_selectPtrValid
(
i
),
select
.
io
.
grant
(
i
).
bits
,
dataArrayWrite
(
i
).
addr
))
s1_is_first_issue
(
i
)
:=
Mux
(
s1_issue_oldest
(
i
),
statusArray
.
io
.
isFirstIssue
.
last
,
Mux
(
s1_in_selectPtrValid
(
i
),
statusArray
.
io
.
isFirstIssue
(
params
.
numEnq
+
i
),
statusArray
.
io
.
update
(
i
).
data
.
isFirstIssue
))
...
...
@@ -682,7 +678,7 @@ class BaseReservationStation(params: RSParams)(implicit p: Parameters) extends R
a
:=
b
}
}
else
{
readData
:=
readIntRf_asyn
.
slice
(
i
*
numIntRfPorts
,(
i
+
1
)*
numIntRfPorts
).
map
(
_
.
data
)
readData
:=
DontCare
val
readAddr0
=
readIntRf_asyn
.
slice
(
i
*
numIntRfPorts
,(
i
+
1
)*
numIntRfPorts
).
map
(
_
.
addr
)
val
readAddr1
=
readFpRf_asyn
.
slice
(
i
*
numFpRfPorts
,(
i
+
1
)*
numFpRfPorts
).
map
(
_
.
addr
)
(
readAddr0
.
zip
(
readAddr1
)).
zip
(
readAddr
.
bits
.
uop
.
psrc
).
foreach
{
...
...
@@ -700,7 +696,7 @@ class BaseReservationStation(params: RSParams)(implicit p: Parameters) extends R
immExt
}
val
dataSlowCaptureAddr
=
s1_
out_addr
val
dataSlowCaptureAddr
=
s1_
issuePtrOH
.
map
(
_
.
bits
)
for
((
port
,
addr
)
<-
dataSelect
.
io
.
fromSlowPorts
.
zip
(
dataSlowCaptureAddr
))
{
for
(
j
<-
0
until
params
.
numSrc
)
{
port
(
j
)
:=
VecInit
(
dataArrayMultiWrite
.
map
(
w
=>
w
.
enable
&&
(
addr
&
w
.
addr
(
j
)).
asUInt
.
orR
)).
asUInt
...
...
src/main/scala/xiangshan/backend/issue/ReservationStationStd.scala
浏览文件 @
6e4a4779
...
...
@@ -35,9 +35,7 @@ class StdRSImp(params: RSParams, wrapper: StdRSWrapper) extends BaseReservationS
class
StdRS
(
params
:
RSParams
)(
implicit
p
:
Parameters
)
extends
BaseReservationStation
(
params
)
with
RSDropNotOnRedirect
{
for
(((
statusUpdate
,
uop
),
i
)
<-
statusArray
.
io
.
update
.
zip
(
s1_payloadUops
).
zipWithIndex
)
{
when
(
uop
.
needRfRPort
(
0
,
true
,
false
))
{
s1_deqRfDataSel
(
i
)(
0
)
:=
enqReverse
(
readFpRf_asyn
)(
i
).
data
}
for
((
uop
,
i
)
<-
s1_payloadUops
.
zipWithIndex
)
{
s1_deqRfDataSel
(
i
)(
0
)
:=
Mux
(
uop
.
needRfRPort
(
0
,
true
,
true
),
readFpRf_asyn
(
i
).
data
,
readIntRf_asyn
(
i
).
data
)
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录