1、基於Quartus II 8.1 版本:
爲了驗證FPGA工程中的某個模塊的功能和時序的正確性,常常需要對其單獨進行驗證,但是這些模塊通常都與內部的衆多信號相連(如系統總線,中斷信號線等),往往一個模塊的對外接口引腳會多達幾百個,對其單獨仿真的話,可能會對目標FPGA造成IO資源不足的情況。即使IO資源滿足,當衆多內部信號變成IO信號時,模塊內部的信號將增加額外的IO延時,增加了時序約束的複雜度。
在編譯時會出現類似錯誤:
Error: Can't place 108 pins with 2.5 V I/O standard because Fitter has only 81 such free pins available for general purpose I/O placement.
爲了避免以上情況的出現,常常使用Virtual Pin對非IO引腳的信號進行約束,經過約束的信號,綜合佈線器將不對其分配IO資源。
具體方法如下:
在Quartus II中Assignments->Assignment Editor,在Category欄選擇logic options,到列表中To列下添加要設置的引腳接口,將Assignment Name設置爲Virtual Pin,將Value設置爲On,Enabled 設置爲Yes, 如果需要設置的很多,可以通過在Pin Planner中將引腳複製過來。
這樣設置爲Virtual Pin 就不會佔用FPGA的IO資源,而且時序仿真不會增加額外的延時,更加準確。
2、用quartus設計框圖時出現錯誤,錯誤信息如下:
Error: Can't place 117 pins with LVTTL I/O standard because Fitter has only 85 such free pins available for general purpose I/O placement
Error: Can't place pins due to device constraints
Error: Can't fit design in device
Error: Quartus II Fitter was unsuccessful. 3 errors, 0 warnings
Error: Quartus II Full Compilation was unsuccessful. 3 errors, 0 warnings
這個問題我也碰到過,不到10分鐘就解決了。
解決方法:
在你開發的時候,你在給芯片指定管腳的時候, 可能因爲某些原因刪除了一些管腳, 而你在ALL PIN列表中卻沒有刪除,當你繼續分配的時候,雖然你實際用到的管腳不到85, 但是你曾經分配的管腳已經有117個了。 所以解決方法很簡單,就是在ALL PIN列表中刪除未用管腳。
感覺這是QuartsII的一個小bug。
Error: Can't place 98 pins with 3.3-V LVTTL I/O standard because Fitter has only 80 such free pins available for general purpose I/O placement。
提示信息表明錯誤: 不能夠放置98個3.3LVTTL I?O標準電平引腳,因爲Fitter只能有80個空餘的引腳用來作爲GPIO。 請檢查你的工程管理的器件,不能滿足你的應用,得更換更多引腳或更高性能的芯片。