这个错误的字面意思上是Pin_76引脚被分配给多个端口导致了冲突,但是查看Pin Planner发现并没有引脚冲突:
点击Pin_76引脚看看引脚属性:
General function是Row I/O,Special function是LVDS41p/nCEO,可以看出来Pin_76引脚除了可以作为普通IO口还能是LVDS差分信号,但是我们没有使用LVDS功能。还有一个是nCEO功能,这个nCEO是在使用ASP端口进行固件烧写的时候使用的信号线:
这根线默认状态是用作Program Pin,所以如果再分配其他端口到这个引脚的话会出现冲突,我们可以在器件配置的时候把nCEO这个引脚的功能设置成Row I/O:
这里将ASDO、nCSO、nCEO都设置成了regular I/O模式,这时候再进行编译就没有错误了。
但是有人可能有疑问为什么上面的电路图中的DCLK、CONF_DONE等引脚没有在Dual-Purpose Pins中,可以在Pin Planner中查看一下这几个引脚发现这几个引脚没有Row I/O的功能:
所以这几个引脚就无须在Dual-Purpose Pins中设置引脚功能,事实上根本无法分配端口到这些引脚上去。包括JTAG的四个引脚TMS、TCK、TDO、TDI也是没有I/O功能的,但是这只是针对EP2C5T144C8这个芯片的,有的芯片的JTAG的信号引脚也是可以作为I/O功能的,在Dual-Purpose Pins中也可以设置器功能。