-
Notifications
You must be signed in to change notification settings - Fork 79
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
piotr-binkowski
wants to merge
10
commits into
timvideos:master
Choose a base branch
from
antmicro:fx2-crossbar
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
0e98dff
gateware: add glasgow fx2-crossbar
22c856a
fx2_crossbar: adapt crossbar for use in Opsis and Atlys
58e486c
platform: opsis: atlys: modify fx2 pinout to with FX2Crossbar
4510836
targets: use fx2crossbar in HDMI2USB targets
3f5293d
fx2_crossbar: add UART PHY
5b49363
targets: add FX2 UART PHY to HDMI2USB targets
af4b9db
platforms: targets: add separate FX2 IFCLK to Opsis and Atlys
2c9073b
targets: request ports from fx2crossbar with correct clock domains
5e60db0
fx2_crossbar: fix module naming for ports with specified clock domains
c4cd29e
targets: opsis: atlys: update ifclk period constraint and add false p…
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
from gateware.fx2_crossbar.core import FX2Crossbar | ||
from gateware.fx2_crossbar.uart import FX2PHY |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from migen import * | ||
|
||
class FX2PHY(Module): | ||
def __init__(self, fx2_sink, fx2_source): | ||
self.sink, self.source = fx2_sink, fx2_source |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
module ddr_iobuf(input clk, input d, input oe, output q, inout io); | ||
wire clk; | ||
wire d; | ||
wire q; | ||
wire io; | ||
|
||
wire ioddr_d; | ||
wire ioddr_q; | ||
wire ioddr_t; | ||
|
||
IDDR2 id ( | ||
.C0(clk), | ||
.C1(~clk), | ||
.CE(1'b1), | ||
.R(1'b0), | ||
.S(1'b0), | ||
.D(ioddr_d), | ||
.Q1(q) | ||
); | ||
ODDR2 od ( | ||
.C0(clk), | ||
.C1(~clk), | ||
.CE(1'b1), | ||
.R(1'b0), | ||
.S(1'b0), | ||
.D0(d), | ||
.D1(d), | ||
.Q(ioddr_q) | ||
); | ||
ODDR2 ot ( | ||
.C0(clk), | ||
.C1(~clk), | ||
.CE(1'b1), | ||
.R(1'b0), | ||
.S(1'b0), | ||
.D0(~oe), | ||
.D1(~oe), | ||
.Q(ioddr_t) | ||
); | ||
IOBUF iob ( | ||
.I(ioddr_q), | ||
.O(ioddr_d), | ||
.T(ioddr_t), | ||
.IO(io) | ||
); | ||
endmodule |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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?There was a problem hiding this comment.
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#L289It is used as a IO buffer for all signals connected to the FX2 chip
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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?