《新編電子設(shè)計自動化項目教程》項目十二 可編程邏輯器件設(shè)計_第1頁
《新編電子設(shè)計自動化項目教程》項目十二 可編程邏輯器件設(shè)計_第2頁
《新編電子設(shè)計自動化項目教程》項目十二 可編程邏輯器件設(shè)計_第3頁
《新編電子設(shè)計自動化項目教程》項目十二 可編程邏輯器件設(shè)計_第4頁
《新編電子設(shè)計自動化項目教程》項目十二 可編程邏輯器件設(shè)計_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《新編電子設(shè)計自動化項目教程》

電子教案項目十二可編程邏輯器件設(shè)計教學(xué)目標(biāo)本項目將通過創(chuàng)建約翰遜計數(shù)器,重點(diǎn)介紹如何創(chuàng)建基于原理圖的現(xiàn)場可編程邏輯器件FPGA設(shè)計,并產(chǎn)生EDIF-FPGA網(wǎng)表,以達(dá)到以下學(xué)習(xí)目標(biāo):知識目標(biāo):理解FPGA的作用和優(yōu)勢。技能目標(biāo):掌握創(chuàng)建FPGA項目的方法。掌握基于原理圖的FPGA設(shè)計方法。掌握如何產(chǎn)生EDIF-FPGA網(wǎng)表。

知識擴(kuò)展一:

可編程邏輯器件可編程邏輯器件(PLD)是一種半定制性質(zhì)的專用集成電路,用戶在使用前對它進(jìn)行編程,可自行配置各種邏輯功能。PLD既有集成電路硬件速度快、可靠性高的優(yōu)點(diǎn),又具有軟件編程靈活、方便修改的優(yōu)點(diǎn),因此十分適合于小批量生產(chǎn)的系統(tǒng)和產(chǎn)品的開發(fā)和研制。

一、PLD的基本結(jié)構(gòu)PLD的基本結(jié)構(gòu)如圖所示,輸入電路實(shí)現(xiàn)對輸入信號的緩沖,同時產(chǎn)生原變量和反變量二個互補(bǔ)的信號輸出。與陣列和或陣列用于實(shí)現(xiàn)各種與或結(jié)構(gòu)的組合邏輯函數(shù),如果進(jìn)一步與輸出反饋信號配合,還可實(shí)現(xiàn)各種時序邏輯函數(shù)。輸出電路具有多種形式,可以是基本的三態(tài)門輸出,也可以是寄存器或鎖存器輸出形式(便于向輸入端提供反饋信號),還可以是輸出宏單元(可以由用戶進(jìn)行輸出電路結(jié)構(gòu)的組態(tài)等),使PLD結(jié)構(gòu)功能非常靈活、完善。PLD的結(jié)構(gòu)框圖PLD器件的邏輯圖通常采用簡化表達(dá)方法,如圖12.2所示,圖中線路交叉的黑色小點(diǎn)表示電路在該處是連接的。圖12.2(a)表示一個基本輸入和互補(bǔ)輸出單元結(jié)構(gòu)邏輯的表示方法,圖12.2(b)中是三輸入的與門,而圖12.2(c)表示一個三輸入的或門。

(a)PLD的輸入緩沖器(b)Y=ABC(c)Y=A+B+C圖12.2PLD輸入緩沖器、與門和或門PLD用圖12.3表示點(diǎn)連接功能,其中“·”表示已經(jīng)編程連接好,而“×”表示可編程連接,用戶可以在編程時將不需要的“×”去掉而斷開連接。(a)固定連接(b)固定斷開(c)未編程連接PLD的連接點(diǎn)符號二輸入二輸出PLD的典型內(nèi)部結(jié)構(gòu)如圖12.4所示,它就像一個門電路組成的積木,用戶只需根據(jù)設(shè)計需要進(jìn)行搭配,對它的與陣列和或陣列的進(jìn)行編程,決定十字交叉點(diǎn)是連接還是斷開,就可以組成各種邏輯電路。圖12.4PLD的內(nèi)部典型結(jié)構(gòu)圖12.5由PLD實(shí)現(xiàn)組合邏輯函數(shù)圖12.5是由二輸入二輸出PLD組成邏輯函數(shù)Y=A由圖可知,先根據(jù)邏輯變量分配好輸入和輸出端,再由各與項依次決定與陣列的連接關(guān)系,最后由或項決定或陣列的邏輯關(guān)系,用戶的編程工作就是決定十字交叉是否連通。提示:如果邏輯函數(shù)表達(dá)式不是與或式,應(yīng)先轉(zhuǎn)換為與或式。二、PLD的分類

