6850 - Diamond: ERROR - Based on the current IO attributes settings, port xxxxx cannot be assigned to pin [xx].

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):