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

Make passthrough SIPO truly passthrough #557

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

dpetrisko
Copy link
Contributor

The passthrough SIPO right now has weird behavior. It builds up incrementally and then comes through all at once. This was done to save hardware but breaks certain usecases which want to examine the intermediate results.

For instance, passing in ABCD would have C and D both available starting at cycle 4.

Instead, if we bypass each entry, the SIPO becomes truly passthrough. Then the output sequence will be ABCD as expected.

@dpetrisko dpetrisko requested a review from gaozihou March 1, 2022 08:44
@dpetrisko dpetrisko self-assigned this Mar 1, 2022
@gaozihou
Copy link
Contributor

gaozihou commented Mar 1, 2022

Thanks Dan!

I guess you are expecting to use the passthrough PISO in a special use case (utilizing the intermediate results). With only one v_o signal there is no way to tell whether A,B or C is valid or not. In my opinion you could modify the interface with

, output logic [els_p-1:0]           v_o

Where the new v_o signals can be driven by the my_turn signals plus some extra combinational logic

@dpetrisko
Copy link
Contributor Author

Yep, makes sense! And then the normal usecase of only detecting full can be achieved by looking at the high bit of the valids

dpetrisko pushed a commit that referenced this pull request Jan 26, 2023
* fixe vcache trace parsing

* fix vanilla tracer header printing
@dpetrisko dpetrisko force-pushed the dpetrisko-patch-15 branch 3 times, most recently from e057fcc to 4d91dcb Compare May 22, 2023 03:34
@taylor-bsg
Copy link
Contributor

Is this an N buncher and not a SIPO?

@dpetrisko
Copy link
Contributor Author

Hm, interesting. I guess yes and no, but I'll have to look at the handshaking to understand if there are any fundamental differences

@dpetrisko
Copy link
Contributor Author

The difference is in the output handshake.

In bsg_n_buncher, there are N ready signals so the packets can be popped individually (though not out of sequence).

In bsg_serial_in_parallel_out_passthrough, there is 1 ready signal and the entire packet is acked when received.

I believe bsg_serial_in_parallel_out_passthrough is a specialization of bsg_n_buncher, if we adjust the ready_and_i signal externally

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

Successfully merging this pull request may close these issues.

3 participants