PLD主要可分為以下幾類:可編程邏輯陣列(PLA)、可編程陣列邏輯(PAL)、通用陣列邏輯(GAL)、復(fù)雜可編程邏輯器件(CPLD)、現(xiàn)場可編程門陣列(FPGA)。PLA、PAL、GAL的集成度較低,一般用于實(shí)現(xiàn)較為簡單的邏輯功能。而CPLD和FPGA的功能非常強(qiáng)大,其特點(diǎn)如表12.1所示。表12.1PLD的分類和特點(diǎn)分類名稱與陣列或陣列輸出電路特點(diǎn)PROM固定可編程固定價格低廉,主要用于存儲器PLA可編程可編程固定編程靈活性高,但結(jié)構(gòu)復(fù)雜,編程困難,價格昂貴,一次編程。PAL可編程固定固定兼有價廉和編程靈活的特點(diǎn),一般只能一次編程,GAL可編程固定可組態(tài)采用E2PROM工藝,編程靈活,可編程上百次,有保密位,安全性和通用性好,應(yīng)用非常廣泛。CPLD可編程固定可組態(tài)集成度高,速度快,功耗低、使用靈活和高抗干擾等優(yōu)點(diǎn),可重復(fù)編程十萬次。三、集成PLD介紹在PLD器件中,GAL因?yàn)榫哂械凸模℅AL屬于CMOS器件)、電可擦除(+5V即可)、編程靈活的優(yōu)點(diǎn),是應(yīng)用最為廣泛的一種PLD器件。其典型芯片如GAL16V8,引腳排列如圖12.6所示,該電路包括一個容量為32×64位的與陣列,8個輸出邏輯宏單元,10個輸入緩沖器,8個三態(tài)輸出緩沖器和8個反饋緩沖器,各種配置都由結(jié)構(gòu)控制字設(shè)置和控制,可以設(shè)置為組合邏輯型,也可通過反饋線設(shè)置為時序邏輯型,具體應(yīng)用可參閱有關(guān)資料。圖12.6GAL16V8的引腳圖GAL由于集成化程度不高,一般用于小型的PLD設(shè)計。在復(fù)雜的場合一般使用集成度高,速度快,功耗低、使用靈活的CPLD或FPGA。其中著名的PLD公司有Xilinx和Altere公司,Xilinx在FPGA方面處于領(lǐng)先優(yōu)勢,而Altere在CPLD領(lǐng)域處于壟斷地位。如圖12.7所示是Xilinx公司的FPGA開發(fā)板,其中心就是復(fù)雜的FPGA芯片。圖12.7FPGA開發(fā)板四、PLD的開發(fā)環(huán)境PLD的編程需要開發(fā)平臺的支持,開發(fā)平臺通常稱為EDA工具,一般由五個模塊組成:設(shè)計輸入編輯器、HDL綜合器、仿真器、適配器、下載器。每個PLD廠家為了方便用戶編程,一般都提供了集成開發(fā)環(huán)境(即將各功能模塊集成在一起),如Alrera的MAX+plusII、QuartusII等。普通PLD器件的開發(fā)通常包括邏輯設(shè)計、選擇器件和編程產(chǎn)生JEDGC文件(PLD編程標(biāo)準(zhǔn)格式文件),然后把JEDGC文件下載到編程器,對器件進(jìn)行編程,編程完成后還要對器件進(jìn)行邏輯功能測試,測試通過的器件才能投入使用。現(xiàn)在PLD已經(jīng)發(fā)展到FPGA/CPLD種類,它們通常不再需要專業(yè)編程器進(jìn)行,只要利用PC機(jī)和下載線就能將JEDGC文件下載到器件中,這就是現(xiàn)在非常流行的ISP(在系統(tǒng)編程)技術(shù)。對于PLD的開發(fā)最主要的就是把設(shè)計按要求輸入到開發(fā)平臺,一般輸入設(shè)計要求可采用以下二種方式:圖形輸入和文本輸入。圖形輸入包括原理圖輸入、狀態(tài)圖輸入、波形圖輸入。文本輸入就是使用硬件描述語言輸入設(shè)計文本,常用的硬件描述語言有VHDL、AHDL等。1.基于原理圖的PLD設(shè)計基于原理圖的PLD設(shè)計就是按照常規(guī)電路的設(shè)計方式,采用PLD廠商所提供的宏單元模塊(相當(dāng)于一般的原理圖元件,如與門、觸發(fā)器等),使用EDA設(shè)計工具(如DXP2004),根據(jù)電路的組成直接繪制電路,然后經(jīng)編譯、仿真、綜合等步驟,最后將輸出的目標(biāo)文件下載到PLD器件中。該方式具有方便、直觀、形象等優(yōu)點(diǎn),尤其便于表達(dá)層次結(jié)構(gòu)和模塊化結(jié)構(gòu)。一般用于設(shè)計規(guī)模相對較小的電路和系統(tǒng)。2.基于HDL的PLD設(shè)計HDL(硬件描述語言)是一種描述硬件電路功能、信號連接關(guān)系以及時序關(guān)系的語言。設(shè)計者可以用該語言描述自己的設(shè)計,然后利用EDA工具進(jìn)行編譯、仿真、綜合等步驟,最后將輸出的目標(biāo)文件下載到PLD器件中。常用的硬件描述語言(如VHDL)具有與硬件無關(guān)性和工藝無關(guān)性,因此用HDL完成的PLD設(shè)計可移植性好,便于模塊化和共享,便于進(jìn)行系統(tǒng)級設(shè)計。3.原理圖和HDL混合設(shè)計

