FPGA架構(gòu)設(shè)計(jì)_第1頁(yè)
FPGA架構(gòu)設(shè)計(jì)_第2頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、FPGA架構(gòu)設(shè)計(jì)刖言FPGA架構(gòu)設(shè)計(jì)人員需要對(duì)FPGA開發(fā)本身足夠熟悉外,對(duì)FPGA的優(yōu)劣勢(shì)、等都要心中有數(shù)。接下來就是對(duì)FPGA的架構(gòu)流程、注意點(diǎn)有足夠的知識(shí)和經(jīng)驗(yàn)。本文就對(duì)FPGA架構(gòu)設(shè)計(jì)進(jìn)行系統(tǒng)講解。勿用諱言,現(xiàn)在國(guó)內(nèi)FPGA開發(fā)還處于小作坊的開發(fā)階段,一般都是三、四個(gè)人,七八臺(tái)機(jī)器小作坊如何也能做出大成果。這是每個(gè)FPGA工程師都要面臨的問題。架構(gòu)設(shè)計(jì)是面臨的第一關(guān)。經(jīng)常有這樣的項(xiàng)目,需求分析,架構(gòu)設(shè)計(jì)匆匆忙忙,號(hào)稱一兩個(gè)月開發(fā)完畢,實(shí)際上維護(hù)項(xiàng)目就花了一年半時(shí)間。主要包括幾個(gè)問題,一,性能不滿足需求。二,設(shè)計(jì)頻繁變更。三,系統(tǒng)不穩(wěn)定,調(diào)試問題不收斂。磨刀不誤砍柴工,F(xiàn)PGA設(shè)計(jì)的需求

2、分析是整個(gè)設(shè)計(jì)第一步。如何將系統(tǒng)的功能需求,轉(zhuǎn)換成FPGA的設(shè)計(jì)需求,是FPGA架構(gòu)設(shè)計(jì)的首要問題。首先,需要明確劃分軟件和硬件的邊界。軟件主要處理輸入輸出、界面顯示、系統(tǒng)管理、設(shè)備維護(hù)。而FPGA則負(fù)責(zé)大數(shù)據(jù)流的處理。如果使用幾百元FPGA實(shí)現(xiàn)了一個(gè)十幾元單片機(jī)就能完成的功能,就算實(shí)現(xiàn)的非常完美,那么這是一個(gè)什么樣的神設(shè)計(jì)?任何一個(gè)項(xiàng)目都要考慮成本,研發(fā)成本、物料成本、維護(hù)成本等等oFPGA的使用位置必定是其他器件難以企及的優(yōu)勢(shì)。因此對(duì)于一個(gè)FPGA架構(gòu)設(shè)計(jì),其首先需要考慮就是性能,如沒有性能的需求,其他的處理器ARM就可能替代其功能。其次就是接口,用于處理器擴(kuò)展其沒有的接口,作為高速接口轉(zhuǎn)

3、換。最后,需要考慮就是可維護(hù)性,F(xiàn)PGA的調(diào)試是非常耗時(shí)的,一個(gè)大型的FPGA的編譯時(shí)間在幾小時(shí)甚至更高(通過嵌入式分析儀抓信號(hào),每天工作8小時(shí),只能分析兩到三次)。而軟件調(diào)試只需make,編譯時(shí)間以秒來記(這個(gè)問題可以通過提升編譯服務(wù)器性能改善而不能消失,本質(zhì)上要考慮可測(cè)性設(shè)計(jì))。如果不考慮維護(hù)性和可測(cè)性,調(diào)試成本和壓力就非常之大。下面主要介紹幾個(gè)FPGA架構(gòu)設(shè)計(jì)過程中通??紤]點(diǎn)。架構(gòu)設(shè)計(jì)方式:流驅(qū)動(dòng)和調(diào)用式通常,F(xiàn)PGA的大部分架構(gòu)設(shè)計(jì)可以采用數(shù)據(jù)流驅(qū)動(dòng)的方式來實(shí)現(xiàn),例子1,假設(shè)一個(gè)實(shí)現(xiàn)視頻解壓縮FPGA的設(shè)計(jì),輸入是無線接口,輸出為顯示屏。那么輸入輸出的接口基本就能確定。以數(shù)據(jù)流為驅(qū)動(dòng)可

