電子發(fā)燒友網(wǎng)核心提示:本文是電子發(fā)燒友網(wǎng)小編從電子發(fā)燒友網(wǎng)論壇——FPGA論壇找到的一篇關(guān)于Quartus II 9.0版本常見(jiàn)問(wèn)題集錦。在此跟大家一起分享。本文原文如下:之前已經(jīng)接觸QUARTUS II比較長(zhǎng)的時(shí)間了,也遇到過(guò)不少問(wèn)題,有些比較簡(jiǎn)單解決后就忘了,現(xiàn)在把能記得起來(lái)列在前面幾個(gè)。后面的是自己后續(xù)遇到的問(wèn)題的集錦。
QUARTUS II版本:9.0
FPGA型號(hào):EP2C8Q208
配置芯片:EPCS4
FLASH型號(hào) :TE28F320J3
1.多模塊或多進(jìn)程驅(qū)動(dòng)同一信號(hào)
Error (10028): Can‘t resolve multiple constant drivers for net “FLASH_A[7]” at led.v(32)
用Verilog描述電路時(shí),一個(gè)信號(hào)只能在一個(gè)進(jìn)程中驅(qū)動(dòng),如果在多個(gè)進(jìn)程中對(duì)其驅(qū)動(dòng)的話將產(chǎn)生如上錯(cuò)誤。解決方法為可以另加一個(gè)信號(hào),通過(guò)在另一個(gè)進(jìn)程中監(jiān)視這個(gè)信號(hào)做出相應(yīng)的動(dòng)作。
2.多功能管腳的設(shè)置
在用FLASH分配完管腳后編譯出現(xiàn)如下錯(cuò)誤:
Error: Can’t place multiple pins assigned to pin location Pin_108 (IOC_X34_Y2_N0)
Info: Fitter preparation operations ending: elapsed time is 00:00:00
Error: Can‘t fit design in device
Error: Quartus II Fitter was unsuccessful. 2 errors, 0 warnings
Error: Quartus II Full Compilation was unsuccessful. 4 errors, 56 warnings
原因是不能分配給多功能管腳PIN_108。
這是由于PIN_108是一個(gè)多功能管腳,還有一個(gè)功能是nCEO,也是默認(rèn)的功能。如果要用它當(dāng)普通IO,需要提前設(shè)置一下:assignments》device》device and pin options》dual-purpose pins里面把nCEO設(shè)置成use as regular i/o就可以了。
3.CLK 連接
SOPC綜合后資源占用LE只有幾百,警告數(shù)量數(shù)百。
原因一般是CLK的連接有問(wèn)題。CPU在沒(méi)有時(shí)鐘的情況下形同虛設(shè),在綜合時(shí)被綜合掉,產(chǎn)生大量警告。
4.負(fù)載電容(load capacitance)警告
Warning: Found 8 output pins without output pin load capacitance assignment
load capacitance和IO輸出結(jié)構(gòu)有關(guān)的設(shè)置,用來(lái)控制波形的上升下降沿的控制,用于阻抗匹配防止產(chǎn)生過(guò)沖。低速電路一般不需要考慮。
消除此警告要在assignment》assignment editor》下指定負(fù)載電容。如下圖所示:
以下是對(duì)此設(shè)置的英文介紹:
Specifies the capacitive load, in picofarads (pF), on output pins for each I/O standard. Note: These settings affect FPGA pins only. To specify board trace, termination, and capacitive load parameters for use with Advanced I/O Timing, use the Board Trace Model tab. Capacitive loading is ignored if applied to anything other than an output or bidirectional pin, or if Advanced I/O Timing is enabled.
5.行波時(shí)鐘警告
分頻計(jì)數(shù)作為了另外一個(gè)電路的時(shí)鐘,這種用法叫做行波時(shí)鐘。在FPGA設(shè)計(jì)中是不推薦的,所以在綜合時(shí)會(huì)產(chǎn)生警告:
Warning: Found 2 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in clock skew.
關(guān)于FPGA時(shí)鐘,多說(shuō)幾句。FPGA設(shè)計(jì)中一般都會(huì)使用一個(gè)主時(shí)鐘,也就是晶振的時(shí)鐘。時(shí)序邏輯用到的各種時(shí)鐘都是通過(guò)這個(gè)主時(shí)鐘分頻得到的。如果一個(gè)時(shí)鐘驅(qū)動(dòng)的邏輯門(mén)比較多的話,為了增加它的驅(qū)動(dòng)能力就需要將它設(shè)置成全局時(shí)鐘。多個(gè)時(shí)鐘在FPGA內(nèi)部是可以同時(shí)工作的,但是使用的時(shí)候要注意時(shí)序問(wèn)題。
關(guān)于全局時(shí)鐘,再多說(shuō)幾句。23,24,27,28是EP2C8Q208的四個(gè)全局時(shí)鐘管腳。他們比一般的IO管腳驅(qū)動(dòng)能力更強(qiáng),通常建議將時(shí)鐘信號(hào)綁定在這些管腳上,以保證時(shí)鐘信號(hào)的驅(qū)動(dòng)質(zhì)量.4個(gè)管腳是等效的,可以用不同時(shí)鐘同時(shí)驅(qū)動(dòng)他們,這樣FPGA內(nèi)部可以工作在多個(gè)時(shí)鐘域下,不同電路由不同時(shí)鐘來(lái)驅(qū)動(dòng)。
6.仿真時(shí)存儲(chǔ)器初始化
在使用FPGA內(nèi)部的RAM時(shí),會(huì)有一個(gè)初始化文件.mif,給RAM加上初始值或當(dāng)作ROM用,因此仿真時(shí)必須把相應(yīng)數(shù)據(jù)導(dǎo)入,首先要把mif文件轉(zhuǎn)換為.hex文件或.rif文件。
在Quartus II環(huán)境下,打開(kāi)mif文件,點(diǎn)Save As,選擇Hexadecimal(Intel-Format) File(*.hex),或者點(diǎn)擊Export,用Save as type選擇RAM Initialization File (*.rif),也可能在命令行下輸入:
mif2rif
打開(kāi)ram模塊文件,找到lpm_file或init_file,指向剛剛生成的hex文件或rif文件。
lpm_ram_dp_component.lpm_file = “path”
使用hex文件時(shí),不需要compiler directives,使用rif文件時(shí),需要加入U(xiǎn)SE_RIF,如下
vlog -work alter_mf altera_mf.v +define+USE_RIF=1
這樣就完成了數(shù)據(jù)導(dǎo)入。
評(píng)論
查看更多