JulianKemmerer / PipelineC

A C-like hardware description language (HDL) adding high level synthesis(HLS)-like automatic pipelining as a language construct/compiler feature.
https://github.com/JulianKemmerer/PipelineC/wiki
GNU General Public License v3.0
569 stars 46 forks source link

GOWIN: Fixing locations and splitting timing report at correct locations #190

Closed tiagosr closed 5 months ago

tiagosr commented 5 months ago

188 Tested with Gowin EDA, it works well 😃

Added parsing of multiple path reports Also, Gowin's .sdc format requires adding {} around clock names in [get_ports ...] - if other tools don't like this, might need to add some logic to SYN.py to select for that.

JulianKemmerer commented 5 months ago

Looking fantastic - glad to hear its starting to work well :)

Ill be making some minor comments on certain things...

JulianKemmerer commented 5 months ago

Btw Ill run some tests regarding {} around clock names :+1: ...

tiagosr commented 5 months ago

Question: I see there's some files that were committed to the path_delay_cache and pipeline_min_period_cache directories for other parts, should I commit the ones generated for the parts I'm testing it with?

JulianKemmerer commented 5 months ago

Question: I see there's some files that were committed to the path_delay_cache and pipeline_min_period_cache directories for other parts, should I commit the ones generated for the parts I'm testing it with?

I think there is one last thing to change - iirc the directory is like gowin/GW2AR-LV18QN88PC8:C/pnr - critically pnr talking about. That is trying to reflect if these timing numbers are synthesis estimates or full real pnr placed and routed values...

IIRC the HTML report is post synthesis - so need to change the part of code which looks up if the tool is set to syn or pnr and return False instead of True https://github.com/JulianKemmerer/PipelineC/blob/bd55aa790e761ddb15051247dcab172189d02ccd/src/SYN.py#L195

Minor thing syntax thing: I feel like I once saw the python is compare syntax is prefered for some reason here? for consistency stick with that when checking tool ex. if SYN_TOOL is VIVADO: etc, change in LOGIC_IS_ZERO_DELAY too

once the directory is producing syn paths - those path_delay_cache files should be checked in please.

I am still not certain about how to use pipeline_min_period_cache values and there tend to be alot of them over time ... so I tend to not commit that actually - little bit of a research-level feature at the moment

JulianKemmerer commented 5 months ago

Looking good to me. I hopefully will be installing the gowin tools and trying to get through the full flow myself soon :crossed_fingers:

Thanks again for all the strong work :muscle:

JulianKemmerer commented 5 months ago

@tiagosr are you on the Discord by chance? come by and chat :nerd_face: btw when I do get this working locally - I want to credit you gowin tool support on with mastodon/twitter post and such so if you have any links for yourself to share feel free