4、以粗略劃分,輸入接口->解壓縮模塊->視頻轉(zhuǎn)換模塊->顯示接口。如需要視頻緩沖,則確定是否需要連接外部存儲(chǔ)器。那就需要確認(rèn)在什么位置進(jìn)行數(shù)據(jù)的緩沖。通過要支持顯示的畫面的質(zhì)量,就能確認(rèn)最大碼流,同樣可以計(jì)算視頻解壓模塊和轉(zhuǎn)換模塊的計(jì)算能力,從而導(dǎo)出所需的內(nèi)部總線寬度,系統(tǒng)頻率,以及子模塊個(gè)數(shù)等等。例子2,某支持通過有線電視網(wǎng)上網(wǎng)電視IP網(wǎng)關(guān),同樣也是輸入的普通IP網(wǎng)絡(luò),輸出為有線調(diào)試網(wǎng)的調(diào)試解調(diào)器。將IP報(bào)文等長(zhǎng)填充后,在固定時(shí)隙內(nèi)送入有線電視網(wǎng)中,同樣也是基于數(shù)據(jù)流驅(qū)動(dòng)的方式。數(shù)據(jù)流驅(qū)動(dòng)式架構(gòu),可以作為FPGA設(shè)計(jì)中一個(gè)最重要的架構(gòu)。通常來說應(yīng)用于IP領(lǐng)域、存儲(chǔ)領(lǐng)域、數(shù)字處

5、理領(lǐng)域等較大型FPGA設(shè)計(jì)都是數(shù)據(jù)流驅(qū)動(dòng)式架構(gòu),主要包括輸入接口單元,主處理單元,輸出接口單元。還可能包括,輔助處理單元、外部存儲(chǔ)單元。這些單元之間一般采用流水式處理,即處理完畢后,數(shù)據(jù)打包發(fā)完下一級(jí)處理。其中輸入輸出可能有多個(gè),此時(shí)還需要架構(gòu)內(nèi)部實(shí)現(xiàn)數(shù)據(jù)的交換。另一種較為常用的架構(gòu)方式為調(diào)用式架構(gòu),即一般FPGA通過標(biāo)準(zhǔn)接口如PCI、PCI-E,CPCI,PCI-X,EMIF等等。各種接口,F(xiàn)PGA內(nèi)部實(shí)現(xiàn)某一加速單元,如視頻加速,數(shù)據(jù)處理,格式轉(zhuǎn)換等操作。這種結(jié)構(gòu)基本基本圍繞FPGA接口、加速單元展開,屬于數(shù)據(jù)的反饋類型,即處理完數(shù)據(jù)又反饋回接口模塊。其他雖然各型各樣,如SOPC,如各型接

6、口,但本質(zhì)上其都是為上述架構(gòu)服務(wù)的,或做配置管理替代外部CPU,或在數(shù)據(jù)流中間傳遞中間參數(shù)?;蛟趦?nèi)部實(shí)現(xiàn)CPU+協(xié)處理器的架構(gòu),因此說,無他變化。孫子兵法云:“兵無常勢(shì),水無常形”。但是對(duì)于一種設(shè)計(jì)技術(shù)來說,沒有一種固定演進(jìn)的架構(gòu)和設(shè)計(jì),那么項(xiàng)目的整個(gè)設(shè)計(jì)層次總是推到重來,從本質(zhì)上說,就是一種低水平重復(fù)。如果總結(jié)規(guī)律,提煉共性,才能在提升設(shè)計(jì)層次,在小作坊中取得大成果。架構(gòu)設(shè)計(jì)原則:穩(wěn)定壓倒一切敏捷開發(fā)宣言中,有一條定律是“可以工作的軟件勝過面面俱到的文檔”。如何定義可以工作的,這就是需求確定后架構(gòu)設(shè)計(jì)的首要問題。而大部分看這句話的同志更喜歡后半句,用于作為不寫文檔的借口。FPGA的架構(gòu)設(shè)計(jì)最

