Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
饶先宏
hdl4se
提交
56b6929b
H
hdl4se
项目概览
饶先宏
/
hdl4se
通知
12
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hdl4se
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
56b6929b
编写于
9月 10, 2021
作者:
饶先宏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
202109101153
上级
8f373ec0
变更
2
展开全部
显示空白变更内容
内联
并排
Showing
2 changed file
with
147 addition
and
714 deletion
+147
-714
examples/hdl4se_riscv/verilog/axi/axi_master.v
examples/hdl4se_riscv/verilog/axi/axi_master.v
+0
-714
examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v
...les/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v
+147
-0
未找到文件。
examples/hdl4se_riscv/verilog/axi/axi_master.v
已删除
100644 → 0
浏览文件 @
8f373ec0
此差异已折叠。
点击以展开。
examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v
0 → 100644
浏览文件 @
56b6929b
`timescale
1
ns
/
1
ps
module
riscv_core_with_axi_master
(
// clock and reset
input
wire
wClk
,
input
wire
nwReset
,
// Write Address
output
wire
wAWValid
,
output
wire
[
31
:
0
]
bAWAddr
,
output
wire
[
2
:
0
]
bAWProt
,
input
wire
wAWReady
,
// Write Data
output
wire
wWValid
,
output
wire
[
31
:
0
]
bWData
,
output
wire
[
3
:
0
]
bWStrb
,
input
wire
wWReady
,
// Write Response
output
wire
wBReady
,
input
wire
[
1
:
0
]
bBResp
,
input
wire
wBValid
,
// ReadAddr
output
wire
wARValid
,
output
wire
[
31
:
0
]
bARAddr
,
output
wire
[
2
:
0
]
bARProt
,
input
wire
wARReady
,
//ReadData
output
wire
wRReady
input
wire
wRValid
,
input
wire
[
31
:
0
]
bRData
,
input
wire
[
1
:
0
]
bRResp
);
reg
axi_awvalid
;
assign
wAWValid
=
axi_awvalid
;
reg
[
31
:
0
]
axi_awaddr
;
assign
bAWAddr
=
axi_awaddr
;
assign
bAWProt
=
3'b000
;
reg
axi_wvalid
;
assign
wWValid
=
axi_wvalid
;
reg
[
31
:
0
]
axi_wdata
;
assign
bWData
=
axi_wdata
;
reg
[
3
:
0
]
axi_wstrb
;
assign
bWStrb
=
axi_wstrb
;
assign
wBReady
=
1'b1
;
reg
axi_arvalid
;
assign
wARValid
=
axi_arvalid
;
reg
[
31
:
0
]
axi_araddr
;
assign
bARAddr
=
axi_araddr
;
assign
bARProt
=
3'b001
;
assign
wRReady
=
1'b1
;
wire
wWrite
,
wRead
,
wReadReady
,
wWriteReady
;
wire
[
31
:
0
]
bWriteAddr
,
bWriteData
,
bReadAddr
,
bReadData
,
bReadDataRam
,
bReadDataKey
;
wire
[
4
:
0
]
regno
;
wire
[
3
:
0
]
regena
;
wire
[
31
:
0
]
regwrdata
;
wire
regwren
;
wire
[
31
:
0
]
regrddata
;
wire
[
4
:
0
]
regno2
;
wire
[
3
:
0
]
regena2
;
wire
[
31
:
0
]
regwrdata2
;
wire
regwren2
;
wire
[
31
:
0
]
regrddata2
;
regfile
regs
(
regno
,
regena
,
wClk
,
regwrdata
,
regwren
,
regrddata
);
regfile
regs2
(
regno2
,
regena2
,
wClk
,
regwrdata2
,
regwren2
,
regrddata2
);
riscv_core
core
(
wClk
,
nwReset
,
wWrite
,
bWriteAddr
,
bWriteData
,
bWriteMask
,
wWriteReady
,
wRead
,
bReadAddr
,
bReadData
,
wReadReady
,
regno
,
regena
,
regwrdata
,
regwren
,
regrddata
,
regno2
,
regena2
,
regwrdata2
,
regwren2
,
regrddata2
);
//Write Address
reg
[
31
:
0
]
awaddr
;
reg
awvalid
;
always
@
(
posedge
wClk
)
if
(
~
nwReset
)
begin
awvalid
<=
1'b0
;
end
else
if
(
wWrite
)
begin
awaddr
<=
bWriteAddr
;
awvalid
<=
1'b1
;
end
else
if
(
wAWReady
)
begin
awvalid
<=
1'b0
;
end
assign
wWriteReady
=
(
wWrite
||
awvalid
)
&&
wAWReady
;
always
@
(
*
)
begin
axi_awvalid
=
wWrite
?
1'b1
:
awvalid
;
axi_awaddr
=
wWrite
?
bWriteAddr
:
awaddr
;
end
/* Write Data */
reg
[
31
:
0
]
wdata
;
reg
[
3
:
0
]
wstrb
;
reg
wvalid
;
always
@
(
wClk
)
begin
if
(
~
nwReset
)
begin
wvalid
<=
1'b0
;
end
if
(
wWrite
)
begin
wdata
<=
bWriteData
;
wstrb
<=
~
bWriteMask
;
wvalid
<=
1'b1
;
end
if
(
wWReady
)
begin
wvalid
<=
1'b0
;
end
end
always
@
(
*
)
begin
axi_wvalid
=
wWrite
?
1'b1
:
wvalid
;
axi_wdata
=
wWrite
?
bWriteData
:
wdata
;
axi_wstrb
=
wWrite
?
~
bWriteMask
:
wstrb
;
end
//Read Address
reg
[
31
:
0
]
araddr
;
reg
arvalid
;
always
@
(
posedge
wClk
)
if
(
~
nwReset
)
begin
arvalid
<=
1'b0
;
end
else
if
(
wRead
)
begin
araddr
<=
bReadAddr
;
arvalid
<=
1'b1
;
end
else
if
(
wARReady
)
begin
arvalid
<=
1'b0
;
end
assign
wReadyReady
=
(
wRead
||
arvalid
)
&&
wARReady
;
always
@
(
*
)
begin
axi_arvalid
=
wRead
?
1'b1
:
arvalid
;
axi_araddr
=
wRead
?
bReadAddr
:
araddr
;
end
assign
bReadData
=
bRData
;
endmodule
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录