高性能FPGA中的BRAM模塊設(shè)計
第 1 章 緒 論
1.1 FPGA 的發(fā)展及優(yōu)勢
現(xiàn)場可編程邏輯門陣列(FPGA)是繼可編程陣列邏輯(PAL),門陣列邏輯(GAL)和電可編程邏輯器件(EPLD)等可編程器件之后的產(chǎn)物[2]。作為一種半定制器件,它經(jīng)常被用戶使用,通過編程控制達到所需要的邏輯功能[8]。相對于專用集成電路(ASIC),它的優(yōu)點如下:設(shè)計靈活:FPGA 芯片具有豐富的可編程邏輯資源且支持多種 I/O 接口及封裝,使得其設(shè)計可以應(yīng)對多種市場需求[7]。易于使用:FPGA 有配套的 EDA 軟件,能夠自動完成原有 ASIC 設(shè)計所必需的芯片后端設(shè)計;這樣,開發(fā)工程師就不需要再去了解過多的芯片后端設(shè)計知識,可以節(jié)省大部分的精力而投入到產(chǎn)品的功能設(shè)計中去。研發(fā)周期短:在用 FPGA 實現(xiàn)產(chǎn)品功能設(shè)計時,幾乎不用后端設(shè)計,也不需要流片生產(chǎn),因此基于 FPGA 的電子設(shè)計研發(fā)周期大約為 6-12 個月。相比于 ASIC 的研發(fā)周期(14-24 個月),平均節(jié)省了一半的研發(fā)時間。研發(fā)風(fēng)險小:FPGA 的現(xiàn)場可編程性可以及時修改系統(tǒng)設(shè)計的缺陷和錯誤,規(guī)避了ASIC 由于設(shè)計失敗而必須重新流片的風(fēng)險。研發(fā)投入小:和 ASIC 相比,基于 FPGA 的設(shè)計沒有昂貴的 EDA 工具使用費用,和ASIC 設(shè)計所需要的人工費,因此可以大大減少研發(fā)投入。
.......
1.2 FPGA 的國內(nèi)外發(fā)展現(xiàn)狀
1.2.1 國外研究情況
國外 FPGA 技術(shù)起步早,發(fā)展快,其電路規(guī)模已達到上千萬門。作為 FPGA 產(chǎn)業(yè)中的兩大霸主,Altera 和 Xilinx 已經(jīng)擁有 65nm 工藝的高性能 FPGA 器件。它們都采用基于 LUT 的可編程邏輯單元;其中 Xilinx 的 Virtex-5 系列 FPGA 產(chǎn)品能達到 550MHz 的工作頻率,Altera 的 Stratix 系列 FPGA 產(chǎn)品的工作速度已達 600MHz。如此高性能的 FPGA 內(nèi)部擁有大量的可編程邏輯資源且集成了許多軟核和硬核,以方便用戶使用[11]。
1.2.2 國內(nèi)研究現(xiàn)狀
在國內(nèi)市場中,F(xiàn)PGA 的競爭力很是強大,而且應(yīng)用前景也非常廣泛。但是由于國內(nèi)關(guān)于 FPGA 芯片技術(shù)的研究發(fā)展時間并不長,與國外 FPGA 如火如荼的發(fā)展速度相比,還是處于發(fā)展,甚至起步階段;國內(nèi)除了少數(shù)公司和一些院校研究單位對 FPGA 內(nèi)部的部分結(jié)構(gòu)進行了研究且取得了一些研究成果之外,別的方面成果甚少。另外,國外對于可編程器件方面關(guān)鍵技術(shù)的壟斷也使得我國 FPGA 技術(shù)發(fā)展緩慢。即便如此,F(xiàn)PGA在中國已經(jīng)如雨后春筍般慢慢興起,并努力在此領(lǐng)域?qū)崿F(xiàn)突破和長足發(fā)展。雖然在技術(shù)和水平上和國外差距甚大,但是與以往中國 FPGA 芯片界的情況相比,國內(nèi)已經(jīng)有了比較先進的工藝技術(shù)和理論基礎(chǔ),為自主設(shè)計和實現(xiàn) FPGA 奠定了基礎(chǔ)。
.......
第 2 章 FPGA 的基本架構(gòu)
2.1 可配置邏輯單元(CLB)
CLB(Configurable Logic Block),即:可編程邏輯單元,它的基本結(jié)構(gòu)是邏輯單元(LC)。一個 LC 包括:4 輸入函數(shù)發(fā)生器,存儲器和進位邏輯;每個 CLB 包含 4 個 LC 和一些邏輯電路[11]。圖 2-3 展示了 CLB 的整體結(jié)構(gòu)。函數(shù)發(fā)生器是由 4 輸入查找表(LUT)實現(xiàn)的,除了可用作函數(shù)發(fā)生器,還可以是16x1bit 同步 RAM[12];由同一對在同一單元中的 LUTs 片可組成一個 16x2bit 或者 32x1bit的同步 RAM;也可以形成一個 16x1bit 的雙端口的 RAM;每個 LC 單元的存儲部分可配置為 D 觸發(fā)器或鎖存器。圖 2-2 為 FPGA 芯片的模塊布局示意圖。,各功能模塊以陣列的形式較為規(guī)則地分布在整個芯片上,每個模塊的四周為布線通道。該芯片包含以下功能模塊:邏輯模塊 由查找表、寄存器等組成的單元模塊,是最基本的功能模塊,配置完成后可以實現(xiàn)多種不同的邏輯功能。存儲器模塊,即本論文的研究對象,用來存儲大量的數(shù)據(jù)資源。它具有多種不同的功能模式,可以通過特定的配置方式來實現(xiàn)。ALU 模塊 如乘法器,用于涉及到數(shù)據(jù)處理方面的問題。IO 模塊 連接 FPGA 和外部電路,分布在 FPGA 的四條邊上。時鐘管理模塊 通常由全數(shù)字時鐘鎖相環(huán)和時鐘數(shù)組成,為全芯片提供低偏移、低抖動的多種分頻和移相時鐘。布線通道模塊 作為 FPGA 實現(xiàn)“可編程”的關(guān)鍵,按走向和功能可以列為橫向,縱向和轉(zhuǎn)換通道。他們分布在其他功能模塊的四周,,將各模塊互連起來。
........
2.2 可編程連線資源
FPGA 提供多種可編程的連線資源,通過軟件的配合優(yōu)化長路徑,使其延時盡可能最小,從而使系統(tǒng)性能達到最優(yōu)。FPGA 內(nèi)部的可編程連線資源分為可編程布線矩陣、可分割長線、長線和短線?删幊滩季矩陣又包括許多種,如通用布線、專用布線、全局布線等等[5]。布線通道由兩個模塊組成:開關(guān)和連線;相鄰的連線之間只能通過開關(guān)連通。FPGA 的結(jié)構(gòu)是陣列式的,布線通道水平和垂直地分布在模塊之間。
........
2.3 輸入輸出模塊(IOB)
FPGA 芯片中的 IOB 單元可以支持像 PCI、LVTTL、LVCMOS2 等多種端口的信號標(biāo)準(zhǔn)。其結(jié)構(gòu)如下圖 2-4 所示,每個 IOB 結(jié)構(gòu)都包括 3 個寄存器單元、一個輸入緩沖器、一個輸出緩沖三態(tài) buf、上拉/下拉電阻和 weak-keeper 電路。作為 IOB 的寄存器單元,可以被配置成為 D 觸發(fā)器或者鎖存器。在 IOB 單元中,三個寄存器單元共享一個時鐘信號(CLK);一個置位/復(fù)位信號(SR),每個觸發(fā)器的此信號可以被獨立配置成同步置位/復(fù)位和異步置位/復(fù)位[5];分別有獨立的時鐘使能信號(CE)。IOB 的輸入路徑中的緩沖器可以將輸入信號通過觸發(fā)器或直接送到內(nèi)部電路,觸發(fā)器的輸入端還包括一個可配置的延時單元[13],它的作用是用來消除 PAD 到 PAD 之間的時間差;我們還可以通過配置輸入緩沖器,使其匹配任何標(biāo)準(zhǔn)的低電壓信號。IOB 的輸出路徑中有一個三態(tài)輸出緩沖器,與輸入路徑中的緩沖器一樣,它既可以從電路的內(nèi)部直接接收信號,也可以從 IOB 輸出端的觸發(fā)器接收信號,然后再輸出;此三態(tài)緩沖器的控制信號也具有以上的兩種來源渠道;而且,經(jīng)過觸發(fā)器的三態(tài)控制信號可以作為同步的使能和非使能信號。
........
第 3 章 FPGA 中 BRAM 模塊的電路設(shè)計 ........11
3.1 設(shè)計流程 .......11
3.2 設(shè)計實現(xiàn)原理 ...11
3.3 18-Kb BRAM 的整體結(jié)構(gòu)劃分...18
3.4 本章小結(jié) .......19
第 4 章 BRAM 各模塊電路的設(shè)計與實現(xiàn) .......20
4.1 輸出端數(shù)據(jù)位寬配置的電路設(shè)計和實現(xiàn) .....20
4.2 輸入端的數(shù)據(jù)位寬配置的設(shè)計和實現(xiàn) .......24
4.3 字線譯碼電路的設(shè)計 ...29
4.4 BRAM 的存儲單元設(shè)計 ........31
4.5 外圍電路設(shè)計 ...36
4.6 時序控制生成電路設(shè)計 .......39
4.7 本章小結(jié) .......44
第 5 章 可配置存儲器各模塊功能仿真和驗證........45
5.1 可配置存儲器各功能模塊的仿真 .....45
5.2 BRAM 整體電路仿真 ....50
第 5 章 可配置存儲器各模塊功能仿真和驗證
電路設(shè)計的整個過程是伴隨著仿真進行的,首先我們可以通過仿真來驗證設(shè)計出來的電路是否達到預(yù)期情況,其次也可以用仿真的結(jié)果來指導(dǎo)我們對電路進行補充和修改,從而可以獲得更好的性能。對于存儲器模塊來說,其中很多的功能模塊對信號的時序和幅度都要求比較嚴(yán)格,所以,需要對局部模塊和整體模塊進行逐步的仿真和驗證。在對電路做整體仿真時,我們采用的方法是將設(shè)計出來的 BRAM 電路級模塊轉(zhuǎn)換成為 dut 行為級模塊,然后通過 Modelsim 仿真工具進行仿真驗證。由于此 dut 模塊是由BRAM 的電路級提取而來,所以它的結(jié)果完全可以用來驗證我們設(shè)計電路的正確與否。以下驗證模塊三種不同工作模式的整體仿真結(jié)果。從圖中可以看出,在寫使能信號有效時,數(shù)據(jù)在時鐘上升沿被寫入對應(yīng)的地址單元;與此同時,輸出端的數(shù)據(jù)卻保持原數(shù)據(jù)不變,直至 wea 使能信號變?yōu)?0 之后,輸出端才開始輸出對應(yīng)地址的數(shù)據(jù),在此有必要說明,在輸出“保持模式”下,不支持校驗位的選擇,所以選擇輸入數(shù)據(jù)為 16 位。
.......
結(jié)論
本論文首先介紹了 FPGA 的發(fā)展,以及與專用芯片相比的優(yōu)勢所在,國內(nèi)外現(xiàn)狀對比得出 FPGA 芯片自主研究的意義重大;對片上存儲器和它的發(fā)展現(xiàn)狀進行了介紹,引出本課題的研究內(nèi)容是 FPGA 芯片上的可配置存儲器設(shè)計。本論文的目的是設(shè)計一款基于 130nmCMOS 工藝的 FPGA 芯片中的嵌入式存儲器模塊。通過對有關(guān) FPGA 芯片資料的調(diào)研,結(jié)合本項目芯片的設(shè)計要求,提出了存儲器模塊的設(shè)計指標(biāo):總量為 18Kb;完全獨立雙端口且每個端口支持 6 種數(shù)據(jù)組織形式(16Kx1、8Kx2、4Kx4、2Kx9、1Kx18、512x36),支持校驗位;每個端口支持三種數(shù)據(jù)寫入模式;控制信號的極性可以被選擇。其中,該存儲器區(qū)別于普通存儲器的主要地方就在于它的可配置性,也是該課題的創(chuàng)新之處。主要工作是嵌入式存儲器模塊的電路設(shè)計和仿真。結(jié)合設(shè)計指標(biāo)和對設(shè)計流程的理解,采用結(jié)構(gòu)和層次化的方法完成了整個模塊的電路設(shè)計。重點實現(xiàn)了存儲器模塊位寬的可配置性,以及存儲器讀寫過程中時序控制電路的設(shè)計。在讀寫過程中,采用脈沖控制的方式通過減小控制讀寫的信號脈寬,降低了整個電路的功耗。在設(shè)計中采用 Hspice對單個存儲單元的讀寫進行了仿真,通過調(diào)節(jié)器件的尺寸得到最佳的工作波形;在位寬可配置模塊設(shè)計的部分則采用了 VCS 仿真工具,通過位寬控制信號的改變和不同位寬數(shù)據(jù)的輸入來驗證其功能的正確性。對 BRAM 整體電路的仿真,則采用了 modelsim 仿真工具,主要通過三種不同的讀寫模式對整體電路進行了功能仿真?膳渲么鎯ζ鞒松鲜鰧崿F(xiàn)的功能外,還可以通過設(shè)計進一步地增加一些附加的功能,比如流水線輸出和集成 FIFO 的實現(xiàn)。目前還需要對芯片的電路結(jié)構(gòu)進行進一步的學(xué)習(xí)和深入研究。
............
參考文獻(略)
本文編號:43640
本文鏈接:http://www.lk138.cn/wenshubaike/lwfw/43640.html