Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
2b146094
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
2b146094
编写于
1月 07, 2021
作者:
Y
Yinan Xu
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/master' into opt-dispatch
上级
c7d50d77
fe1dc59c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
39 addition
and
19 deletion
+39
-19
block-inclusivecache-sifive
block-inclusivecache-sifive
+1
-1
src/main/scala/utils/Pipeline.scala
src/main/scala/utils/Pipeline.scala
+0
-18
src/main/scala/utils/PipelineConnect.scala
src/main/scala/utils/PipelineConnect.scala
+38
-0
未找到文件。
block-inclusivecache-sifive
@
0315ccf2
比较
2bc303f2
...
0315ccf2
Subproject commit
2bc303f2e6ae4f1614b11643e3520b364d33b768
Subproject commit
0315ccf27963d7fe4b5e850c709fb66298f8390c
src/main/scala/utils/Pipeline.scala
已删除
100644 → 0
浏览文件 @
c7d50d77
package
utils
import
chisel3._
import
chisel3.util._
object
PipelineConnect
{
def
apply
[
T
<:
Data
](
left
:
DecoupledIO
[
T
],
right
:
DecoupledIO
[
T
],
rightOutFire
:
Bool
,
isFlush
:
Bool
)
=
{
val
valid
=
RegInit
(
false
.
B
)
valid
.
suggestName
(
"pipeline_valid"
)
when
(
rightOutFire
)
{
valid
:=
false
.
B
}
when
(
left
.
valid
&&
right
.
ready
)
{
valid
:=
true
.
B
}
when
(
isFlush
)
{
valid
:=
false
.
B
}
left
.
ready
:=
right
.
ready
right
.
bits
:=
RegEnable
(
left
.
bits
,
left
.
valid
&&
right
.
ready
)
right
.
valid
:=
valid
//&& !isFlush
}
}
src/main/scala/utils/PipelineConnect.scala
0 → 100644
浏览文件 @
2b146094
package
utils
import
chisel3._
import
chisel3.util._
object
PipelineConnect
{
class
PipelineConnectModule
[
T
<:
Data
](
gen
:
T
)
extends
Module
{
val
io
=
IO
(
new
Bundle
()
{
val
in
=
Flipped
(
DecoupledIO
(
gen
.
cloneType
))
val
out
=
DecoupledIO
(
gen
.
cloneType
)
val
rightOutFire
=
Input
(
Bool
())
val
isFlush
=
Input
(
Bool
())
})
val
valid
=
RegInit
(
false
.
B
)
valid
.
suggestName
(
"pipeline_valid"
)
when
(
io
.
rightOutFire
)
{
valid
:=
false
.
B
}
when
(
io
.
in
.
valid
&&
io
.
out
.
ready
)
{
valid
:=
true
.
B
}
when
(
io
.
isFlush
)
{
valid
:=
false
.
B
}
io
.
in
.
ready
:=
io
.
out
.
ready
io
.
out
.
bits
:=
RegEnable
(
io
.
in
.
bits
,
io
.
in
.
valid
&&
io
.
out
.
ready
)
io
.
out
.
valid
:=
valid
//&& !isFlush
}
def
apply
[
T
<:
Data
]
(
left
:
DecoupledIO
[
T
],
right
:
DecoupledIO
[
T
],
rightOutFire
:
Bool
,
isFlush
:
Bool
,
moduleName
:
Option
[
String
]
=
None
){
val
pipelineConnect
=
Module
(
new
PipelineConnectModule
[
T
](
left
.
bits
.
cloneType
))
if
(
moduleName
.
nonEmpty
)
pipelineConnect
.
suggestName
(
moduleName
.
get
)
pipelineConnect
.
io
.
in
<>
left
pipelineConnect
.
io
.
rightOutFire
:=
rightOutFire
pipelineConnect
.
io
.
isFlush
:=
isFlush
right
<>
pipelineConnect
.
io
.
out
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录