7、首先可以確定就是外接接口,就像以前說的,穩(wěn)定可靠的接口是成功的一半。接口的選擇需要考慮幾個(gè)問題。1, 有無外部成熟IP。一般來說,ALTERA和XILINX都提供大量的接口IP,采用這些IP能夠提升研發(fā)進(jìn)度,但不同IP在不同F(xiàn)PGA上需要不同license,這個(gè)需要通過代理商來獲得(中國(guó)國(guó)情,軟件是不賣錢的)。2, 自研接口IP,能否滿足時(shí)間、進(jìn)度、穩(wěn)定性、及兼容性的要求。案例1設(shè)計(jì)一個(gè)網(wǎng)絡(luò)接口在邏輯設(shè)計(jì)上相對(duì)簡(jiǎn)單,比如MII接口等同于4bit數(shù)據(jù)線的25MHZ樣,而RGMII可以使用雙沿125Mhz的采樣專用的雙沿采樣寄存器完成(使用寄存器原語(yǔ))。但是如何支持與不同PHY連接一個(gè)兼容性問題(

8、所謂設(shè)計(jì)挑PHY的問題,這個(gè)問題后面詳述)。案例2:CPU通過接口連接FPGA時(shí),如果CPU此時(shí)軟復(fù)位,則有管腳會(huì)上拉,此時(shí)如果該管腳連接FPGA接口是控制信號(hào)且控制信號(hào)高電平有效,則此時(shí)FPGA邏輯必然出錯(cuò)。同樣FPGA在配置時(shí),管教輸出高阻,如此時(shí)CPU上電且板級(jí)電路管腳上拉,則同樣會(huì)導(dǎo)致CPU采樣出錯(cuò)(誤操作的問題)。不能只是考慮編寫verilog代碼仿真能對(duì)就行,接口設(shè)計(jì)應(yīng)該站在系統(tǒng)的角度來看問題,問題不是孤立的,還是互相聯(lián)系。設(shè)計(jì)中,如果需要存儲(chǔ)大量數(shù)據(jù),就需要在外部設(shè)計(jì)外部存儲(chǔ)器,這是因?yàn)镕PGA內(nèi)部RAM的數(shù)量是有限的。是采用SRAM、DDR2、DDR3。這就需要綜合考慮存儲(chǔ)數(shù)據(jù)

9、大大小,因?yàn)镾RAM的容量也有限,但是其接口簡(jiǎn)單,實(shí)現(xiàn)簡(jiǎn)單方便,且讀取延時(shí)較小°DDR2、DDR3的容量較大,接口復(fù)雜,但FPGA內(nèi)部有成熟IP可用,但是讀取的延時(shí)較大,從發(fā)起讀信號(hào)到讀回?cái)?shù)據(jù)一般在十幾個(gè)時(shí)鐘周期以上。如果對(duì)數(shù)據(jù)時(shí)延有要求,需要上一次存儲(chǔ)數(shù)據(jù)作為下一次使用,且數(shù)據(jù)量不太大(幾百K到幾兆),則SRAM是較好的選擇。而其他方面DDR2/DDR3是較好的選擇。為什么不用SDRAM或者DDR。這是因?yàn)樵O(shè)計(jì)完畢,采購(gòu)會(huì)告訴你,市場(chǎng)上這樣老的芯片基本都停產(chǎn)了。FPGA接口在設(shè)計(jì)選擇的原則就是:能力夠用,簡(jiǎn)單易用。特別值得一提的是高速SERDES接口,最好使用廠商給的參考設(shè)計(jì),有硬

