DRTIO port - gateware #140

Merged
sb10q merged 13 commits from mwojcik/artiq-zynq:drtio_gateware into master 2 years ago
Owner

This is a part of few pull requests for DRTIO functionality. They have been broken up to allow easier code review overall. They're identical in contents to drtio_port branch.

This PR includes changes in gateware to accomodate DRTIO features, as well as AXI specific DRTIO aux controller.

This PR can be merged anytime as it doesn't have external dependencies.

Any feedback and suggestions are welcome.

This is a part of few pull requests for DRTIO functionality. They have been broken up to allow easier code review overall. They're identical in contents to drtio_port branch. This PR includes changes in gateware to accomodate DRTIO features, as well as AXI specific DRTIO aux controller. This PR can be merged anytime as it doesn't have external dependencies. Any feedback and suggestions are welcome.
mwojcik added 2 commits 2 years ago
sb10q reviewed 2 years ago
@ -0,0 +1,85 @@
"""Auxiliary controller, common to satellite and master"""
sb10q commented 2 years ago
Owner

I would rename the file to drtio_aux_controller.py.

I would rename the file to ``drtio_aux_controller.py``.
mwojcik marked this conversation as resolved
sb10q reviewed 2 years ago
@ -67,0 +98,4 @@
Instance("BUFG", i_I=rtiox4_clk, o_O=self.cd_rtiox4.clk),
MultiReg(pll_locked, self.pll_locked.status)
]
sb10q commented 2 years ago
Owner

Share with Kasli-SoC?

Share with Kasli-SoC?
sb10q commented 2 years ago
Owner

...or even put it in artiq.gateware and share with the other boards.

...or even put it in ``artiq.gateware`` and share with the other boards.
Poster
Owner

It's the same thing for artiq kasli, kc705 and sayma_rtm boards. I could separate it and save few lines everywhere, but where to put it, so it fits nicely? I'm thinking artiq.gateware.rtio.clock_multiplier? or maybe just artiq.gateware.clock_multiplier?

It's the same thing for artiq kasli, kc705 and sayma_rtm boards. I could separate it and save few lines everywhere, but where to put it, so it fits nicely? I'm thinking ``artiq.gateware.rtio.clock_multiplier``? or maybe just ``artiq.gateware.clock_multiplier``?
sb10q commented 2 years ago
Owner

Maybe artiq.gateware.rtio.xilinx_clocking, along with the SERDES rules?

Maybe ``artiq.gateware.rtio.xilinx_clocking``, along with the SERDES rules?
mwojcik marked this conversation as resolved
sb10q reviewed 2 years ago
@ -67,0 +109,4 @@
"-of [get_cells -filter {{REF_NAME == OSERDESE2}}]] "
"-to [get_pins -filter {{REF_PIN_NAME == D}} "
"-of [get_cells -filter {{REF_NAME == ISERDESE2}}]]"
)
sb10q commented 2 years ago
Owner

ditto

ditto
mwojcik marked this conversation as resolved
sb10q reviewed 2 years ago
@ -73,3 +148,1 @@
platform.toolchain.bitstream_commands.extend([
"set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
])
platform = prepare_zc706_platform(platform)
sb10q commented 2 years ago
Owner

No need to return platform and reassign it. The object is mutated in-place.

No need to return ``platform`` and reassign it. The object is mutated in-place.
mwojcik marked this conversation as resolved
sb10q reviewed 2 years ago
@ -128,0 +383,4 @@
self.submodules.drtiosat = core
self.csr_devices.append("drtiosat")
# Repeaters - there would be for i != 0 - however zc706 only has one SFP
# and no other means to connect to
sb10q commented 2 years ago
Owner

There's the link on the MGT SMAs but I doubt anyone needs this. @dhslichter ?

There's the link on the MGT SMAs but I doubt anyone needs this. @dhslichter ?
sb10q reviewed 2 years ago
@ -128,0 +265,4 @@
self.rustc_cfg["RTIO_FREQUENCY"] = str(self.drtio_transceiver.rtio_clk_freq/1e6)
if use_si5324_33:
sb10q commented 2 years ago
Owner

You can use assume it is true at all times and simplify the code accordingly. Only NIST backplanes are supported on ZC706 and they need the 3.3V signals.

You can use assume it is true at all times and simplify the code accordingly. Only NIST backplanes are supported on ZC706 and they need the 3.3V signals.
Poster
Owner

So there won't be "simple" master/satellite? What about the board I've been testing it on, is it with a backplane?

So there won't be "simple" master/satellite? What about the board I've been testing it on, is it with a backplane?
sb10q commented 2 years ago
Owner

"Simple" targets were just for testing, on the same hardware that has the backplane installed (even if they don't use the backplane).
Also fine to remove these targets, they were only there for the initial development.

"Simple" targets were just for testing, on the same hardware that has the backplane installed (even if they don't use the backplane). Also fine to remove these targets, they were only there for the initial development.
Poster
Owner

Okay, makes sense, I was somewhat worried about mismatched voltages for si5324. Although I don't think this is the place to be removing the simple targets, that should be done in another PR (not only unrelated functionally to drtio, it also touches gateware, nix scripts and readme).

Okay, makes sense, I was somewhat worried about mismatched voltages for si5324. Although I don't think this is the place to be removing the simple targets, that should be done in another PR (not only unrelated functionally to drtio, it also touches gateware, nix scripts and readme).
sb10q commented 2 years ago
Owner

Changing the IOSTANDARD here does not actually change the voltage produced by the FPGA I/O, and will not damage the Si5324. In fact it even works correctly in practice when the voltage in the CMOS/TTL IOSTANDARD is wrong.

Changing the IOSTANDARD here does not actually change the voltage produced by the FPGA I/O, and will not damage the Si5324. In fact it even works correctly in practice when the voltage in the CMOS/TTL IOSTANDARD is wrong.
mwojcik added 1 commit 2 years ago
mwojcik added 1 commit 2 years ago
mwojcik added 2 commits 2 years ago
mwojcik added 1 commit 2 years ago
mwojcik added 1 commit 2 years ago
mwojcik added 1 commit 2 years ago
mwojcik added 1 commit 2 years ago
mwojcik added 1 commit 2 years ago
mwojcik added 1 commit 2 years ago
mwojcik added 1 commit 2 years ago
sb10q reviewed 2 years ago
@ -178,0 +198,4 @@
platform.add_platform_command("set_input_jitter clk_fpga_0 0.24")
# kasli_soc has no SATA, but it has 4x SFP
# not sure yet why sfp0 is omitted in MasterMode
sb10q commented 2 years ago
Owner

It's omitted on Kasli because it's used for Ethernet.
Kasli-SoC has a dedicated RJ45 port.

It's omitted on Kasli because it's used for Ethernet. Kasli-SoC has a dedicated RJ45 port.
sb10q merged commit ab0c205dd2 into master 2 years ago
sb10q referenced this issue from a commit 2 years ago
The pull request has been merged as ab0c205dd2.
You can also view command line instructions.

Step 1:

From your project repository, check out a new branch and test the changes.
git checkout -b mwojcik-drtio_gateware master
git pull drtio_gateware

Step 2:

Merge the changes and update on Gitea.
git checkout master
git merge --no-ff mwojcik-drtio_gateware
git push origin master
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: M-Labs/artiq-zynq#140
Loading…
There is no content yet.