為了充分發(fā)揮基于原理圖的PLD設(shè)計和基于HDL的PLD設(shè)計的優(yōu)勢,現(xiàn)代EDA工具(如DXP2004)都具有原理圖和HDL混合設(shè)計功能。一般頂級設(shè)計采用原理圖方式實(shí)現(xiàn),可以直觀明了的表達(dá)各模塊間的層次關(guān)系,而各具體模塊的復(fù)雜邏輯關(guān)系則由HDL來進(jìn)行描述.DXP完全支持用于FPGA設(shè)計的圖形輸入中的原理圖輸入、文本輸入的VHDL硬件語言描述以及原理圖和VHDL語言混合描述,并與Altere和Xilinx建立了良好的接口,提供了大量的FPGA設(shè)計宏單元。DXP的FPGA設(shè)計工具支持EDIF格式的輸出文件,并且可以導(dǎo)入到MAX+plusII、QuartusII編譯器中。任務(wù)一創(chuàng)建FPGA設(shè)計項目1.進(jìn)行FPGA設(shè)計,必須創(chuàng)建FPGA項目。執(zhí)行如圖12.8所示的菜單命令,將產(chǎn)生一個默認(rèn)名稱為“FPGA_Project1.PrjFpg”的FPGA項目文件,如圖12.9所示。圖12.8創(chuàng)建FPGA項目菜單圖12.9產(chǎn)生默認(rèn)名稱為“FPGA_Project1.PrjFpg”的FPGA項目文件2.保存項目文件。選中新產(chǎn)生的項目文件,單擊鼠標(biāo)右鍵彈出如圖12.10所示的浮動菜單,選擇【保存項目】,將彈出如圖12.11所示的保存項目文件對話框,將新產(chǎn)生的FPGA項目保存為“計數(shù)器1.PrjFpg”。12.10右鍵彈出浮動菜單12.10右鍵彈出浮動菜單12.11保存FPGA項目文件3.新建原理圖文件。因?yàn)楸纠捎迷韴D文件來設(shè)計FPGA,因此必須新建原理圖文件,如圖12.12所示,并保存為“計數(shù)器1.SchDoc”。

