1. 程式人生 > >Quartus報錯“Can't place multiple pins assigned to pin location Pin_76”

Quartus報錯“Can't place multiple pins assigned to pin location Pin_76”

這個錯誤的字面意思上是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中也可以設定器功能。