I have a design in PlanAhead instantiating differential I/O buffers (OBUFDS).
The UCF has LOC constraints on these nets, but PlanAhead fails to resolve the instance, and displays a critical warning message:
Parsing UCF File [..\top.ucf]
WARNING: [STA-11] No lib cell found for I/O cell OBUFDS_DUAL_BUF
WARNING: [STA-9] Creating black box model for cell OBUFDS_DUAL_BUF
INFO: [STA-16] For original lib cell OBUFDS_DUAL_BUF no cell OBUFDS or OBUFDS found.
CRITICAL WARNING: [Constraints-5] Cannot loc terminal 'XX_n' at site XX, loc is blocked [..\top.ucf:2]
The LOC constraint for OBUFDS in the UCF cannot be read through NGDBuild.
This issue has been fixed in version 13.3 of PlanAhead.
In PlanAhead 13.2 and earlier versions, you can work around the issue by doing the following:
- Apply the LOC constraints from another UCF directly to NGDBuild via the "-uc" switch.
- Add the I/O standard parameter in the code.
.IOSTANDARD("DIFF_HSTL_I") // Specify the output I/O standard
.O(dout_p), // Diff_p output (connect directly to top-level port)
.OB(dout_n), // Diff_n output (connect directly to top-level port)
.I(data_2) // Buffer input