圖12.12保存好的FPGA項目文件任務(wù)二裝載FPGA原理圖元件庫在進(jìn)行PFGA原理圖設(shè)計之前,必須確定使用哪個廠家的PLD器件,再加載該廠家的FPGA原理圖庫(又稱為宏元件庫)。因?yàn)槊總€FPGA廠家都有自己特定的基本元件原理圖符號,且一般與其它廠家互不兼容。甚至同一廠家不同系列的產(chǎn)品,其基本元件原理圖符號也有不同。DXP2004為所有主要的PLD廠家提供了基本元件的原理圖符號。當(dāng)設(shè)計者決定采用哪個廠家的PLD器件后,就應(yīng)該加載DXP2004為該廠家提供的FPGA原理圖庫。對于本例約翰遜計數(shù)器,我們選定Xilinx公司XilinxSpartan-II系列中的XC2S200PQ208-5芯片。

當(dāng)選定芯片后,就可以加載與該系列芯片對應(yīng)的FPGA原理圖庫,以便在原理圖上可以放置相應(yīng)的宏元件。對于XilinxSpartan-II系列芯片對應(yīng)的FPGA原理圖庫為“XilinxSpartan-IIFPGA.IntLib”,具體操作過程如下:1.如圖12.13所示,點(diǎn)擊【元件庫】面板中的【元件庫…】按鈕,彈出如圖12.14所示的可用元件庫對話框。圖12.13【元件庫】面板圖12.14可用元件庫對話框2.點(diǎn)擊圖12.14可用元件庫對話框中的【安裝…】按鈕,彈出如圖12.15所示的打開元件庫對話框,默認(rèn)路徑為“C:\ProgramFiles\Altium2004\Library”。圖12.15打開元件庫對話框3.在圖12.15中,選擇“Xilinx”公司文件夾,如圖12.16所示。將彈出如圖12.17所示的所有Xilinx公司的元件庫,選擇FPGA原理圖庫為“XilinxSpartan-IIFPGA.IntLib”,點(diǎn)擊【打開】按鈕。圖12.16選擇“Xilinx”公司文件夾

圖12.17選擇FPGA原理圖庫“XilinxSpartan-IIFPGA.IntLib”4.可以看到圖12.18所示的可用元件庫對話框中,已經(jīng)添加了FPGA原理圖庫“XilinxSpartan-IIFPGA.IntLib”。圖12.18安裝元件庫中已經(jīng)添加了“XilinxSpartan-IIFPGA.IntLib”庫5.點(diǎn)擊圖12.18中的【關(guān)閉】按鈕,回到圖12.19所示的元件庫面板,選擇剛添加的XilinxSpartan-IIFPGA.IntLib”庫,就可以進(jìn)行后面的FPGA原理圖繪制了。圖12.19元件庫面板中已經(jīng)添加了“XilinxSpartan-IIFPGA.IntLib”庫任務(wù)三放置FPGA原理圖元件

一、放置原理圖宏元件接下來開始放置本例約翰遜計數(shù)器的FPGA原理圖元件。其中U6為帶有時鐘使能功能和同步清零功能的4位移位寄存器SR4LCED。如圖12.20所示的元件庫面板中,在過濾器欄中輸入“SR4”,在出現(xiàn)的元件列表中選擇“SR4LCED”,將該FPGA宏元件放置到圖紙上,并可點(diǎn)擊【Tab】鍵設(shè)置屬性。同樣的操作方法可依次將U7(OR2B2)二輸入反相或門,U1~U5(INV)非門,U8、U9(FJKC)正邊沿JK觸發(fā)器放置到圖紙中,并調(diào)整位置,如圖12.21所示。圖

