Giter Club home page Giter Club logo

Comments (9)

dpretet avatar dpretet commented on August 25, 2024

Hi Vincent,

in the last commit you mentioned, I also remove the necessary synchronisation between write address channel and write data channel, which is most likely the issue. Now the write data channel uses a FIFO to store the granted access and drive its payload.

Yesterday night I added new test bench configuration to stress some AXI4 configuration as AXI4-lite scenarios and it went well. Probably the testbench doesn't reproduce the issue.

Could you provide me a waveform, your test bench, the test case or any info to help me understand the problem? I'll have time the next days to debug and fix the problem if necessary.

Damien

from axi-crossbar.

dpretet avatar dpretet commented on August 25, 2024

By the way which simulator do you use? I currently run my verification environment only with Icarus Verilog 11.

from axi-crossbar.

dpretet avatar dpretet commented on August 25, 2024

I may have found the root cause @vincentliu84. Can I ask you to test with this commit please? :)

from axi-crossbar.

vincentliu84 avatar vincentliu84 commented on August 25, 2024

Sorry for late response during weekend
I use VCS and Xcelium, also AXI VIPs in my environment, so can you open the fsdb format?
I read the code about mst_switch, and submodule: wch_gnt_fifo
The wch_empty signal is generated by wch_gnt_fifo, and it's judged by wr and rd pointer
but when push signal is from 0 -> 1, the empty signal is still 0
you can check the simple waveform in: https://github.com/vincentliu84/hello-world

from axi-crossbar.

dpretet avatar dpretet commented on August 25, 2024

Hi Vincent,

srst is tied to 1 in the waveform, so the circuit remains under reset. You need to choose aresetn or srst and don't drive both.

image

  • aresetn: a asynchronous active low reset, so needs to be driven low to reset then released to 1
  • srst: a synchronous active high reset, so needs to be driven high to reset then released to 0

You need to choose for all interfaces the same reset strategy, using aresetn or srst, and be sure all interfaces have been reseted then released to expect a proper core behaviour.

Should be ok with this fix :) By the way the last commits introduced USER support. The test bench has been upgraded to support them and I didn't find (yet) bugs during their usage.

Have a good day
Damien

from axi-crossbar.

vincentliu84 avatar vincentliu84 commented on August 25, 2024

This is solved, thanks
but I found another issue , if master 0 is write to slave 1 (1 master , 2 slaves in this scenario)
I see wch signals is routed to channel 1, but wvalid and wready is not
you can check waveform2 in https://github.com/vincentliu84/hello-world
(waveform marked with pink is slave 0, and green is slave 1)
Thanks

from axi-crossbar.

dpretet avatar dpretet commented on August 25, 2024

from axi-crossbar.

dpretet avatar dpretet commented on August 25, 2024

Should be OK now with commit mentioned above. My test suite ran successfully.

I though it could be handy to create a top level of the core to expose only AXI4-lite interface signals and another for AXI4 (which could be the current one). What do you think ?

from axi-crossbar.

vincentliu84 avatar vincentliu84 commented on August 25, 2024

it's solved, thank you so much.
I think it's good idea to seperate the two interfaces

from axi-crossbar.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.