Skip to content

VPR can't handle signals that enters both clock ports and normal input ports #111

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

Closed
EliasVansteenkiste opened this issue Jan 19, 2016 · 2 comments
Labels
enhancement Feature enhancement VPR VPR FPGA Placement & Routing Tool

Comments

@EliasVansteenkiste
Copy link

VPR fails while trying to read the blif file which describes the LU_Network design from the Titan benchmark suite.

VPR exits with 75 identical error messages.
I included all the error messages in the attachmment. Here is the first one as an example:

Error 1: You have a signal that enters both clock ports and normal input ports.
Input net for block ddr:ddr_inst|ddr_0002:ddr_inst|ddr_p0:p0|ddr_p0_memphy:umemphy|ddr_p0_read_datapath:uread_datapath|ddr_p0_flop_mem:read_buffering[5].read_subgroup[0].uread_fifo|data_stored[0][0] #38441 is net (null) #-1 but connecting net is ddr:ddr_inst|ddr_0002:ddr_inst|ddr_p0:p0|ddr_p0_memphy:umemphy|ddr_p0_new_io_pads:uio_pads|ddr_p0_altdqdqs:dq_ddio[5].ubidir_dq_dqs|altdq_dqs2_ddio_3reg_stratixiv:altdq_dqs2_inst|dqsbusout #212424.

LU_network_error.txt

@EliasVansteenkiste
Copy link
Author

After checking out the latest version of VTR (Revision: d71ee16-dirty)
I am able to pack directrf, but for LU_Network the error messages persist.

I attached the log file for LU_Network.
vpr_stdout_LU_Network.txt

@kmurray
Copy link
Contributor

kmurray commented Mar 11, 2017

Should be fixed in 6ccf516.

We handle these cases when cleaning up the BLIF netlist after parsing, but before packing. The packer algorithm inherently does not support mixed clock/data nets; likely due to pin counting issues (?).

We split a clock's data sink pins into a new net driven by a .latch (with no data input) clocked by the original net. This is not a functionality preserving transformation, but is a simple approach.

The code is written to be flexible, so it should be easy to replace the .latch in the future with a better primitive to indicate clock to data conversion buffer (like Xilinx's BUFG).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature enhancement VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

No branches or pull requests

2 participants