10、核則不選擇軟核,測(cè)試穩(wěn)定后,一定要專門的位置約束,避免后面添加的邏輯擁擠后影響到接口時(shí)序,也可避免接口設(shè)計(jì)人員與最終的邏輯設(shè)計(jì)人員扯皮(不添加過多邏輯,接口是好用的)。一個(gè)分析高速SERDES的示波器,采樣頻率至少20G甚至更高以上,動(dòng)輒上百萬,出現(xiàn)問題,不一定有硬件條件可調(diào)試?;氐介_頭,如何定義“可用的”設(shè)計(jì),穩(wěn)定我想是前提,而接口的穩(wěn)定性更是前提的前提。這里穩(wěn)定包括,滿負(fù)荷邊界測(cè)試,量產(chǎn)、環(huán)境試驗(yàn)等一系列穩(wěn)定可靠。而在架構(gòu)設(shè)計(jì)中,就選擇成熟的接口,能有效的避免后續(xù)流程中的問題,從源頭保證產(chǎn)品的質(zhì)量。架構(gòu)設(shè)計(jì)要素一:時(shí)鐘和復(fù)位接口確定以后,F(xiàn)PGA內(nèi)部如何規(guī)劃?首先需要考慮就是時(shí)鐘和復(fù)位。時(shí)

11、鐘:根據(jù)時(shí)鐘的分類,可以分為邏輯時(shí)鐘,接口時(shí)鐘,存儲(chǔ)器時(shí)鐘等;(1) 邏輯時(shí)鐘取決與邏輯的關(guān)鍵路徑,最終值是設(shè)計(jì)和優(yōu)化的結(jié)果,從經(jīng)驗(yàn)而不是實(shí)際出發(fā):低端FPGA(cyclonespantan)工作頻率在40-80Mhz之間,而高端器件(stratixvirtex)可達(dá)100-200Mhz之間,根據(jù)各系列的先后性能會(huì)有所提升,但不是革命性的。接口名稱IP輸入時(shí)鐘備注MII25MhzRGMII/GMII125MhzXAUI156.25Mhz差分IP內(nèi)部倍頻使用PCI33MhzPCI-elOOMz差分輸入IP內(nèi)部倍頻使用(3)外部存儲(chǔ)器時(shí)鐘:這里時(shí)鐘主要為L(zhǎng)PDDR/DDR2/DDR3等器件的時(shí)鐘,

12、一般來說FPGA的接口不用工作在相應(yīng)器件的最高頻率。能夠滿足系統(tǒng)緩存數(shù)據(jù)的性能即可,但是一般這些IP的接口都規(guī)定了相應(yīng)的最小時(shí)鐘頻率,因?yàn)檫@些接口狀態(tài)機(jī)需不停進(jìn)行外部器件的刷新(充電),過低的頻率可能會(huì)引起刷新的問題,造成數(shù)據(jù)丟失或者不穩(wěn)定。(2) 接口時(shí)鐘,異步信號(hào)的時(shí)序一般也是通過FPGA片內(nèi)同步邏輯產(chǎn)生,一般需要同步化,即接口的同步化采樣。某些接口的同步時(shí)鐘一般是固定而精確的,例如下表所示,如SERDES的時(shí)鐘盡量由該BANK的專用時(shí)鐘管腳輸入,這樣可保證一絹SERDES絹成的高速接口時(shí)鐘偏斜一致。(4)另外一些需要輸出的低速時(shí)鐘,例如I2C、MDIO、低速采樣等操作,可以通過內(nèi)部分頻得

13、到。不用通過PLL/DCM產(chǎn)生所需時(shí)鐘。在XILINX的FPGA中,禁止PLL產(chǎn)生的時(shí)鐘直接輸出到管腳上,而ALTERA的器件可以如此操作。解決此類問題的方法可通過ODDR器件通過時(shí)鐘及其180度相位時(shí)鐘(反向)接入的時(shí)鐘管腳分別采樣0、1邏輯得到。因?yàn)橛辛薉CM/PLL這些專用產(chǎn)生時(shí)鐘的器件,似乎產(chǎn)生任意時(shí)鐘輸出都是可能是,但實(shí)際例化的結(jié)果,時(shí)鐘的輸出只能選取某些范圍和某些頻率,取決于輸入時(shí)鐘和分頻系數(shù),CLK_OUT=CLK_IN*(M/N)。這些分頻系數(shù)基本取整數(shù),其產(chǎn)生的頻率也是有限的值。復(fù)位:根據(jù)復(fù)位的分類,F(xiàn)PGA內(nèi)部復(fù)位可以分為硬復(fù)位,邏輯復(fù)位、軟復(fù)位等;硬復(fù)位:故名思議,即外部

