6850 - Diamond: ERROR - Based on the current IO attributes settings, port xxxxx cannot be assigned to pin [xx].
Description:
This article explains an error in Diamond which reports the port cannot be assigned to certain pin during synthesis due to the pin assignment done via constraint.
Solution:
This error in Diamond is caused by optimization done during synthesis which disconnects the signal/net from the whole design, and then causes Place & Route (PAR) issue.
Here is a scenario of how this error happens:
1. In RTL netlist view, the sample signal TFT_G has connection to HDMI_GRN_mix:

2. In Technology netlist view, the sample signal TFT_G has been optimized away by the tool:

To resolve this error, the user can use "syn_keep" attribute to keep the specified net intact during optimization and synthesis process.
The following is the solution to resolve the above scenario:
1. Add the following attributes into the design:
attribute syn_keep : string;
attribute syn_keep of TFT_G : signal is "true";
attribute syn_keep of HDMI_GRN_mix : signal is "true";
2. The sample signal TFT_G and HDMI_GRN_mix connections will be present in the view:

3. There will be no error reported after Place & Route (PAR):
