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 Support Kintex high speed IO banks #1867

Closed
wants to merge 105 commits into from

Conversation

hansfbaier
Copy link
Collaborator

Hi, I am working on supporting the 1.8V high speed IO banks of the Kintex chips.
I am opening the pull request in hope to get some feedback and direction on the work,
and also to see how the code fares with the CI builds.

@mithro
Copy link
Contributor

mithro commented Mar 3, 2022

@kgugala -- Any suggestions about who at @antmicro that might be able to provide some advice to @hansfbaier?

@kgugala
Copy link
Contributor

kgugala commented Mar 3, 2022

I suppose @acomodi @mkurc-ant and @tmichalak can help here

@hansfbaier hansfbaier changed the title WIP support for Kintex high speed IO banks Support Kintex high speed IO banks Mar 3, 2022
@hansfbaier
Copy link
Collaborator Author

removed the WIP, because it seems to keep the CI from running

@hansfbaier
Copy link
Collaborator Author

@acomodi Removing the WIP did not seem to help. How does the CI build get triggered here?

@acomodi
Copy link
Contributor

acomodi commented Mar 4, 2022

Hi @hansfbaier, thanks for this PR! We are in the process of transitioning to GH actions custom runners, but there still is a failure that prevents the transition to happen.

Here is the PR that transitions to use GH actions custom runners: #1846.

You may rebase on top of it and have CI running, so we can start iterating on this PR

@hansfbaier hansfbaier changed the title Support Kintex high speed IO banks WIP Support Kintex high speed IO banks Mar 4, 2022
@hansfbaier
Copy link
Collaborator Author

hansfbaier commented Mar 7, 2022

@acomodi I have the following problem when developing the 030-iob18 fuzzer: When disassembling the bitstream, bit2fasm complains about lots of unknown bits:

# In frame 0x0042159a 1 bits were not converted.
{ unknown_bit = "0042159a_50_25", unknown_segment = "0x00421580", unknown_segbit = "26_1625" }

# In frame 0x0042159c 6 bits were not converted.
{ unknown_bit = "0042159c_30_18", unknown_segment = "0x00421580", unknown_segbit = "28_978" }
{ unknown_bit = "0042159c_34_18", unknown_segment = "0x00421580", unknown_segbit = "28_1106" }
{ unknown_bit = "0042159c_63_18", unknown_segment = "0x00421580", unknown_segbit = "28_2034" }
{ unknown_bit = "0042159c_71_18", unknown_segment = "0x00421580", unknown_segbit = "28_2290" }
{ unknown_bit = "0042159c_75_18", unknown_segment = "0x00421580", unknown_segbit = "28_2418" }
{ unknown_bit = "0042159c_87_18", unknown_segment = "0x00421580", unknown_segbit = "28_2802" }
...

So it looks like in order for the fuzzer to work, bit2fasm needs the bits in the database.
But in order to have those bits in the database, the fuzzer needs to work.
How am I supposed to bootstrap this chicken-and-egg problem?
Could the cause be that the 005-tilegrid fuzzers are still wrong?

@mkurc-ant
Copy link
Contributor

@hansfbaier Its perfectly normal that when you disassemble a bitstream from a fuzzer for a thing that is not yet in database you get unknown bits. But for the fuzzer it is not a problem as it uses a different disassembly tool internally (forgot the name) which just dumps raw bits. Those are then correlated with tags you emit from generate.py by the segmatch tool.

Once the fuzzer successfully completes its job you may try updating your local database by running make pushdb from the fuzzer directory (if you are building the whole database from scratch then it should happen automatically) and use that database with bit2fasm. The you should get no unknown bits provided that the fuzzer solved all of them.

There is always the possibility of having incorrect base addresses from the tilegrid fuzzer.

@hansfbaier
Copy link
Collaborator Author

Thanks!

@hansfbaier
Copy link
Collaborator Author

@mkurc-ant I am still stuck. When I try to run 030-ion18 it complains about the missing DRIVE attribute. I tried commenting out all code with DRIVE from top.py, then pushed the resulting db, then reinstated the commented parts. fasm now seems to recognize a few more lines, but still huge parts are unknown.

@hansfbaier hansfbaier force-pushed the kintex-iob18 branch 4 times, most recently from 6b3c62d to 8b6b9ec Compare March 17, 2022 05:43
@hansfbaier hansfbaier force-pushed the kintex-iob18 branch 2 times, most recently from b324800 to 4a63316 Compare March 19, 2022 01:05
@hansfbaier
Copy link
Collaborator Author

hansfbaier commented Mar 19, 2022

@mkurc-ant Now the fuzzer 030-iob18 runs successfully and a review would be nice.

@mithro
Copy link
Contributor

mithro commented Mar 19, 2022

@hansfbaier - Congratulations!

@mithro
Copy link
Contributor

mithro commented Mar 19, 2022

@hansfbaier - I sent you an invite to be an outside collaborator so hopefully the GitHub Actions run automatically and don't need approval.

@hansfbaier hansfbaier force-pushed the kintex-iob18 branch 2 times, most recently from cf14568 to 876ee64 Compare March 23, 2022 21:29
@hansfbaier hansfbaier force-pushed the kintex-iob18 branch 4 times, most recently from fc656d1 to 09345b6 Compare April 11, 2022 21:52
…set process_rdb.py

Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
…035b-iob18-iserdes 036-iob18-ologic 037-iob18-pips

Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
… this fixes the issue of missing bits in the tilegrid.json

Signed-off-by: Hans Baier <hansfbaier@gmail.com>
…d by the fuzzer yet

Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
…or fuzzer 025-bram-config

Signed-off-by: Hans Baier <hansfbaier@gmail.com>
identical with 035b-iob-iserdes, which we reuse for riob tiles
with 0350iob-ilogic, which results we reuse for riob tiles
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
Signed-off-by: Hans Baier <hansfbaier@gmail.com>
@hansfbaier
Copy link
Collaborator Author

Closing this pull reqest in favor of #2046 which now passes CI.

@hansfbaier hansfbaier closed this Nov 22, 2022
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.

6 participants