14、引腳引入的復(fù)位,可以在上電時(shí)給入,使整個(gè)FPGA邏輯配置完成后,能夠達(dá)到穩(wěn)定的狀態(tài),這種復(fù)位重要性在于復(fù)雜單板上除了FPGA外,可能還有多個(gè)器件(CPU、DSP),其上電順序不同,在未完成全部上電之前,其工作狀態(tài)為不穩(wěn)定狀態(tài)。這種復(fù)位引腳可以通過專用時(shí)鐘管腳引入,也可通過普通I/O引入,一般由單板MCU或者CPLD給出。邏輯復(fù)位:則是由FPGA內(nèi)部邏輯產(chǎn)生,例如可以通過計(jì)數(shù)產(chǎn)生,等待一段時(shí)間開始工作,一般等待外部某些信號(hào)準(zhǔn)備好,另一種FPGA內(nèi)部邏輯準(zhǔn)備好的狀態(tài)信號(hào),常見的有DCM/PLL的LOCK信號(hào);只有內(nèi)部各邏輯準(zhǔn)備好后,F(xiàn)PGA才能正常工作。另外FPGA內(nèi)部如設(shè)計(jì)邏輯的看門狗的話,其產(chǎn)

15、生的復(fù)位屬于這個(gè)層次。軟復(fù)位:嚴(yán)格的說,應(yīng)屬于調(diào)試接口,指FPGA接收外部指令產(chǎn)生的復(fù)位信號(hào),用于復(fù)位某些模塊,用于定位和排除問題,也屬于可測(cè)性設(shè)計(jì)的一部分。例如FPGA通過EMIF接口與CPU連接,內(nèi)部設(shè)定軟復(fù)位寄存器,CPU通過寫此寄存器可以復(fù)位FPGA內(nèi)部單元邏輯,通過寫內(nèi)部寄存器進(jìn)行軟復(fù)位,是復(fù)雜IP常用的功能接口。調(diào)試時(shí),F(xiàn)PGA返回錯(cuò)誤或無返回,通過軟復(fù)位能否恢復(fù),可以迅速定位分割問題,加快調(diào)試速度。復(fù)位一般通過與或者或的方式(高電平或、低電平與),產(chǎn)生統(tǒng)一的復(fù)位給各模塊使用。模塊軟復(fù)位信號(hào),只在本模塊內(nèi)部使用。問題:同步復(fù)位好、還是異步復(fù)位好?XILINX雖然推薦同步復(fù)位,但也不

16、一概而論,復(fù)位的目的是使整個(gè)系統(tǒng)處于初始狀態(tài),這根據(jù)個(gè)人寫代碼經(jīng)驗(yàn),這些操作都可以,前提是整個(gè)設(shè)計(jì)為同步設(shè)計(jì),時(shí)鐘域之間相互隔開,復(fù)位信號(hào)足夠長(zhǎng),而不是毛刺。下面推薦一種異步復(fù)位的同步化方式,其電路圖如下:時(shí)鐘和復(fù)位基本上每個(gè)模塊的基本輸入,也是FPGA架構(gòu)上首先要規(guī)劃的部分,而不要用到才考慮,搞的整個(gè)設(shè)計(jì)到處例化DCM或者輸出LOCK進(jìn)行復(fù)位,這些對(duì)于工程的可維護(hù)性和問題定位都沒有益處。治家格言說:宜未雨而綢繆,毋臨渴而掘井。這與FPGA時(shí)鐘和復(fù)位的規(guī)劃是同一個(gè)意思。架構(gòu)設(shè)計(jì)要素二:并行與復(fù)用FPGA其在眾多器件中能夠被工程師青睞的一個(gè)很重要的原因就是其強(qiáng)悍的處理能力。那如何能夠做到高速的數(shù)