12.20找到元件SR4CLED元件12.21放置約翰遜計數(shù)器的FPGA原理圖宏元件二、放置端口

對于基于原理圖的FPGA設(shè)計而言,每個原理圖文檔實(shí)質(zhì)上就是VHDL語言的一個實(shí)體,或一個元件,并由輸入/輸出端口定義該元件的引腳。而且對于頂級原理圖而言,輸入/輸出端口還有更高一層的含義:可以直接映射為實(shí)際芯片的引腳。

由于本例只包含一個原理圖文件,該圖就是頂級原理圖,所以本圖的輸入/輸出端口就可以直接映射為實(shí)際芯片的引腳,它們可為本設(shè)計與第三方放置與布線工具提供接口。本例約翰遜計數(shù)器包含5個輸入端口(left、right、stop、clk、load)和4個輸出端口(Q0~Q3)。放置電路中的端口下面以放置輸入端口(left)為例,講解端口的放置過程。1.放置輸入端口(1)設(shè)置端口屬性。選擇配線工具中的放置端口工具,按下【Tab】鍵彈出如圖12.23所示的端口屬性對話框,各屬性含義如下:【排列】:字符在端口中的位置,【Center】:字符位于端口中心;【Left】:字符位于端口左端;【Right】:字符位于端口右端。【風(fēng)格】:即端口箭頭方向,有【Left】、【Right】、【Left&Right】、【None】等?!久Q】:即端口名稱?!綢/O類型】:即端口的信號流向,有【Unspecified】不確定,【Output】輸出,【Input】輸入,【Bidirectional】雙向。對于輸入端口left,在屬性欄【名稱】輸入端口名:left,在【I/O類型】中選擇【Input】輸入,在【風(fēng)格】欄中選【Right】。,如圖所示。圖輸入端口left屬性對話框(2)放置端口。屬性設(shè)置好后,點(diǎn)擊【確認(rèn)】按鈕,出現(xiàn)十字光標(biāo),移到要放置的地方點(diǎn)擊鼠標(biāo)左鍵,即可確定端口一個端點(diǎn),然后移動鼠標(biāo),端口即被帶出,到合適長度再次點(diǎn)擊鼠標(biāo)左鍵即可完成端口的放置。(3)重復(fù)以上步驟,完成其它輸入端口的放置,如圖所示。2.放置輸出端口輸出端口的放置方法基本與輸入端口相同,但由于其輸出端口為總線端口,因此其名稱為Q[3..0],而【I/O類型】為【Output】輸出,如圖12.24所示。圖12.24輸出端口屬性對話框三、連接導(dǎo)線和普通原理圖的連線方法相同,完成后效果如圖12.25所示。圖12.25完成約翰遜計數(shù)器的連線四、放置網(wǎng)絡(luò)標(biāo)簽和普通原理圖放置網(wǎng)絡(luò)標(biāo)簽方法相同,完成后效果如圖12.26所示。圖12.26約翰遜計數(shù)器放置網(wǎng)絡(luò)標(biāo)簽五、完成總線連接和普通原理圖總線連接方法相同,并放置總線型網(wǎng)絡(luò)標(biāo)簽(名稱為SQ[3..0]),完成后效果如圖12.27所示。圖12.27完成總線連接任務(wù)四進(jìn)行FPGA參數(shù)設(shè)置前面已經(jīng)完成了約翰遜計數(shù)器的原理圖設(shè)計。接下來需要產(chǎn)生EDIF-FPGA網(wǎng)表文件,并使用Xilinx提供的放置及布線工具繼續(xù)后面的設(shè)計過程。然而在產(chǎn)生EDIF-FPGA網(wǎng)表文件前,還必須配置一些必要的參數(shù)。一、添加文檔參數(shù)在DXP2004的FPGA工作環(huán)境下,通過添加文檔參數(shù)可以為當(dāng)前設(shè)計指定希望使用的芯片。對于本例約翰遜計數(shù)器,我們選定Xilinx公司XilinxSpartan-II系列中的XC2S200PQ208-5芯片。1.打開文檔選項對話框。執(zhí)行菜單命令【設(shè)計】/【文檔選項…】,彈出如圖12.28所示的文檔選項對話框。圖12.28文檔選項對話框2.在圖12.28中點(diǎn)擊【參數(shù)】選項卡,如圖21.29所示,點(diǎn)擊【追加…】按鈕,彈出如圖12.31所示的添加參數(shù)屬性對話框。圖12.29選擇【參數(shù)】選項卡3.在圖12.30所示的添加參數(shù)屬性對話框,設(shè)置以下參數(shù)屬性:【名稱】:即輸入?yún)?shù)名稱,本處為確定芯片名稱,因此輸入“PARA-NAME”。【數(shù)值】:即參數(shù)的具體數(shù)值,本處為芯片的具體型號,因此輸入“2S200-PQ208-5”。

