Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
XiangShan
提交
9f842a1a
X
XiangShan
项目概览
OpenXiangShan
/
XiangShan
12 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
9f842a1a
编写于
2月 07, 2021
作者:
Y
Yinan Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
device,sdcard: fix inline SDHelper read behavior
上级
46951036
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
17 deletion
+12
-17
src/main/scala/device/AXI4DummySD.scala
src/main/scala/device/AXI4DummySD.scala
+7
-8
src/test/csrc/sdcard.cpp
src/test/csrc/sdcard.cpp
+5
-9
未找到文件。
src/main/scala/device/AXI4DummySD.scala
浏览文件 @
9f842a1a
...
@@ -32,23 +32,22 @@ class SDHelper extends BlackBox with HasBlackBoxInline {
...
@@ -32,23 +32,22 @@ class SDHelper extends BlackBox with HasBlackBoxInline {
setInline
(
"SDHelper.v"
,
setInline
(
"SDHelper.v"
,
s
"""
s
"""
|import "DPI-C" function void sd_setaddr(input int addr);
|import "DPI-C" function void sd_setaddr(input int addr);
|import "DPI-C" function
int sd_read(input bit ren
);
|import "DPI-C" function
void sd_read(output int data
);
|
|
|module SDHelper (
|module SDHelper (
| input clk,
| input clk,
| input setAddr,
| input setAddr,
| input [31:0] addr,
| input [31:0] addr,
| input ren,
| input ren,
| output [31:0] data
| output
reg
[31:0] data
|);
|);
|
|
| always @(posedge clk) begin
| always @(negedge clk) begin
| if (setAddr) begin
| if (ren) sd_read(data);
| sd_setaddr(addr);
| end
| end
| always@(posedge clk) begin
| if (setAddr) sd_setaddr(addr);
| end
| end
|
| assign data = sd_read(ren);
|
|
|endmodule
|endmodule
"""
.
stripMargin
)
"""
.
stripMargin
)
...
...
src/test/csrc/sdcard.cpp
浏览文件 @
9f842a1a
...
@@ -11,18 +11,14 @@ void sd_setaddr(uint32_t addr) {
...
@@ -11,18 +11,14 @@ void sd_setaddr(uint32_t addr) {
//assert(0);
//assert(0);
}
}
uint32_t
sd_read
(
int
ren
)
{
void
sd_read
(
uint32_t
*
data
)
{
if
(
ren
)
{
fread
(
data
,
4
,
1
,
fp
);
uint32_t
data
;
//printf("read data = 0x%08x\n", *data);
fread
(
&
data
,
4
,
1
,
fp
);
//assert(0);
//printf("read data = 0x%08x\n", *data);
return
data
;
}
return
0xdeadbeaf
;
}
}
void
init_sd
(
void
)
{
void
init_sd
(
void
)
{
fp
=
fopen
(
"/home/xyn/
debian/
debian.img"
,
"r"
);
fp
=
fopen
(
"/home/xyn/
workloads/debian/riscv-
debian.img"
,
"r"
);
if
(
!
fp
)
if
(
!
fp
)
{
{
eprintf
(
ANSI_COLOR_MAGENTA
"[warning] sdcard img not found
\n
"
);
eprintf
(
ANSI_COLOR_MAGENTA
"[warning] sdcard img not found
\n
"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录