17、據(jù)處理,數(shù)據(jù)的并行處理則是其中一個(gè)很重要的方式。數(shù)據(jù)的并行處理,從結(jié)構(gòu)上非常簡(jiǎn)單,但是設(shè)計(jì)上卻是相當(dāng)復(fù)雜,對(duì)于現(xiàn)有的FPGA來說,雖然各種FPGA的容量都在增加,但是在有限的邏輯中達(dá)到更高的處理能力則是FPGA工程師面臨的挑戰(zhàn)。常用并上圖中:前端處理單元負(fù)責(zé)將進(jìn)入數(shù)據(jù)信息,分配到多個(gè)計(jì)算單元中,圖中為3個(gè)計(jì)算單元(幾個(gè)根據(jù)所需的性能計(jì)算得出)。然后計(jì)算單元計(jì)算完畢后,交付后端處理單元整合為統(tǒng)一數(shù)據(jù)流傳入下一級(jí)。如果單個(gè)計(jì)算單元的處理能力為N,則通過并行的方式,根據(jù)并行度M,其計(jì)算能力為N*M;在此結(jié)構(gòu)中,涉及到幾個(gè)問題:一, 前端處理單元如何將數(shù)據(jù)分配到多個(gè)計(jì)算單元,其中一種算法為round-

18、robin,輪流寫入下一級(jí)計(jì)算單元,這種方式一般使用用計(jì)算單元計(jì)算數(shù)據(jù)塊的時(shí)間等同。更常用的一種方式,可以根據(jù)計(jì)算單元的標(biāo)示,即忙閑狀態(tài),如果哪個(gè)計(jì)算單元標(biāo)示為閑狀態(tài),則分配其數(shù)據(jù)塊。二, 計(jì)算單元和前后端處理之間如何進(jìn)行數(shù)據(jù)交互。一般來說,計(jì)算單元處理頻率較低,為關(guān)鍵路徑所在。前后端處理流量較大,時(shí)鐘頻率較高,因此通過異步FIFO連接,或者雙端口RAM都是合適的方式。如果數(shù)據(jù)可分塊計(jì)算,且塊的大小不定,建議使用FIFO作為隔離手段,同時(shí)使用可編程滿信號(hào),作為前端處理識(shí)別計(jì)算模塊的忙閑標(biāo)示。三,如果數(shù)據(jù)有先后的標(biāo)示,即先計(jì)算的數(shù)據(jù)需要先被送出,則后端處理模塊需要額外的信號(hào),確定讀取各個(gè)計(jì)算模塊

19、的順序。這是因?yàn)椋喝绻麛?shù)據(jù)等長(zhǎng),則計(jì)算時(shí)間等長(zhǎng),則先計(jì)算的數(shù)據(jù)會(huì)先被送出。但是如果數(shù)據(jù)塊不等長(zhǎng),后送入的小的數(shù)據(jù)塊肯能先被計(jì)算完畢,后端處理單元如果不識(shí)別先后計(jì)算的數(shù)據(jù)塊,就會(huì)造成數(shù)據(jù)的亂序。這可以通過前端計(jì)算單元通過小的FIFO通知后端計(jì)算單元獲知首先讀取那個(gè)計(jì)算單元輸出的數(shù)據(jù),即使其他計(jì)算單元輸出已準(zhǔn)備好,也要等待按照順序來讀取。數(shù)據(jù)的并行處理是FPGA常用的提升處理性能的方法,其優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,通過計(jì)算單元模塊的復(fù)用達(dá)到高性能的處理。缺點(diǎn),顯而易見就是達(dá)到M倍的性能就要要耗費(fèi)M倍邏輯。與之相反減少邏輯的另一種方式,則是復(fù)用,即一個(gè)處理能力較強(qiáng)的模塊,可以被N的單元復(fù)用,通過復(fù)用,而不用每

