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

Net alias not properly considered when creating set_{min,max}_delay constrainst #524

Closed
smunaut opened this issue Jun 24, 2020 · 4 comments
Assignees

Comments

@smunaut
Copy link

smunaut commented Jun 24, 2020

Alias are not considered when processing the get_clocks call when doing min/max delay constrainsts in the SDC.

Expected Behaviour

In the input netlist where you have theses aliases :

.names usb_I.uc_clk clk_wb
1 1
.names usb_I.tx_pkt_I.crc_16_I.clk clk_usb
1 1

Then the constraints :

set_max_delay 40 -from [get_clocks {clk_wb}] -to [get_clocks {clk_usb}]

and

set_max_delay 40 -from [get_clocks {usb_I.tx_pkt_I.crc_16_I.clk}] -to [get_clocks {usb_I.uc_clk}]

should be equivalent. But in reality, only the latter works because aliases are not considered.

Current Behaviour

The SDC parsing fails with set_max_path must specify at least one -from or -to clock because it doesn't find any clocks.

Possible Solution

Fix https://github.com/verilog-to-routing/vtr-verilog-to-routing/blob/master/vpr/src/timing/read_sdc.cpp#L896 to also process net aliases like it was done for create_clock by @acomodi .

Steps to Reproduce

Try to setup any max/min delay constrainst using the non-primary clock name from the EBLIF.

Context

I'd like to setup constrainst with a stable clock net name and not some random name that was randomly picked among all the possible aliases by the synthesis tool.

Your Environment

  • VTR revision used: 8980e46
  • Operating System and version: Linux
  • Compiler version: gcc 9.2.0
@mithro
Copy link
Member

mithro commented Jun 24, 2020

We should send this to the upstream VtR repo at https://github.com/verilog-to-routing/vtr-verilog-to-routing/issues -- @smunaut if you don't get to it I'm sure @acomodi will send it up.

GitHub
Verilog to Routing -- Open Source CAD Flow for FPGA Research - verilog-to-routing/vtr-verilog-to-routing

@acomodi
Copy link
Collaborator

acomodi commented Jun 25, 2020

Opened the issue upstream: verilog-to-routing#1379.
I added a fix locally, I need to add a basic regression test and I'll open a PR soon.

@acomodi
Copy link
Collaborator

acomodi commented Jun 25, 2020

@smunaut I opened a PR with a fix that should solve the problem opened here: verilog-to-routing#1380

@smunaut
Copy link
Author

smunaut commented Jun 26, 2020

@acomodi I just cherry picked that commit on top of the master+wip branch of Symbiflow and it works, thanks !

@smunaut smunaut closed this as completed May 16, 2024
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

3 participants