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

[WIP] use FX2Crossbar for communication with FX2 chip in HDMI2USB designs #248

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

Conversation

piotr-binkowski
Copy link
Contributor

This PR modifies the HDMI2USB target of Opsis and Atlys boards to utilize FX2Crossbar.
Using this crossbar it is possible to access 4 FX2 USB endpoints using LiteX Streams.
Current implementation attaches output from MJPEG encoder and UART to the crossbar which still leaves one free endpoint.

This depends on timvideos/HDMI2USB-fx2-firmware#47

@piotr-binkowski piotr-binkowski force-pushed the fx2-crossbar branch 3 times, most recently from c20c7a7 to 5d910c1 Compare November 29, 2019 15:24
@piotr-binkowski piotr-binkowski changed the title use FX2Crossbar for communication with FX2 chip in HDMI2USB designs [WIP] use FX2Crossbar for communication with FX2 chip in HDMI2USB designs Dec 2, 2019
@piotr-binkowski piotr-binkowski force-pushed the fx2-crossbar branch 2 times, most recently from 6c4e274 to 4594dae Compare December 2, 2019 08:16
Copy link
Member

@mithro mithro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the status of this pull request? It is looking pretty good?

@@ -0,0 +1,46 @@
module ddr_iobuf(input clk, input d, input oe, output q, inout io);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the ddr_iobuf used for?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a replacement for SB_IO iCE40 primitive that was used in the original crossbar design https://github.com/GlasgowEmbedded/glasgow/blob/367ecc4e83cf644c994cd25ab204e019f7568b9c/software/glasgow/gateware/fx2_crossbar.py#L289
It is used as a IO buffer for all signals connected to the FX2 chip

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be done in migen, not in verilog?

Copy link
Member

@mithro mithro Jan 25, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you also add timing diagrams like @smunaut did at GlasgowEmbedded/glasgow#89 (comment) which verify things will work correctly with the Spartan 6? You should reference https://www.xilinx.com/support/documentation/user_guides/ug381.pdf

Is there a way to also replicate the testing that @whitequark did to prove that everything is working correctly here?

@mithro
Copy link
Member

mithro commented Jan 30, 2020

Could you rebase this commit?

@mithro
Copy link
Member

mithro commented Jul 3, 2020

@mateusz-holenko -- Could you work with @piotr-binkowski to get this pull request merged?

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

Successfully merging this pull request may close these issues.

2 participants