20、個(gè)單元例化模塊,可以達(dá)到減少邏輯的效果,但控制復(fù)雜度就會(huì)上升。其結(jié)構(gòu)圖如下所示:上圖復(fù)用的結(jié)構(gòu)圖中,分別介紹了流過模式復(fù)用和調(diào)用模式復(fù)用。流過模式下,計(jì)算單元處理多路數(shù)據(jù)塊,然后將數(shù)據(jù)塊分配到多路上,這種情況下,通過round-robin可以保證各個(gè)通路公平機(jī)會(huì)獲得計(jì)算單元。其處理思路與上圖描述并行處理類似。調(diào)用模式下,計(jì)算單元被多個(gè)主設(shè)備復(fù)用,這種架構(gòu)可以通過總線及仲裁的方式來使各個(gè)主設(shè)備能夠獲取計(jì)算單元的處理(有很多成熟的例子可供使用,如AHB等)。如果多個(gè)主設(shè)備和多個(gè)計(jì)算單元的情況,則可以不通過總線而通過交換矩陣,來減少總線處理帶來的總線瓶頸。實(shí)際應(yīng)用場(chǎng)合,設(shè)計(jì)的架構(gòu)都應(yīng)簡(jiǎn)單實(shí)用為好,交

21、互矩陣雖然實(shí)用靈活,但其邏輯量,邊界測(cè)試驗(yàn)證的難度都較大,在需要靈活支持多端口互聯(lián)互通的情況下使用,可謂物盡其用。但如果僅僅用于一般計(jì)算單元能力復(fù)用的場(chǎng)景,就屬于過度設(shè)計(jì),其可以通過化簡(jiǎn)成上述兩種簡(jiǎn)單模式,達(dá)到高速的數(shù)據(jù)處理的效果。并行和復(fù)用,雖然是看其來屬性相反的操作,但其本質(zhì)上就是通過處理能力和邏輯數(shù)量的平衡,從而以最優(yōu)的策略滿足項(xiàng)目的需要。設(shè)計(jì)如此,人生亦然。架構(gòu)設(shè)計(jì)要素三:數(shù)字電路的靈魂-流水線流水線,最早為人熟知,起源于十九世紀(jì)初的福特汽車工廠,富有遠(yuǎn)見的福特,改變了那種人圍著汽車轉(zhuǎn)、負(fù)責(zé)各個(gè)環(huán)節(jié)的生產(chǎn)模式,轉(zhuǎn)變成了流動(dòng)的汽車組裝線和固定操作的人員。于是,工廠的一頭是不斷輸入的橡膠和

22、鋼鐵,工廠的另一頭則是一輛輛正在下線的汽車。這種改變,不但提升了效率,更是拉開了工業(yè)時(shí)代大生產(chǎn)的序幕。如今,這種模式常常應(yīng)用于數(shù)字電路的設(shè)計(jì)之中,與現(xiàn)在流驅(qū)動(dòng)的FPGA架構(gòu)不謀而合。舉例來說:某設(shè)計(jì)輸入為A種數(shù)據(jù)流,而輸出則是B種數(shù)據(jù)流,其流水架構(gòu)如下所示:每個(gè)模塊只負(fù)責(zé)處理其中的一部分,這種處理的好處是,1、簡(jiǎn)化設(shè)計(jì),每個(gè)模塊只負(fù)責(zé)其中的一個(gè)功能,便于功能和模塊劃分。2,時(shí)序優(yōu)化,流水的處理便于進(jìn)行時(shí)序的優(yōu)化,特別是處理復(fù)雜的邏輯,可以通過流水設(shè)計(jì),改善關(guān)鍵路徑,提升處理頻率,并能提升處理性能。各個(gè)流水線之間的連接方式也可通過多種方式,如果是處理的是數(shù)據(jù)塊,流水模塊之間可以通過FIFO或者RAM進(jìn)行數(shù)據(jù)暫存的方式進(jìn)行直接連接、也可以通過寄存器直接透

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論