【類型】即參數(shù)的數(shù)值類型,有【STRING】字符型、【BOOLEAN】布爾型、【INTEGER】整數(shù)型、【FLOAT】浮點(diǎn)型。本處為字符,因此選擇【STRING】。圖12.30添加芯片參數(shù)屬性對話框4.在圖12.30中點(diǎn)擊【確認(rèn)】按鈕,可以看到圖12.31的文檔參數(shù)選項對話框的參數(shù)欄中多了一個“PARA-NAME”的參數(shù)。圖12.31參數(shù)欄中添加了“PARA-NAME”的參數(shù)二、添加端口參數(shù)芯片一旦指定,下一步就可以為端口分配實(shí)際芯片的引腳序號,并在第三方工具(必須支持)中鎖定已分配的引腳序號。實(shí)際芯片引腳序號的分配,是通過添加端口的“PINNUM”參數(shù)來實(shí)現(xiàn)的。下面以分配端口“l(fā)eft”的實(shí)際芯片引腳序號為例,講解具體的操作步驟:1.雙擊已放置的端口“l(fā)eft”,彈出如圖所示端口屬性對話框,點(diǎn)擊【參數(shù)】選項卡。圖

端口屬性對話框2.在圖12.33所示【參數(shù)】選項卡中,點(diǎn)擊【追加…】按鈕。圖12.33【參數(shù)】選項卡3.在圖12.34所示的添加參數(shù)屬性對話框,設(shè)置以下參數(shù)屬性:【名稱】:即輸入?yún)?shù)名稱,本處為確定芯片引腳序號,因此輸入“PINNUM”?!緮?shù)值】:即參數(shù)的具體數(shù)值,本處為芯片的具體引腳,因此輸入“P3”?!绢愋汀考磪?shù)的數(shù)值類型,有【STRING】字符型、【BOOLEAN】布爾型、【INTEGER】整數(shù)型、【FLOAT】浮點(diǎn)型。本處為字符,因此選擇【STRING】。圖12.34添加參數(shù)屬性對話框4.在圖12.34中點(diǎn)擊【確認(rèn)】按鈕,可以看到圖12.35所示的參數(shù)欄中已經(jīng)添加了“PINNUM”參數(shù)。12.35已經(jīng)添加的“PINNUM”參數(shù)采用相同的操作方法,分別為其它4個輸入端口(right、stop、clk、load)指定引腳值(P4、P5、P6以及P77)。5.總線端口參數(shù)配置而對于輸出端口Q[3..0],由于其為總線端口,引腳數(shù)必須和端口數(shù)相對應(yīng),因此其數(shù)值為“P15,P16,P17,P1

溫馨提示

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

評論

0/150

提交評論