-
Couldn't load subscription status.
- Fork 507
Open
Description
Hi, @alexforencich
I am doing a formal verificaion for verilog-axi IPs, see my repo verilog-axi-formal. And I found an AXI4 lite handshake issue with axil_ram interface, the aw/w-ready is assert with bvalid at the same clock, see the code below
Lines 118 to 124 in 314ea7d
| if (s_axil_awvalid && s_axil_wvalid && (!s_axil_bvalid || s_axil_bready) && (!s_axil_awready && !s_axil_wready)) begin | |
| s_axil_awready_next = 1'b1; | |
| s_axil_wready_next = 1'b1; | |
| s_axil_bvalid_next = 1'b1; | |
| mem_wr_en = 1'b1; | |
| end |
And the AXI standard says,
the slave must wait for both WVALID and WREADY to be asserted before asserting BVALID
An explain from https://community.arm.com/ is here
Which means bvalid should at least one clock after wready.
Metadata
Metadata
Assignees
Labels
No labels