fusesoc / cdc_utils

Verilog CDC implementations
1 stars 0 forks source link

Wrong SDC constraints #1

Open Paebbels opened 6 years ago

Paebbels commented 6 years ago

You should not set false_path constraints on clock boundaries. You need to use set_max_delay ... -DataPathOnly.

olofk commented 6 years ago

You are absolutely right. My mistake.

Do you know any good source for this information btw? I tell this to people all the time but I can't remember anymore where I learned it so it would be good to point people to some explanation

Paebbels commented 6 years ago

I did long research to collect all the knowledge that is now merged in PoC's CDC circuits. They are shipped with constraints.

The Clifford Cumming articles about clocks, resets etc. are good. There was a new whitepaper (2018) from Aldec covering different FPGA technologies and CDC problems.

olofk commented 6 years ago

It would make a lot of sense to reuse those, but I would likely need to reimplement in Verilog (probably no big deal). If I get the time to do that, would you like to have verilog versions in PoC or should I host them in a separate repo? Are these the ones you are talking about btw? https://github.com/VLSI-EDA/PoC/tree/master/src/misc/sync Haven't looked around in PoC for a while so I'm getting a bit lost in all the RTL :)

Paebbels commented 6 years ago

Currently PoC has not so much Verilog code, but it's not limited to VHDL only. If you like, feel free to create a MG with matching Verilog versions.

The XDCs / SDCs should apply to the same entity, right?

olofk commented 6 years ago

Cool. I hope to find some time to do that and also restart my experiment in creating FuseSoC packages as well. It makes a lot more sense to reuse something that has been well-tested rather than me maintaining cdc_utils which is not nearly as complete. I will reach out to you when I get down to do some work

And yes, the constraint matching should work the same.

For now, I'll just fix the wrong constraint here