CycloneIII設(shè)計(jì)向?qū)?nbsp;
第一篇:芯片選型 1.考慮器件的資源,包括LE,ram資源,硬件乘法器,PLL,全局時(shí)鐘網(wǎng)絡(luò)等。 總體來(lái)說(shuō),對(duì)于FPGA設(shè)計(jì),資源一定要留有余量,否則最后的時(shí)序收斂會(huì)比較困難。我認(rèn)為使用80%左右是比較合適的。對(duì)于資源使用量在95%以上的設(shè)計(jì),除了時(shí)序收斂,可能還會(huì)遇到一些你想不到的問(wèn)題。 A. LE是5K到120K。要對(duì)設(shè)計(jì)需要的資源做一個(gè)估算,120K,對(duì)于大部分的應(yīng)用,應(yīng)該是一個(gè)很大的數(shù)字了。 B.ram資源為400K-3888Kbit.注意ram塊的大小都是9Kbit,有些模塊,比如fifo,實(shí)際上用不到9K的資源。但不管你用多少,都得占用一個(gè)ram(有些情況下占用0.5個(gè)ram)。所以ram的數(shù)量是否足夠也得考慮。 C.乘法器的數(shù)量 23-288個(gè)。注意是18*18bit的乘法器。實(shí)際使用時(shí),要看應(yīng)用需要的乘法器精度是多少。 D.PLL的數(shù)量為2-4個(gè)。每個(gè)PLL可以輸出5個(gè)時(shí)鐘,一般的設(shè)計(jì)夠用了。如果設(shè)計(jì)中的時(shí)鐘很多,就得仔細(xì)考慮了。 E.全局時(shí)鐘網(wǎng)絡(luò)為10-20個(gè)。一般夠用,如果設(shè)計(jì)中有很多時(shí)鐘或者很多扇出(fan-out)很大的信號(hào),比如復(fù)位信號(hào),也得仔細(xì)考慮。 2.考慮引腳,封裝和遷移 A.引腳數(shù)量。設(shè)計(jì)前,就要考慮需要多少普通IO(LVTTL),這個(gè)應(yīng)該是比較好計(jì)算的。電平有幾種,因?yàn)橐粋€(gè)bank只能1個(gè)IO電平。需要多少LVDS管腳,一些小封裝器件的LVDS管腳很少。 B.封裝。封裝影響到引腳數(shù)量。還影響到焊接的難度。EQFP和PQFP當(dāng)然好焊接也好拆卸,如果是BGA的,一般需要找專人焊接(需要專門的工具),價(jià)格也貴。布線難度:用BGA,還得出注意ball pitch(焊接球的間距)。1.0mm的當(dāng)然比0.8mm的好布線。F780比F484的外圈引腳數(shù)量多,當(dāng)然也好布線一些。體積:也就是芯片的大小了,比如用于移動(dòng)和手持應(yīng)用,就得考慮大小了。不過(guò)體積小,布線就難,所以這時(shí)pcb的層數(shù)往往從6層起,上不封頂。 C.器件遷移。也就是相同封裝,資源不同的器件可以直接替換使用。當(dāng)然都得是CycloneIII的器件。這樣的好處在于,初期設(shè)計(jì)時(shí)可以用大規(guī)模的器件,設(shè)計(jì)成功后,根據(jù)實(shí)際的資源使用情況,更換更經(jīng)濟(jì)的器件來(lái)量產(chǎn)。具體的型號(hào)替換,文檔上說(shuō)得很清楚,這里就不說(shuō)了。如果考慮型號(hào)替換設(shè)計(jì),要仔細(xì)核對(duì)每個(gè)芯片的引腳文檔,最后決定出畫原理圖時(shí)芯片的引腳定義。這里說(shuō)一個(gè)技巧,那就是規(guī)模最大的芯片的引腳定義,一般是最接近的,但也會(huì)有修改。 3.考慮器件速度 速度分為-6,-7,-8。-6是最快的,也是最貴的。每一檔次速度相差20%,包括內(nèi)部工作頻率和IO速度。FPGA的實(shí)際最高工作頻率和這些數(shù)字無(wú)關(guān),和具體的設(shè)計(jì)相關(guān)。我的經(jīng)驗(yàn)是,對(duì)于很多代碼,-8的器件能跑到130MHz左右。以前用CycloneII的-8器件,只能跑到110MHz左右。說(shuō)明CycloneIII比II還是有進(jìn)步的。 額外說(shuō)一點(diǎn),器件還分商業(yè)級(jí),工業(yè)級(jí)和汽車三種類型。我們一般采購(gòu)的都是商業(yè)級(jí)器件。差別在于溫度范圍和穩(wěn)定性。如果產(chǎn)品的工作溫度在在0-70度之間,穩(wěn)定性要求也不是太高,用商業(yè)級(jí)就可以了。要求高,那就多出錢吧。 1.早期功耗估計(jì) 需要提早就估算好芯片的功耗是多少,才能做好供電設(shè)計(jì)和散熱設(shè)計(jì)。 下面是Altera對(duì)于Cyclone III器件的功耗估計(jì)excel表格: http://www./support/devices/estimator/cy3-estimator/cycloneiii_epe_72sp1.xls 如果設(shè)計(jì)已經(jīng)基本完成,QuartusII軟件也可以根據(jù)實(shí)際設(shè)計(jì)估算功耗。 2.I/O支持 A. 三類I/O標(biāo)準(zhǔn),包括Single-ended(單端),Voltage-referenced(參考電壓),Differential(差分)。三者各有優(yōu)缺點(diǎn)。不過(guò)在實(shí)際應(yīng)用中,使用哪種標(biāo)準(zhǔn),往往由FPGA連接的芯片決定。 B.靈活的I/O bank。8個(gè)bank的I/O電壓和Vref參考電壓可以不一樣,但在每個(gè)bank內(nèi)部必須一致。在I/O電壓確定的情況下,還可以有一定的兼容性。比如2.5V和3.3V的兼容性。 C.外部?jī)?nèi)存接口。支持ddr,ddr2,qdrII,需要專門的管腳。以前的sdram和sram當(dāng)然也支持,不需要專門的管腳(把時(shí)鐘腳小心處理更好)。使用top和bottom的bank速度更快,最快支持200MHz。這里簡(jiǎn)單介紹,做高速設(shè)計(jì),得多查文檔。 D.Pin-Out文件。QuartusII工程編譯后會(huì)生成該文件,里面對(duì)引腳的描述就是該引腳最終確定的功能。對(duì)這個(gè)文件的檢查,可以幫助我們明確問(wèn)題。一些多功能引腳,需要小心處理。 3.選擇FPGA配置方案 下面是原文中的配置方案的表格,說(shuō)得很清楚。 配置方案很多,包括 Active serial (AS): 單芯片,使用Altera的EPCS系列芯片,配置速度第3。芯片價(jià)格較貴。 Active parallel (AP): 單芯片,使用特定型號(hào)的FLASH(INTEL P30,P33),配置速度第1。芯片價(jià)格便宜。但需要占用FPGA 40個(gè)管腳(16data+24addr)。 Passive serial (PS): 被動(dòng)方式,需要額外的控制器參與。配置速度第4. Fast passive parallel (FPP): 被動(dòng)方式,需要額外的控制器和flash芯片。配置速度第2。flash芯片價(jià)格便宜。需要占用FPGA 8個(gè)管腳(8data)。 Joint Test Action Group (JTAG)——調(diào)試使用 配置方案的選擇,由MSEL pin控制。 選擇考慮:是否需要fast power-on reset (POR) time ,達(dá)到快速上電工作的目的。 封裝不同,支持的配置方案也不同。 配置方案的選擇,需要考慮配置時(shí)間的要求。 AS和AP模式,F(xiàn)PGA的DCLK為輸出,最大速度40MHz。PS和FPP模式,F(xiàn)PGA的DCLK為輸入,上升沿采樣。最大速度為100MHz。 下載電纜包括: USB-Blaster,目前最常用的。價(jià)格中等,下載配置文件到FPGA的速度快。不想購(gòu)買的話,可以從網(wǎng)上下載pcb,采購(gòu)器件自己做。 ByteBlaster II,常見(jiàn),最便宜,但是下載速度慢。同樣可以自己做。器件規(guī)模大了用這個(gè)會(huì)慢得很痛苦。 EthernetBlaster,不常見(jiàn),價(jià)格貴,下載速度快。 目前,強(qiáng)烈建議使用USB-Blaster,除非對(duì)價(jià)格太敏感。 可以通過(guò)FPGA的JTAG接口,燒寫EPCS配置芯片。需要用到Serial Flash Loader這個(gè)Altera提供的IP核。 使用MAX II芯片,PS或者FPP模式,也有MAX II Parallel Flash Loader這個(gè)IP核,來(lái)通過(guò)MAX II芯片JTAG燒寫FLASH。 AP模式,有FPGA-Based Parallel Flash Loader這個(gè)IP核,通過(guò)FPGA的JTAG燒寫FLASH。 4.配置特性 AS和PS模式,配置文件可以選擇壓縮模式,能減少配置文件的大小。 遠(yuǎn)程系統(tǒng)升級(jí),不熟悉,待補(bǔ)充 5.PLL鎖相環(huán) 強(qiáng)大的PLL功能,包括時(shí)鐘倍頻,分頻,相移,可編程占空比,輸入時(shí)鐘切換,PLL級(jí)聯(lián),PLL動(dòng)態(tài)重配,動(dòng)態(tài)相移,擴(kuò)展頻譜時(shí)鐘,外部時(shí)鐘輸出和控制信號(hào)。 相對(duì)于Cyclone和Cyclone II,現(xiàn)在Cyclone III增加了PLL的動(dòng)態(tài)重配功能。 PLL的時(shí)鐘輸入,必須使用FPGA的專用時(shí)鐘輸入腳(dedicated clock input pins)或者另一個(gè)PLL的時(shí)鐘輸出。也就是說(shuō),PLL可以級(jí)聯(lián)。 輸入時(shí)鐘切換:可以給PLL輸入雙時(shí)鐘,當(dāng)使用的輸入時(shí)鐘失效時(shí),可以自動(dòng)或者手動(dòng)切換使用另一個(gè)備用輸入時(shí)鐘。 PLL有5個(gè)輸出。如果要輸出到專用外部時(shí)鐘輸出腳,建議用C0輸出,這樣jitter最小。當(dāng)然也是可以使用其它的輸出的。 如果對(duì)輸入時(shí)鐘和PLL的輸出時(shí)鐘,有相位上的要求,就得了解PLL的相位補(bǔ)償模式的設(shè)置。 6.芯片內(nèi)部調(diào)試方法 A.SignalProbe Incremental Routing 不改變目前的布線,引出內(nèi)部信號(hào)到一個(gè)沒(méi)使用的I/O上。 B.SignalTap II Embedded Logic Analyzer 嵌入式邏輯分析儀,可以捕捉實(shí)時(shí)的內(nèi)部信號(hào)。是最常用的調(diào)試工具。需要消耗一定的LE和M9K資源。使用時(shí),如果想減少對(duì)原設(shè)計(jì)的影響和編譯時(shí)間,可以反標(biāo)原設(shè)計(jì),使用增量編譯模式。 C.Logic Analyzer Interface 等效于多路選擇器,把多個(gè)內(nèi)部信號(hào)通過(guò)少量的管腳輸出??梢郧袚Q輸出哪些信號(hào)而不用重新編譯。適合于把信號(hào)引出給外部的邏輯分析儀。 D.In-System Memory Content Editor 在線修改內(nèi)存或者常量的值。 E.In-System Sources and Probes 能對(duì)內(nèi)部節(jié)點(diǎn)給一個(gè)簡(jiǎn)單的激勵(lì)信號(hào),然后捕獲輸出。 F.Virtual JTAG Megafunction 能對(duì)內(nèi)部節(jié)點(diǎn)給一個(gè)簡(jiǎn)單的激勵(lì)信號(hào),然后捕獲輸出。和上面的方式有不同的地方。 1.I/O方面的考慮 A.3.3/3.0/2.5V的普通I/O接口,如果接的外部信號(hào)是相同電壓,就不用考慮太多。如果電壓不同,就得仔細(xì)計(jì)算有沒(méi)有問(wèn)題。 B.引腳設(shè)置考慮。單端和差分信號(hào)的引腳必須保持一定的間隔。如果使用了參考電壓的單端信號(hào),也會(huì)有間隔上的要求。這是為了減少信號(hào)之間的干擾。QuartusII軟件會(huì)檢查引腳分配是否符合規(guī)則,如果不符合,設(shè)計(jì)是無(wú)法編譯的。 如果實(shí)際信號(hào)是穩(wěn)定的,沒(méi)有翻轉(zhuǎn)的(比如一直保持高或者低),可以通過(guò)assignments設(shè)置,避開(kāi)規(guī)則檢查。對(duì)某個(gè)單端引腳設(shè)置Toggle Rate assignments,可以去掉這個(gè)引腳和差分信號(hào)的間隔要求。Output Enable Group assignment這個(gè)設(shè)置,可以解決電壓參考信號(hào)的間隔要求。 C.減少同時(shí)開(kāi)關(guān)噪聲(SSN)。方法: 1).把同時(shí)翻轉(zhuǎn)的引腳分隔得遠(yuǎn)一些,放在2個(gè)不同的bank中更好 2)高速引腳,要遠(yuǎn)離VCC和GND,把靜態(tài)和未使用的引腳靠近VCC和GND 3)對(duì)高速引腳設(shè)置slow slew rate和lower drive strength 4)做好匹配(termination,或者叫端接) 更詳細(xì)的說(shuō)明參考AN 508: Cyclone III Simultaneous Switching Noise (SSN) Design Guidelines. D.未使用管腳的設(shè)置 。最好設(shè)置為輸入。設(shè)置為輸出,又接了外部電路,可能會(huì)導(dǎo)致芯片管腳損壞。 E.匹配方案。通常,信號(hào)的發(fā)送端使用串行匹配,接收端使用并行匹配。匹配電阻要符合傳輸阻抗。如果有可能,最好做板級(jí)的模擬來(lái)選擇匹配電阻的大小。Cyclone III芯片有部分管腳可以設(shè)置片內(nèi)串行匹配電阻OCT。 F.板級(jí)模擬。Altera提供芯片的IBIS和HSPICE模型,可以用來(lái)仿真。 2.供電考慮 A.供電電壓包括 Vccint 內(nèi)核電壓,1.2V Vccio I/O電壓 ,每個(gè)bank可以不一樣 。3.3V最常用。 Vcca PLL的模擬供電電壓,2.5V 比Cyclone II芯片高 Vccd_pll PLL的數(shù)字供電電壓,1.2V Vref 電壓參考信號(hào)的參考電壓 建議使用linear regulator給Vcca供電,對(duì)其它數(shù)字電壓,使用linear 或者 switching regulators。用linear regulator的噪聲會(huì)好一些。 電源芯片和FPGA之間,需要串聯(lián)磁珠(ferrite bead),電容一端接電源,一端接地。去耦的電路根據(jù)具體的設(shè)計(jì)要求決定。有錢就用鉭電容(tantalumcapacitors)。 pcb設(shè)計(jì),最好有專門的電源層。 B.PLL的供電。PLL包含模擬器件,因此有更嚴(yán)格的供電的要求。 1)到Vcca的電源走線要寬,20mil 2)Vccd的電源要干凈 3)所有的pll供電腳都要連好,無(wú)論是否使用這個(gè)pll 4)使用獨(dú)立的linear regulator對(duì)PLL供電 5)每個(gè)Vcca和Vccd都要去耦電路,Altera有參考設(shè)計(jì) 6)Gnda要連接到隔離的模擬地上。 3.器件上電 Cyclone III芯片支持熱切換和上電復(fù)位,不需要額外的復(fù)位芯片。 下面是上電過(guò)程: Cyclone III對(duì)于Vccint,Vccio等電壓的上電順序沒(méi)有要求,只要是單調(diào)上升的就可以了。對(duì)上電時(shí)間,如果是正常的POR,<50ms即可。如果設(shè)置為快速POR,那么上電時(shí)間<3ms。 如果需要支持熱插拔,需要考慮更多。 芯片的POR電路,會(huì)檢測(cè)Vccint和Vcca的電壓,如果低于閥值,會(huì)復(fù)位芯片。但不會(huì)檢測(cè)Vccio電壓。 總結(jié)一句,Cyclone III芯片的電源管理很好,省了很多外部芯片。 4.配置管腳連接 具體的配置電路,有參考設(shè)計(jì)。注意和Cyclone II有所不同,最好不要沿用老電路(似乎用老電路也可以跑^_^)。 這是常用的配置方式。其它配置方式的參考電路也都有,注意任何方式都得要按照參考電路來(lái),不能想當(dāng)然的連接。 5.配置的相關(guān)細(xì)節(jié) 用AS配置模式,bank1的Vccio必須為3.3V。 Cyclone III的DCLK為40MHz,EPCS器件中,EPCS16和EPCS64都能支持。但EPCS4器件有0.18和0.15兩種工藝批次。前者只能支持20MHz,因此不能配合Cyclone III使用。 使用AP模式,需要P30和P33的flash。同樣的,flash需要支持40MHz的DCLK。注意TSOP封裝不支持這個(gè)速度,F(xiàn)BGA封裝支持。 下圖為配置芯片的選擇 |
|
來(lái)自: Clement我非我 > 《硬件設(shè)計(jì)》