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

Quicklogic timings #7

Open
Ravenslofty opened this issue Dec 2, 2020 · 5 comments
Open

Quicklogic timings #7

Ravenslofty opened this issue Dec 2, 2020 · 5 comments

Comments

@Ravenslofty
Copy link

My present goal here is to bring up ABC9 support for QuickLogic, which should be a noticeable performance increase.

However, ABC9 needs timings, and at the moment I can only find that data for EOS S3 and PolarPro 3E. This leaves the ArcticPro 2 and 3 without accessible timing data.

Could somebody talk to QL about getting that data available?

cc @kgugala & @mkurc-ant

@mkurc-ant
Copy link

That is true. To my knowledge no timing data for AP3 exists. Also both AP2 and AP3 documentation haven't been publicly released yet. Probably you can start with a fake "unit delay" for both architectures.

@mkurc-ant
Copy link

@Ravenslofty So as I've stated above: Neither AP2 nor AP3 cell timing data is public yet. You may try using fake timing data (roughly based on PP3). When you do that please add a comment that the data is fake and needs to be replaced in the future.

@Ravenslofty
Copy link
Author

So, I've been going through the PP3 timing data provided by QuickLogic, and it doesn't suit my needs very well.

From ABC9's point of view, there's a simple delay between an input and an output. However, the PP3 data file contains unateness information, making it quite difficult to extract the worst-case delay between two points. Additionally, I'm not familiar enough with Liberty files to tell how to calculate that delay (for example, do I just use the non-unate intrinsic delays? Should I add the rise/fall transition times to that?).

@mkurc-ant
Copy link

You may look at the library that is used for converting Liberty files to SDF files: https://github.com/QuickLogic-Corp/quicklogic-timings-importer. It is used in SymbiFlow where we import timings from SDF to the FPGA architecture definition. Some simplification of the timing data is done there.

@mkurc-ant
Copy link

@Ravenslofty This is the SDF file that is used for LUT cell timing in SymbiFlow: LOGIC_ss_0p990v_m040c.sdf.txt. It was generates from the corresponding Liberty file using the timings-importer that I've mentioned in my previous comment. You may find it helpful.

There are no conditional timings in the SDF. Basically timings-importer generates a new CELLTYPE for each condition outcome. So for example LOGIC3_FS_EQ_0 is LOGIC3 when FS == 0.

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

No branches or pull requests

2 participants