Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于Response(b)通道信号的疑问 #3

Open
1357310795 opened this issue May 6, 2024 · 1 comment
Open

关于Response(b)通道信号的疑问 #3

1357310795 opened this issue May 6, 2024 · 1 comment

Comments

@1357310795
Copy link

when(io.axi.writeData.fire) {
write_data_ready := False
write_response_valid := True
}
when(io.axi.writeRsp.fire) {
write_response_valid := False
arwcmd_free.set()
}

本仓库的代码逻辑中,每一次突发传输中,只要 wvalid 和 wready 同时为高电平,就触发一次 response。

而 AXI4 接口协议多次强调 response 只能出现在一次写事务结束后(wlast 拉高之后)

image
image

是不是实现上有一些问题呢?

@Angelic47
Copy link
Member

你好,
抱歉回复时间稍晚,这段时间我有一些事情。

首先需要明确的是,根据相关逻辑实现,我的确是忽略了WLAST。感谢你的指出。
因为一开始这个IP核是给VexRiscv项目使用的,对于VexRiscv来说并没有使用到WLAST信号,所以这里忽略了这个问题。

你可以自行尝试对代码进行一些修改,并欢迎提交。
若你不熟悉SpinalHDL,则只是修改生成后的verilog也是可以的。我可以尝试将其改为SpinalHDL的实现。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants