<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇FPGA專(zhuān)區(qū)FPGA初中級(jí) → FPGA系統(tǒng)設(shè)計(jì)技術(shù)


      共有8196人關(guān)注過(guò)本帖樹(shù)形打印

    主題:FPGA系統(tǒng)設(shè)計(jì)技術(shù)

    美女呀,離線(xiàn),留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
    FPGA系統(tǒng)設(shè)計(jì)技術(shù)  發(fā)帖心情 Post By:2010-11-19 11:26:03

    一、概述
    FPGA是當(dāng)今數(shù)字電路應(yīng)用領(lǐng)域最熱門(mén)的話(huà)題之一,是實(shí)現(xiàn)復(fù)雜邏輯功能,提高系
    統(tǒng)性能、集成度和可靠性的有力武器。但是,對(duì)于初用者,特別是對(duì)于那些習(xí)慣于TTL
    電路設(shè)計(jì)的初用者來(lái)說(shuō),FPGA的有效應(yīng)用并不像某些廠(chǎng)家廣告中所說(shuō)的那么輕松。誠(chéng)
    然,學(xué)會(huì)使用設(shè)計(jì)工具實(shí)現(xiàn)一個(gè)FPGA設(shè)計(jì)是一件很容易的事,但是要獲得比較理想的
    結(jié)果就不那么容易了。經(jīng)驗(yàn)表明,對(duì)于同一個(gè)設(shè)計(jì),那些會(huì)使用適合于FPGA體系結(jié)構(gòu)
    特點(diǎn)的設(shè)計(jì)技術(shù)的設(shè)計(jì)者與不能有效地使用適合于FPGA體系結(jié)構(gòu)特點(diǎn)的設(shè)計(jì)技術(shù)的初
    用者,在芯片資源利用率和設(shè)計(jì)實(shí)現(xiàn)速度兩方面的差距往往高達(dá)50%~100%,有時(shí)
    甚至更大些。造成這種差別的原因主要有兩個(gè)方面:一是FPGA設(shè)計(jì)工具不夠完善,其
    邏輯分割和布局布線(xiàn)與用戶(hù)描述設(shè)計(jì)的方法有很大關(guān)系;二是FPGA與傳統(tǒng)PLD和T
    TL標(biāo)準(zhǔn)邏輯電路在體系結(jié)構(gòu)方面有很大差別,因此設(shè)計(jì)技巧往往不盡相同,那些用戶(hù)習(xí)
    慣了的、適合于傳統(tǒng)PLD和TTL標(biāo)準(zhǔn)電路的設(shè)計(jì)優(yōu)化技術(shù)對(duì)FPGA設(shè)計(jì)來(lái)說(shuō)往往不
    是最優(yōu)的,有時(shí)甚至是最差的。因此,充分了解FPGA器件體系結(jié)構(gòu)特點(diǎn),并采用相適
    應(yīng)的設(shè)計(jì)優(yōu)化技術(shù)對(duì)于有效地應(yīng)用FPGA技術(shù)是非常重要的。
    傳統(tǒng)PLD是一種基于陣列結(jié)構(gòu)的器件,由AND陣列和OR陣列組成的,AND陣
    列的輸出驅(qū)動(dòng)OR陣列,而OR陣列的輸出驅(qū)動(dòng)輸出單元,并可反饋回AND陣列。傳統(tǒng)
    PLD的觸發(fā)器位于輸出單元,往往是每個(gè)輸出單元有一個(gè)觸發(fā)器,由OR門(mén)的輸出驅(qū)動(dòng)
    。PLD的AND門(mén)比較寬,通常可以實(shí)現(xiàn)多達(dá)幾十個(gè)輸入變量的邏輯與功能,每個(gè)與門(mén)
    通常也稱(chēng)為一個(gè)乘積項(xiàng)。與AND門(mén)相反,PLD的或門(mén)比較窄,往往只有幾個(gè)輸入變量
    。OR門(mén)的輸入是AND門(mén)的輸出,它實(shí)現(xiàn)乘積項(xiàng)之和的操作。PLD的輸出單元和觸發(fā)
    器數(shù)量有限,但每個(gè)輸出單元的組合邏輯能力很強(qiáng),可以實(shí)現(xiàn)很復(fù)雜的與或操作,因此是
    組合邏輯密集型器件,其組合邏輯資源與觸發(fā)器資源的比例往往高達(dá)5:1~10:1。
    PLD設(shè)計(jì)的一個(gè)原則就是盡可能地充分利用其組合邏輯能力,盡可能地節(jié)約觸發(fā)器資源
    。與PLD相反,FPGA是觸發(fā)密集型器件,構(gòu)成芯片內(nèi)部邏輯單元陣列的每個(gè)邏輯單
    元往往設(shè)有1~2個(gè)觸發(fā)器,但其組合邏輯功能比較弱,組合邏輯資源與觸發(fā)器資源的比
    例通常為2:1。事實(shí)上,FPGA主要是與門(mén)陣列而不是與PLD爭(zhēng)奪市場(chǎng),其邏輯單
    元是面向細(xì)粒度組合邏輯功能而優(yōu)化設(shè)計(jì)的,復(fù)雜的組合邏輯功能必須由多個(gè)邏輯單元分
    級(jí)實(shí)現(xiàn)。FPGA設(shè)計(jì)的一個(gè)原則是充分利用豐富的觸發(fā)器資源,盡可能降低每個(gè)組合邏
    輯操作的復(fù)雜度。
    中小規(guī)模標(biāo)準(zhǔn)集成電路系統(tǒng)設(shè)計(jì)的原則是在滿(mǎn)足性能要求的前提下盡可能地減少器件
    的使用量,其特點(diǎn)是用戶(hù)從元件庫(kù)中調(diào)用的第一個(gè)符號(hào)都對(duì)應(yīng)于PCB上的一塊組件,調(diào)
    用的符號(hào)越多往往意味著使用的器件越多,同時(shí)各個(gè)器件之間的連線(xiàn)是做在PCB上的,
    各種信號(hào)線(xiàn)之間沒(méi)有什么差別,且走線(xiàn)自由,延遲很小。FPGA則不同,用戶(hù)從元件庫(kù)
    中調(diào)用的符號(hào)只是描述某一功能,往往不對(duì)應(yīng)于特定的封裝。用戶(hù)多調(diào)用一些符號(hào),特別
    是反相器,往往并不意味著會(huì)多消耗一些芯片資源;相反,調(diào)用較少的符號(hào)有時(shí)反而會(huì)需
    要更多的芯片資源。此外,在FPGA中,各種互連資源的數(shù)量是固定的,所能實(shí)現(xiàn)的互
    連模式也是有一定限制的,且互連延遲往往也是很可觀的,有時(shí)要占總信號(hào)鏈路延遲的5
    0%。
    因此,FPGA與PLD和SSI/MSI標(biāo)準(zhǔn)電路在器件結(jié)構(gòu)等方面存在著很大的
    差異,為了獲得比較理想的性能,需要針對(duì)各種器件的特點(diǎn)采用相應(yīng)的設(shè)計(jì)技術(shù),若將P
    LD和SSI/MSI電路的設(shè)計(jì)技巧生搬硬套到FPGA設(shè)計(jì)中,往往會(huì)導(dǎo)致很差的性
    能。本文的其余部分將討論各種常見(jiàn)邏輯功能的FPGA設(shè)計(jì)技術(shù)。
    二、狀態(tài)機(jī)設(shè)計(jì)
    狀態(tài)機(jī)是數(shù)字電路設(shè)計(jì)中經(jīng)常用到的時(shí)序控制功能,FPGA設(shè)計(jì)在狀態(tài)編碼方案、
    等待狀態(tài)生成和大型復(fù)雜狀態(tài)機(jī)設(shè)計(jì)等方面與傳統(tǒng)PLD設(shè)計(jì)和SSI/MSI標(biāo)準(zhǔn)邏輯
    電路設(shè)計(jì)有著很大的差別。
    首先,在FPGA設(shè)計(jì)中,One-Hot狀態(tài)編碼方案比二進(jìn)制狀態(tài)編碼方案更有
    效,而在PLD和SSI/MSI設(shè)計(jì)中,二進(jìn)制狀態(tài)編碼方案則更合適。所謂One-
    Hot狀態(tài)編碼方案就是每個(gè)狀態(tài)由一位觸發(fā)器來(lái)表示,而二進(jìn)制狀態(tài)編碼方案是用Lo
    g,[2][N]位觸發(fā)器表示N個(gè)狀態(tài),在PLD設(shè)計(jì)中,由于其觸發(fā)器資源有限,故
    通常采用二進(jìn)制編碼方案來(lái)表示各個(gè)狀態(tài),然后用組合邏輯對(duì)狀態(tài)編碼進(jìn)行譯碼,生成狀
    態(tài)輸出信號(hào)和狀態(tài)轉(zhuǎn)移控制信號(hào)。由于PLD是組合邏輯密集型器件,其AND-OR陣
    列可以在相同的延遲時(shí)間內(nèi)完成各種復(fù)雜的譯碼功能,因此這種方案是適合于其器件體系
    結(jié)構(gòu)的。FPGA是觸發(fā)器密要型器件,其邏輯單元的組合邏輯能力相對(duì)PLD的AND
    -OR陣列而言是很弱的,只有幾個(gè)輸入端,因此往往不宜采用二進(jìn)制狀態(tài)編碼方案,因
    為這樣做會(huì)導(dǎo)致復(fù)雜的組合運(yùn)算,增加邏輯鏈路級(jí)數(shù),降低工作速度。對(duì)FPGA而言,
    更合適的是采用One-Hot狀態(tài)編碼方案,因?yàn)榇藭r(shí)狀態(tài)生成邏輯的輸入直接來(lái)自狀
    態(tài)觸發(fā)器的輸出端,不必對(duì)狀態(tài)進(jìn)行譯碼,操作比較簡(jiǎn)單,每個(gè)狀態(tài)的生成信號(hào)往往可以
    在一個(gè)邏輯單元內(nèi)實(shí)現(xiàn),且狀態(tài)輸出信號(hào)直接取自狀態(tài)寄存器的輸出,也不必對(duì)狀態(tài)進(jìn)行
    譯碼,因此有利于獲得較高的速度。經(jīng)驗(yàn)表明,在FPGA設(shè)計(jì)中,One-Hot編碼
    方案通常可使?fàn)顟B(tài)機(jī)的工作速度比PLD常用的二進(jìn)制編碼方案快50%~100%。同
    時(shí),SSI/MSI電路設(shè)計(jì)中常用的用可裝入計(jì)數(shù)器實(shí)現(xiàn)狀態(tài)機(jī)的方法雖可減少器件數(shù)
    量,但不能有效利用FPGA的門(mén)電路,故也不適合于FPGA設(shè)計(jì)。
    其次,PLD設(shè)計(jì)中常用計(jì)數(shù)器生成狀態(tài)機(jī)所需要的等待狀態(tài)。這種方法對(duì)于組合邏
    輯資源豐富和觸發(fā)器資源較少的PLD器件而言是很合適的,但對(duì)觸發(fā)器資源豐富和邏輯
    單元組合邏輯能力較弱的FPGA來(lái)說(shuō)就不是很合適,此時(shí)比較有效的是使用移位寄存器
    來(lái)生成等待狀態(tài),以獲得更高的速度。
    最后,在用FPGA實(shí)現(xiàn)大型復(fù)雜狀態(tài)機(jī)時(shí),應(yīng)將該大型復(fù)雜狀態(tài)機(jī)分割成幾個(gè)相互
    通信的規(guī)模較小的狀態(tài)機(jī),以便降低狀態(tài)轉(zhuǎn)移控制邏輯的復(fù)雜度,充分利用FPGA布線(xiàn)
    資源的局部化特性,減少布線(xiàn)擁擠現(xiàn)象,縮短布線(xiàn)延遲,提高設(shè)計(jì)速度。
    三、面向數(shù)據(jù)通路功能的FPGA設(shè)計(jì)技術(shù)
    FPGA器件相對(duì)于傳統(tǒng)PLD和SSI/MSI器件的一大優(yōu)勢(shì)是FPGA器件可
    以有效地實(shí)現(xiàn)諸如計(jì)數(shù)器、加法器和比較器等各種數(shù)據(jù)通路功能,獲得非常高的工作速度
    。FPGA器件的這個(gè)優(yōu)勢(shì)來(lái)源于其器件體系結(jié)構(gòu)的特點(diǎn),即豐富的觸發(fā)器資源、靈活有
    效的互連結(jié)構(gòu)和有效地實(shí)現(xiàn)多路選擇器的能力,這些特點(diǎn)使得FPGA器件在實(shí)現(xiàn)數(shù)據(jù)通
    路功能時(shí)可以采用操作流水化技術(shù)和減輕輸出負(fù)載的信號(hào)重復(fù)設(shè)置技術(shù),從而大大提高設(shè)
    計(jì)的工作速度。
    操作流水化是實(shí)現(xiàn)復(fù)雜功能的有效手段,其原理是將一個(gè)復(fù)雜操作分成幾個(gè)比較簡(jiǎn)單
    的操作步,每個(gè)操作步的結(jié)果經(jīng)寄存器寄存后再驅(qū)動(dòng)下一個(gè)操作步的輸入。由于每個(gè)操作
    步都比較簡(jiǎn)單,故可以工作在較高的時(shí)鐘頻率,而操作流水化的等效結(jié)果是每個(gè)時(shí)鐘周期
    出一個(gè)結(jié)果,故整個(gè)設(shè)計(jì)的整體性能也提高了。FPGA提供了操作流水化所需要的觸發(fā)
    器資源,且每個(gè)操作步往往可以在一個(gè)邏輯單元列內(nèi)實(shí)現(xiàn),操作步之間的連接也可以通過(guò)
    相鄰邏輯單元列之間的超小延遲直接互連資源直接相連,從而獲得很高的工作速度。所以
    ,一般來(lái)說(shuō),如果數(shù)據(jù)通路功能的輸入輸出延遲允許的話(huà),都應(yīng)盡可能地采用流水化技術(shù)
    ,以提高性能,而且對(duì)大多數(shù)FPGA而言,操作流水化所需要的觸發(fā)器資源往往不會(huì)增
    加額外的資源成本,因?yàn)椋@些觸發(fā)器資源通常已不能再用作其它用途,不這樣用也就浪
    費(fèi)了。
    超前進(jìn)位技術(shù)是提高計(jì)數(shù)器性能的有效方法,具有豐富觸發(fā)器資源的FPGA可以有
    效地實(shí)現(xiàn)超前進(jìn)位技術(shù)。例如,在16位減法計(jì)數(shù)器設(shè)計(jì)中常用的方法是檢測(cè)輸出的全0
    狀態(tài),生成計(jì)數(shù)器翻轉(zhuǎn)控制信號(hào)。而在FPGA中,更有效的方法是檢測(cè)輸出的1狀態(tài),
    并將生成的控制信號(hào)寄存,使計(jì)數(shù)器翻轉(zhuǎn)控制信號(hào)與計(jì)數(shù)器變?yōu)槿安僮魍阶兓瑥亩?br/>消除了檢測(cè)計(jì)數(shù)器輸出條件所需要的組合傳輸延遲,提高計(jì)數(shù)器的工作頻率。預(yù)分頻計(jì)數(shù)
    器設(shè)計(jì)中也可采用相同的技術(shù)生成高位計(jì)數(shù)器的計(jì)數(shù)使能控制信號(hào),以進(jìn)一步提高計(jì)數(shù)的
    性能。例如,通過(guò)采用上述的超前進(jìn)位技術(shù)和預(yù)分頻技術(shù),用XC3100-3系列FP
    GA實(shí)現(xiàn)的16位不可裝入單向計(jì)數(shù)器,其工作速度可達(dá)107MHz。
    重復(fù)設(shè)置相同的電路單元以盡可能地減輕信號(hào)負(fù)載和縮短互連延遲,是FPGA設(shè)計(jì)
    中獲取超高性能的另一常用方法,特別對(duì)那些不宜采用流水化技術(shù)的電路來(lái)說(shuō)更是如此。
    例如,在加法器設(shè)計(jì)中可將加法器分成若干段,每個(gè)段都設(shè)置兩套加法電路,分別生成有
    進(jìn)位的加法結(jié)果和無(wú)進(jìn)位的加法結(jié)果,然后由進(jìn)位信號(hào)選擇正確的結(jié)果,使加法運(yùn)算與進(jìn)
    位生成完全并行進(jìn)行。又例如在計(jì)數(shù)器設(shè)計(jì)中,高位計(jì)數(shù)器計(jì)數(shù)使能信號(hào)的生成和傳播是
    影響計(jì)數(shù)器工作頻率的關(guān)鍵因素,可以采用重復(fù)設(shè)置相同電路單元的方法來(lái)縮短該延遲時(shí)
    間。這種方法的缺點(diǎn)是增加了芯片的資源要求,但對(duì)于需要超高性能的用戶(hù)來(lái)說(shuō),畢竟提
    供了一條可行的途徑。例如,通過(guò)采用預(yù)分頻技術(shù)、超前進(jìn)位生成技術(shù)和信號(hào)重復(fù)設(shè)置技
    術(shù),用XC3100-3系列FPGA實(shí)現(xiàn)的16位不可裝入單向計(jì)數(shù)器,其工作頻率可
    高達(dá)204MHz,這是其它方法所無(wú)法比擬的。上述談到的操作流水化技術(shù)、信號(hào)預(yù)譯
    碼技術(shù)、預(yù)分頻技術(shù)和信號(hào)重復(fù)設(shè)置技術(shù)等概念不僅適合于數(shù)據(jù)通路設(shè)計(jì),也適合隨機(jī)邏
    輯設(shè)計(jì),是實(shí)現(xiàn)高性能FPGA設(shè)計(jì)的有效手段。
    四、時(shí)鐘信號(hào)分配技術(shù)
    時(shí)鐘信號(hào)是FPGA芯片中比較特殊的信號(hào),往往由少數(shù)幾個(gè)專(zhuān)用的驅(qū)動(dòng)器驅(qū)動(dòng)和專(zhuān)
    用的時(shí)鐘分配網(wǎng)絡(luò)傳播,且往往只能驅(qū)動(dòng)觸發(fā)器的時(shí)鐘端,其目的是為整個(gè)芯片提供延遲
    偏差幾乎可以忽略的時(shí)鐘信號(hào),使用戶(hù)不必?fù)?dān)心時(shí)鐘信號(hào)負(fù)載問(wèn)題和信號(hào)保持時(shí)間問(wèn)題,
    以提高設(shè)計(jì)工作速度和可靠性。因此,FPGA特別適合于同步電路設(shè)計(jì),用戶(hù)應(yīng)盡可能
    采用同步電路設(shè)計(jì)技術(shù),盡可能減少使用的時(shí)鐘信號(hào)種類(lèi)。例如,TTL電路設(shè)計(jì)中經(jīng)常
    采用的由組合邏輯生成多個(gè)時(shí)鐘,然后分別驅(qū)動(dòng)多個(gè)觸發(fā)器以裝入和保持?jǐn)?shù)據(jù)的設(shè)計(jì)方法
    ,對(duì)FPGA設(shè)計(jì)是不適用的。因?yàn)檫@樣做會(huì)使得時(shí)鐘種類(lèi)很多,不能利用專(zhuān)用的時(shí)鐘驅(qū)
    動(dòng)器和專(zhuān)用的時(shí)鐘走線(xiàn)資源,時(shí)鐘信號(hào)只能由通用的布線(xiàn)資源拼湊而成,各個(gè)負(fù)載點(diǎn)上的
    時(shí)鐘延遲偏差很大,會(huì)引起數(shù)據(jù)保持時(shí)間問(wèn)題,降低工作速度。
    對(duì)FPGA設(shè)計(jì)而言,更有效的方法是使用同一個(gè)時(shí)鐘信號(hào),而由組合邏輯生成多個(gè)
    時(shí)鐘使能信號(hào),分別驅(qū)動(dòng)觸發(fā)器的時(shí)鐘使能端,所有觸發(fā)器的數(shù)據(jù)裝入都由同一個(gè)時(shí)鐘控
    制,但只有時(shí)鐘使能信號(hào)有效的觸發(fā)器才會(huì)裝入數(shù)據(jù),時(shí)鐘使能信號(hào)無(wú)效的觸發(fā)器則保持
    數(shù)據(jù)。這種方法充分發(fā)揮了FPGA器件體系結(jié)構(gòu)的優(yōu)勢(shì),是用戶(hù)應(yīng)該盡可能使用的設(shè)計(jì)
    技巧。
    五、如何選擇合適的電路構(gòu)造單元?
    為了方便用戶(hù),各個(gè)FPGA廠(chǎng)家的開(kāi)發(fā)系統(tǒng)都提供了包含數(shù)以百計(jì)個(gè)元件符號(hào)(即
    電路構(gòu)造單元)的符號(hào)庫(kù),其中有些元件符號(hào)的功能比較簡(jiǎn)單,如簡(jiǎn)單門(mén)電路、觸發(fā)器等
    ,有些元件符號(hào)的功能則比較復(fù)雜,與TTL電路的組件相對(duì)應(yīng);有些元件符號(hào)雖然描述
    的是相同或相似的功能,但由于輸入變量反相信號(hào)個(gè)數(shù)的不同而有多個(gè)版本。一些原來(lái)從
    事TTL電路設(shè)計(jì)的用戶(hù)往往習(xí)慣于從FPGA設(shè)計(jì)元件庫(kù)中調(diào)用相同的元件符號(hào),將已
    有的TTL電路設(shè)計(jì)一一對(duì)應(yīng)地轉(zhuǎn)換成FPGA設(shè)計(jì)。經(jīng)驗(yàn)表明,這種方法的實(shí)際效果通
    常是很差的,因?yàn)樗鼈兺荒艹浞职l(fā)揮FPGA器件結(jié)構(gòu)的優(yōu)勢(shì)。為了獲得比較理想的
    結(jié)果,用戶(hù)除了要對(duì)電路的實(shí)現(xiàn)方法作必要的修改外,還要使用合適的元件符號(hào)來(lái)描述設(shè)
    計(jì)。下面是選擇元件符號(hào)的兩個(gè)原則,可供用戶(hù)參考:
    ·盡可能地使用功能與用戶(hù)要求最一致的元件符號(hào)。例如,如果需要一個(gè)沒(méi)有數(shù)據(jù)裝
    入功能的4位計(jì)數(shù)器,用戶(hù)就應(yīng)該直接調(diào)用元件庫(kù)中相應(yīng)的符號(hào),而不應(yīng)調(diào)用功能與74
    161等價(jià)的符號(hào),因?yàn)椋疲校牵灵_(kāi)發(fā)系統(tǒng)往往不允許符號(hào)輸入端懸空,當(dāng)使用與741
    61等價(jià)的符號(hào)時(shí),用戶(hù)必須將相應(yīng)的輸入引腳接到VCC或GND信號(hào),從而占用額外
    的芯片布線(xiàn)資源,容易引起布線(xiàn)擁擠,影響其它信號(hào)的布線(xiàn)效果和整個(gè)設(shè)計(jì)的性能。
    ·如果輸入信號(hào)需要反相,則應(yīng)盡可能地調(diào)用輸入信號(hào)帶反相功能的符號(hào),而不是用
    分離的反相器對(duì)輸入信號(hào)進(jìn)行反相。在FPGA中,輸入信號(hào)的反相往往可在同一個(gè)邏輯
    單元內(nèi)完成而不消耗額外的邏輯資源,因此廠(chǎng)家提供的各種門(mén)電路符號(hào)隨著輸入變量和輸
    入變量反相個(gè)數(shù)的不同而有多個(gè)版本。例如,4個(gè)輸入與門(mén)就有AND4、AND3B1
    、AND2B2、AND1B3和AND4B五個(gè)版本,其中ANDxBy表示X個(gè)輸入
    不反相和Y個(gè)輸入反相。如果用戶(hù)需要實(shí)現(xiàn)Y=A*B*/C*/D功能,就應(yīng)調(diào)用AN
    D2B2,而不是用兩個(gè)分離的非門(mén)對(duì)C和D反相,再連接到AND4的輸入。因?yàn)樵谇?br/>一種做法中,C和D的反相操作是不占用資源的,而在后一種做法中,C和D的反相操作
    與AND4操作可能會(huì)被分割到不同的邏輯單元中實(shí)現(xiàn),從而消耗額外的資源,增加額外
    的延遲。如果一個(gè)信號(hào)反相反驅(qū)動(dòng)了多個(gè)負(fù)載,則應(yīng)將該反相功能分散到各個(gè)負(fù)載中實(shí)現(xiàn)
    ,因?yàn)榧蟹聪嗤鶗?huì)由于上述所說(shuō)的原因而消耗更多的資源和增加額外的延遲。
    六、內(nèi)部三態(tài)總線(xiàn)設(shè)計(jì)技術(shù)
    有的FPGA器件內(nèi)部設(shè)置有三態(tài)驅(qū)動(dòng)器和相應(yīng)的長(zhǎng)線(xiàn)布線(xiàn)資源,可以構(gòu)成內(nèi)部三態(tài)
    總線(xiàn);有的FPGA器件內(nèi)部則沒(méi)有三態(tài)驅(qū)動(dòng)器,不能直接構(gòu)成內(nèi)部三態(tài)總線(xiàn),三態(tài)總線(xiàn)
    只能通過(guò)多路器來(lái)實(shí)現(xiàn)。用戶(hù)在使用不同的FPGA器件時(shí)應(yīng)使用相應(yīng)的設(shè)計(jì)技術(shù)。一般
    來(lái)說(shuō),不管用哪一種方式實(shí)現(xiàn)三態(tài)總線(xiàn),都應(yīng)手工定位三態(tài)驅(qū)動(dòng)器或多路器在芯片中的確
    切位置,否則布線(xiàn)的效果往往是很差的。
    Metastability問(wèn)題
    Metastability問(wèn)題是指觸發(fā)器的異步數(shù)據(jù)輸入端,在觸發(fā)器時(shí)鐘端發(fā)
    生有效變化的數(shù)據(jù)建立時(shí)間窗口內(nèi)發(fā)生變化,從而破壞觸發(fā)器的數(shù)據(jù)建立時(shí)間要求,導(dǎo)致
    觸發(fā)器輸出發(fā)生振蕩的現(xiàn)象。一般來(lái)說(shuō),在FPGA設(shè)計(jì)中,利用I/O塊中的輸入觸發(fā)
    器對(duì)異步輸入信號(hào)進(jìn)行寄 存就基本上可以解決Metastability問(wèn)題,且又
    不會(huì)增加芯片資源要求。因?yàn)槿绻贿@樣使用的話(huà),該I/O塊中的輸入觸發(fā)器往往也就
    浪費(fèi)了。如果這樣做后用戶(hù)還不放心的話(huà),用戶(hù)可使用邏輯塊中的觸發(fā)器對(duì)I/O塊觸發(fā)
    器的輸出信號(hào)再次進(jìn)行同步,該方法稱(chēng)為雙觸發(fā)器同步技術(shù)。
    八、FPGA板級(jí)設(shè)計(jì)技術(shù)
    FPGA芯片的設(shè)計(jì)成功并不意味著大功已告成,它能否按設(shè)計(jì)者所設(shè)想的那樣在系
    統(tǒng)中正常工作,還取決于各種外部因素,如供電、工作環(huán)境、傳輸線(xiàn)效應(yīng)等。一般來(lái)說(shuō),
    FPGA的板級(jí)設(shè)計(jì)應(yīng)注意如下一些問(wèn)題:
    ·加電:所有FPGA在系統(tǒng)加電期間都要經(jīng)歷一個(gè)過(guò)渡過(guò)程才能穩(wěn)定下來(lái),在這個(gè)
    過(guò)渡過(guò)程中,FPGA內(nèi)部觸發(fā)器的狀態(tài)是不確定的。過(guò)渡過(guò)程的持續(xù)時(shí)間與供電電源的
    變化速率有關(guān)。為了保證FPGA可靠地工作,VCC上升速度不能太慢,且最好將系統(tǒng)
    復(fù)位信號(hào)引入到FPGA芯片中,在系統(tǒng)復(fù)位未結(jié)束前將FPGA內(nèi)部觸發(fā)器置于穩(wěn)定的
    狀態(tài)。此外,基于SRAM編程工藝的FPGA在供電穩(wěn)定后還要從FPGA芯片外部裝
    入構(gòu)造數(shù)據(jù),在此期間,FPGA的I/O引腳用來(lái)輸入信號(hào),FPGA尚未正常工作,
    設(shè)計(jì)者應(yīng)利用FPGA芯片提供的專(zhuān)用引腳信號(hào),作適當(dāng)?shù)奶幚恚WC系統(tǒng)其它設(shè)備不會(huì)
    訪(fǎng)問(wèn)該FPGA或該FPGA所控制的設(shè)備。
    ·工作環(huán)境:FPGA對(duì)工作環(huán)境有一定的要求,最好工作在廠(chǎng)家推薦的工作環(huán)境中
    。此外,FPGA的定時(shí)特性隨電壓和溫度的變化而變化,如果用戶(hù)的FPGA設(shè)計(jì)處于
    臨界狀態(tài),則環(huán)境條件變化時(shí)就可能會(huì)工作不正常。為了使FPGA設(shè)計(jì)在整個(gè)環(huán)境變化
    允許范圍內(nèi)可靠地工作,設(shè)計(jì)者應(yīng)保證在此變化范圍內(nèi)不會(huì)破壞芯片間數(shù)據(jù)通信的時(shí)序關(guān)
    系。
    ·地反射(Ground Bounce)問(wèn)題:地反射現(xiàn)象是指多個(gè)輸出信號(hào)同時(shí)
    變化時(shí)引起的信號(hào)干擾,其幅度與同時(shí)變化的輸出引腳數(shù)和輸出引腳所驅(qū)動(dòng)的電容負(fù)載有
    關(guān)。大多數(shù)FPGA器件對(duì)同時(shí)變化的輸出引腳數(shù)量有一定的限制,用戶(hù)應(yīng)盡可能地遵守
    這些約束,如果不能滿(mǎn)足這些約束條件,則應(yīng)將這些輸出引腳分散并靠近GND引腳,盡
    量避免過(guò)于集中。此外,采用多層印制板和設(shè)置專(zhuān)門(mén)的VCC/GND布線(xiàn)層,采用CM
    OS輸入電平和配置足夠的去耦電容,也是減少地反射現(xiàn)象的有效手段。
    ·傳輸線(xiàn)效應(yīng):所有的PCB走線(xiàn)都帶有分布式的電容和電感,當(dāng)印制線(xiàn)的雙程傳輸
    延遲大于輸出信號(hào)的上升或下降時(shí)間時(shí),就必須將該印制線(xiàn)作傳輸線(xiàn)處理,必要時(shí)可采用
    串行匹配或并行匹配技術(shù),對(duì)該信號(hào)進(jìn)行端接。同時(shí)有的FPGA提供了輸出信號(hào)變化速
    率控制電路,允許用戶(hù)控制輸出引腳信號(hào)的變化速率,如果允許,用戶(hù)應(yīng)盡可能地將輸出
    引腳置于低變化速率方式,以延長(zhǎng)信號(hào)的上升/下降時(shí)間,增加信號(hào)的有效傳輸距離。
    ·去耦電容:每塊FPGA芯片都應(yīng)配置足夠的去耦電容,視規(guī)模大小不同,每個(gè)F
    PGA封裝周邊應(yīng)配置0.1μf~0.2μf的高頻去耦電容,且去耦電容應(yīng)盡量靠近
    VCC或GND引腳。
    ·所有的VCC/GND引腳都應(yīng)被連有相應(yīng)的信號(hào),且VCC/GND最好使用專(zhuān)
    用的布線(xiàn)層;未使用的I/O引腳應(yīng)被置于固定的電平上,不能懸空。
    九、結(jié)束語(yǔ)
    FPGA器件與PLD和SSI/MSI標(biāo)準(zhǔn)電路在器件結(jié)構(gòu)等方面存在著較大的差
    別,為了獲得比較理想的FPGA設(shè)計(jì)性能,用戶(hù)需要針對(duì)FPGA體系結(jié)構(gòu)的特點(diǎn),采
    用相適應(yīng)的設(shè)計(jì)優(yōu)化技術(shù),生搬硬套PLD和SSI/MSI標(biāo)準(zhǔn)電路的設(shè)計(jì)技術(shù)往往會(huì)
    導(dǎo)致很差的效果。One-Hot狀態(tài)碼編程技術(shù)、操作流水化技術(shù)、預(yù)分頻技術(shù)、超前
    操作技術(shù)、同步電路設(shè)計(jì)技術(shù)和信號(hào)重復(fù)設(shè)置技術(shù)等,是獲得高性能FPGA設(shè)計(jì)的有效
    手段,用戶(hù)可在實(shí)踐中靈活運(yùn)用。同時(shí),這些技術(shù)的應(yīng)用往往需要用戶(hù)對(duì)邏輯分割和芯片
    內(nèi)部布局布線(xiàn)進(jìn)行手工干預(yù),因此要求用戶(hù)詳細(xì)了解器件的內(nèi)部結(jié)構(gòu)和熟練使用各種設(shè)計(jì)
    工具。總之,會(huì)使用設(shè)計(jì)工具完成一個(gè)FPGA設(shè)計(jì)是一件容易的事情,但要獲取比較理
    想的結(jié)果就不那么輕松了,需要多付出一點(diǎn)努力。


    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    FPGA系統(tǒng)設(shè)計(jì)技術(shù)








    簽名
    主站蜘蛛池模板: 三年片在线观看免费观看大全中国 | 国产无遮挡又黄又爽在线观看| 中文字幕日本电影| 最近中文字幕无| 免费a级在线观看完整片| 色多多在线观看视频| 国产精品成人无码久久久久久| 两个人看的www高清免费视频| 日本熟妇色熟妇在线视频播放| 亚洲欧美日韩国产综合| 精品人妻久久久久久888| 国产无套内射久久久国产| A级毛片内射免费视频| 思思久久99热只有精品| 久久综合九色综合精品| 欧美在线高清视频| 免费现黄频在线观看国产| 色人阁在线视频| 国产精品特黄一级国产大片| 久久久久久福利| 日韩精品在线一区二区| 亚洲第一福利网| 男女激烈试看120秒动态图| 国产极品美女到高潮| HEYZO无码综合国产精品| 少妇BBW搡BBBB搡BBBB| 久久精品国产99国产精2020丨 | 特级xxxxx欧美| 国产xxxxx| 韩国r级春天在线无删减| 天堂网www资源在线| 久久精品国产只有精品66| 波多野结衣aa| 午夜dj在线观看免费高清在线| 色哟哟在线网站| 国产成人精品亚洲一区| 999在线视频精品免费播放观看| 女人把腿给男人桶视频app| 久久久久久久岛国免费播放| 日韩一级片免费| 亚洲国产成人九九综合|