版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章軟件平臺介紹
2.1計算機輔助設計軟件工具介紹2.2FPGA設計流程2.3ISE軟件使用與FPGA設計實例2.4*嵌入式系統(tǒng)開發(fā)2.5硬件描述語言
計算機輔助設計軟件工具和硬件描述語言是現(xiàn)代數(shù)字電子電路設計所必需的兩個部分。由于篇幅所限,本章對這兩部分只做簡要介紹。
2.1計算機輔助設計軟件工具介紹
計算機輔助設計(ComputerAidedDesign,CAD)是現(xiàn)代電子設計必不可少的部分,其迅速發(fā)展帶動了數(shù)字電路設計方法的進步。CAD是利用計算機和設計軟件幫助設計人員進行設計工作的。在借助CAD的電路設計過程中,可以對不同方案進行仿真模擬、分析和比較,以決定最優(yōu)方案,各種設計信息,不論是數(shù)字的、文字的或圖形的,都可以被保存并能被快速地檢索。傳統(tǒng)數(shù)字電路設計人員通常從草圖開始設計,對于復雜數(shù)字系統(tǒng),其工作量之大難以想象,CAD的誕生使數(shù)字電子電路設計進入了一個全新的時代。2.1.1CAD流程簡介
任何一個數(shù)字產(chǎn)品的工程設計過程一般包括:技術指標說明,行為級描述,結構級描述,物理電路設計,測試和認證等。從抽象的行為描述到更詳細的結構描述需要一個設計過程,即使是一個簡單的報警信號燈,也需要考慮采取哪一種電路形式,比如,是基于微處理器電路、基于離散元器件電路還是基于可編程器件電路。到底采用哪一種電路形式取決于很多因素,比如,設計者的技能、成本、功耗等。
CAD工具是可編程器件設計過程中的一個非常有用的工具。使用CAD進行簡單邏輯設計和復雜邏輯設計的過程是類似的,如圖2-1所示。在設計初始階段,設計者可以在計算機上使用不同的設計描述模式,諸如,基于文本的模式(如用HDL進行高層次行為描述);基于圖形的模式(如用原理圖進行結構描述)。狀態(tài)圖也是常用的一種設計描述方式。任何一個電路可以由行為級或結構級描述,但兩者有很大的差別。結構級的原理圖描述顯示了所有元件和連線,需要花費很多的設計時間,但設計出的電路可以準確模擬和直接實現(xiàn);行為級的HDL描述可以很快完成,但它不含任何電路結構信息,在電路實現(xiàn)之前必須轉換為結構描述。將行為級描述轉換為一個結構描述需要做大量的工作,被稱為綜合器的一類計算機程序可以執(zhí)行這項工作,從而使設計工程師可以專注于其他設計任務。一些研究表明,綜合器產(chǎn)生的結構描述比大多數(shù)工程師設計的電路還要好。本書中的數(shù)字電路設計采用的CAD軟件工具為Xilinx公司的ISEDesignSuite,這是在早期的Foundation系列基礎上發(fā)展并不斷升級換代的一個開發(fā)軟件。XilinxISE是包含設計輸入、仿真、邏輯綜合、布局布線與實現(xiàn)、時序分析、功率分析、下載與配置等幾乎所有FPGA開發(fā)工具于一體的集成化環(huán)境。它主要由項目導航工具、設計輸入工具、邏輯綜合工具、設計實現(xiàn)工具、設計約束圖形編輯接口等組成。項目導航工具是基本窗口界面,用來訪問ISE軟件系統(tǒng)的各種工具箱。設計輸入工具包括:電路邏輯圖輸入工具——電路圖編輯器,硬件描述語言輸入工具——硬件描述語言編輯器,狀態(tài)機編輯器,硬件描述語言測試生成器。邏輯綜合工具將硬件描述語言代碼經(jīng)過綜合優(yōu)化后,輸出EDIF格式的電路邏輯連接(網(wǎng)表)。設計實現(xiàn)工具用于面向FPGA的設計實現(xiàn)中的布局布線。設計約束圖形編輯接口包含圖形化的約束編輯接口,實現(xiàn)控制邏輯塊的位置約束和時間約束。圖2-1CAD框架
XilinxISEDesignSuite13.x(ISE_DS13.x)包含ISEDesignTools、嵌入式處理器設計套件EDK和Chipscope在線示波器等。ISEDesignTools是基本的PLD邏輯設計平臺,支持原理圖和HDL輸入方式進行設計。它包含IP核發(fā)生器,可生成一些常用IP核,具備綜合、實現(xiàn)、仿真和下載等功能。EDK是模塊化可編程嵌入式系統(tǒng)設計平臺,包含一些常用IP核(比如,CPU及復雜接口控制器等)可供用戶使用。Chipscope用于設計的在線實時調試,相當于邏輯分析儀和示波器的功能。很多軟件可在Xilinx網(wǎng)站免費下載[1]。ISEDesignSuite具有適合邏輯的、嵌入式的、DSP的、系統(tǒng)級的版本,各版本功能比較見表2-1所示??梢姡琁SEDesignSuite的SystemEdition版本提供了全套集成式開發(fā)環(huán)境、軟件工具、配置向導和IP,能夠簡化設計。Xilinx內核生成器(COREGenerator?)系統(tǒng)包含在所有版本的ISEDesignSuite內。高度優(yōu)化的IP使得FPGA設計者能夠集中精力迅速構建設計,有助于加快產(chǎn)品的面市步伐。表2-1ISEDesignSuite不同版本比較
XilinxISEDesignSuite是面向Virtex-6和Spartan-6FPGA系列的綜合軟件設計平臺,在降低功耗與成本方面取得了突破性進展。使邏輯、嵌入式、數(shù)字信號處理、接口技術等系統(tǒng)設計人員能夠更輕松地設計出復雜、高性能的產(chǎn)品。XilinxISEDesignSuite具有以下主要特點:
●利用自動時鐘門控技術將動態(tài)功耗降低30%。
●利用第四代部分重配置設計流程降低系統(tǒng)成本。
●?ISEDesignSuite13.2以上版本可以使所有7系列FPGA產(chǎn)品的設計性能平均提高7%。●通過內核生成器(CoreGenerator),16個新型和已改進的即插即用IP核可提供AXI互連,并改進尺寸和性能。利用AXI4接口實現(xiàn)即插即用式FPGA設計。
●幫助BaseSystemBuilder新手縮短了EmbeddedEdition的開發(fā)時間,從而加快了尺寸或性能優(yōu)化的設計開發(fā),其中包括對雙MicroBlazeAXI嵌入式系統(tǒng)的支持。
●?Xilinx的最新軟件工具——PlanAhead?,提供了一個RTL到比特流(Bit)的設計流程,具有改進用戶界面和項目管理的功能。借助于PlanAhead軟件,可以查看實現(xiàn)的數(shù)字邏輯時序結果,輕松地分析關鍵邏輯,并且利用布局規(guī)劃、約束修改和多種實現(xiàn)工具選項進行有針對性的決策,從而提升設計性能。PlanAhead軟件擴展了邏輯設計方法,通過布局規(guī)劃、多個實現(xiàn)進程、層次化探索、快速時序分析和基于模塊的實現(xiàn)來發(fā)揮設計的最大優(yōu)勢。PlanAhead軟件還提供了一種安置ChipScopePro調試內核的簡便方法來簡化片上驗證流程[2]。PlanAhead工具目前可針對Xilinx7系列FPGA提供公共訪問功能,不僅能夠提升工作效率,幫助用戶快速完成設計,而且其具備的智能時鐘門控技術還能大幅降低功耗。此外,為Artix-7FPGA和Virtex-7XTFPGA提供的團隊設計流程與第五代部分可重配置技術也可減少所使用器件的數(shù)量和尺寸,進而降低功耗、改進系統(tǒng)的升級能力。
ISEDesignSuite13.4設計套件可提供對MicroBlaze??微控制器系統(tǒng)(MCS)的公共訪問功能、面向28nm7系列FPGA的全新RX裕量分析和調試功能,以及支持面向Artix?-7系列和Virtex?-7XT器件的部分可重配置功能。
Xilinx新一代的FPGA,采用28nm工藝,3D堆疊硅片互聯(lián)等技術以實現(xiàn)突破性的容量、帶寬和功耗優(yōu)勢,并實現(xiàn)了模數(shù)混合集成。同時,在2012年4月25日Xilinx發(fā)布了下一代的開發(fā)工具Vivado,Vivado不僅能加速可編程邏輯和I/O的設計速度,而且還可提高可編程系統(tǒng)的集成度和實現(xiàn)速度,加快了驗證和調試速度。它突破了可編程系統(tǒng)集成度和實現(xiàn)速度兩方面的重大瓶頸,將設計生產(chǎn)力提高到同類競爭開發(fā)環(huán)境的4倍,致力于在未來十年加速全面可編程(AllProgrammable)器件的設計生產(chǎn)力。
Nexys3和Basys2兼容包括免費的WebPack、ISE等在內的所有Xilinx軟件工具。也可以使用Digilent公司發(fā)布的最新版的Adept軟件,該軟件可以配置Digilent公司開發(fā)板上的FPGA、驗證開發(fā)板性能、數(shù)據(jù)傳輸、與FPGA交換基于寄存器或文件的數(shù)據(jù)、擴展虛擬I/O接口、包含公開的APIs/DLLs等。2.1.2各種軟件下載安裝和實驗準備
1.安裝XilinxFPGA開發(fā)套件——ISE工具
進入主頁“技術支持”中下載ISE_DS13.4(或其他版本,不一定用最新版本)工具,在WindowsXP或者Windows7系統(tǒng)上安裝該軟件。如果需要申請
XilinxISE工具的license,在該網(wǎng)頁可以免費申請,訪問/bbs也可以獲得幫助。從網(wǎng)絡上也可以下載到ISEDesignSuite13:InstallationandLicensingGuide的pdf文件。
Xilinx的官方網(wǎng)站上不僅提供軟件下載,還包含一些軟件說明、硬件更新、參考設計、常遇到的問題及解決方法、大量視頻教程等資料可供讀者學習。
運行\(zhòng)Xilinx_ISE_DS_13.4\Xilinx_ISE_DS_13.4_O.87xf.2.0目錄下的xsetup.exe,一直按“Next”按鈕,根據(jù)需要修改安裝路徑。安裝過程中會出現(xiàn)圖2-2所示的界面,選擇“確定”,進行強制安裝WinPcap,才能順利安裝后續(xù)的DigilentPlugin。WinPcap安裝完成后會繼續(xù)ISE安裝。圖2-2安裝中出現(xiàn)的選擇界面注意:安裝ISE13.4時,由于臨時解壓文件比較多,C盤需要有足夠空間(不少于8GB),安裝時間也需要1個小時左右,ISE13.4安裝后占用18.8GB的空間。Xilinx全部軟件都不能安裝在帶空格和中文字符的目錄中,也就不能安裝在“ProgramFiles”目錄下。建議所有軟件都裝在某個盤的根目錄下。
2.安裝USB下載驅動軟件DigilentAdept
DigilentAdept是Digilent開發(fā)板與PC之間的接口軟件,其功能如下:
●使用戶通過PC配置開發(fā)板上的FPGA,CPLD等邏輯器件,F(xiàn)PGA配置文件擴展名為?.bit或?.mcs,CPLD使用擴展名為?.jed的文件。
●使PC與開發(fā)板進行數(shù)據(jù)傳送,讀寫指定的寄存器,擴展I/O。
●自動檢測與PC相連的開發(fā)板,并對硬件平臺進行診斷。
DigilentAdept工具可以在網(wǎng)頁的Software中下載。安裝前先不連接開發(fā)板,執(zhí)行安裝文件,安裝好Adept后,按照第3條方式(連接Nexys3或Basys2開發(fā)板并執(zhí)行Adept)連接開發(fā)板并使用Adept軟件。不同版本的Adept以及連接的實驗開發(fā)板不同,執(zhí)行Adept后的軟件界面也略有不同。以下介紹的是digilent.adept.system_v2.10.2版本連接Basys2開發(fā)板的情況。Adept安裝好后,開始菜單中也有Adept用戶手冊(AdeptApplliicattiionUser’sManuall.pdf),可供大家參考。
3.連接Nexys3或Basys2開發(fā)板并執(zhí)行Adept
(1)連接開發(fā)板:用USB線連接Nexys3或Basys2的USBPROG接口和PC端的USB接口。計算機會自動檢測到硬件并安裝驅動。
(2)打開電源:打開Nexys3或Basys2開發(fā)板上電源開關,開發(fā)板上的自動檢測程序會檢測開發(fā)板,Basys2的測試程序會在4個數(shù)碼管上依次輪流顯示0、1、…、d、E、F,說明硬件正常。
(3)執(zhí)行Adept:在“開始”菜單中找Adept并執(zhí)行,出現(xiàn)Digilent界面如圖2-3所示,其中的Connect后面直接出現(xiàn)所連接的開發(fā)板Basys2(如果與PC連接的是Basys2的話)。如果沒有開發(fā)板連接到PC,Connect后面顯示“Nodevicesconnected.”。如果連接到PC的開發(fā)板電源未打開,則Config窗口顯示“Nodevicesidentified.”。以上情況均屬于初始化失敗,需退出Adept,重新按照(1)~(3)步驟操作。
(4)?Config(配置FPGA):如圖2-3所示,點擊Browse…,彈出Adept軟件包含的各種開發(fā)板的配置文件,選擇Basys2的配置文件008-Basys2-1.bit,然后點擊Program,所有LED綠燈亮,編程狀態(tài)的紅燈閃爍。
下載之后出現(xiàn)圖2-3所示界面,說明下載編程成功。圖2-3DigilentAdeptConfig
(5)?Test(測試):Adept可以對開發(fā)板做簡單的診斷測試,如圖2-4所示,點擊StartTest后,軟件會自動將一個診斷測試文件配置到開發(fā)板FPGA并自動執(zhí)行測試,此時4個數(shù)碼管依次顯示0000~FFFF四位相同的十六進制數(shù),開發(fā)板上SW、Buttons(BTN0~BTN3)的狀態(tài)會反應在圖2-4的軟件界面中,開發(fā)板上的LD1~LD6會隨著用戶撥動SW而變化。SW被撥到上面位置時,LD1~LD6亮,SW被撥到下面時,LD1~LD6滅,但SW6(=1)被撥到上面位置時,4個數(shù)碼管的高兩位熄滅、低兩位顯示00。4個數(shù)碼管依次顯示0000~FFFF時,若某Button按下,則對應的數(shù)碼管熄滅。對于某些開發(fā)板,還提供了存儲器的測試。各種開發(fā)板的診斷測試源代碼及整個工程文件(如,Basys2UserTest.zip)都可以在Digilent網(wǎng)站下載,任何時候都可以通過ISE或Adept軟件將生成的Bit文件配置到FPGA,以測試實驗軟件平臺、開發(fā)板的連接、開發(fā)板的簡單外設等是否正常。
(6)?RegisterI/O:Adept支持PC與開發(fā)板的通信。通過RegisterI/O,指定寄存器地址,則可以讀取其數(shù)據(jù)或寫入數(shù)據(jù)。數(shù)據(jù)及地址格式可以用二進制、十進制或十六進制表示。
(7)?FileI/O:Adept支持PC與開發(fā)板之間傳送文件。
(8)?I/OEx:Adept支持開發(fā)板使用擴充的虛擬I/O。擴充的I/O包括16個switch、16個Button、8個LED和24個lightbar。其可以發(fā)出和接收32位數(shù)據(jù)。圖2-4DigilentAdeptTest
4.下載并安裝DigilentPlugin插件
DigilentPlug-in工具允許Xilinx軟件工具直接通過DigilentUSB-JTAG與開發(fā)板通信或配置FPGA,使Xilinx的iMPACT、XMD、ChipScope等工具更好地支持Digilent的FPGA開發(fā)板。
進入網(wǎng)頁,點擊左側Products欄中的Software,仔細閱讀DigilentPluginforXilinxTools中的說明,搞清楚DigilentPlugin與ISE、iMPACT、XMD等軟件版本的支持關系,同時要清楚自己計算機的操作系統(tǒng)是Linux還是Windows。操作系統(tǒng)是Windows的話,選擇“DigilentPlug-in,32/64-bitWindows”下載,然后解壓縮包,將目錄\libCseDigilent_2.1.7-x86-x64-Windows\ISE13x\plugin\nt64\plugins\Digilent\libCseDigilent中的兩個文件(libCseDigilent.dll和libCseDigilent.xml)復制到安裝后的ISE的Xilinx\13.4\\ISE_DS\ISE\lib\nt\plugins\Digilent\libCseDigilent中,然后在ISE中使用iMPACT配置FPGA。具體方式見本書2.3.1節(jié)和\libCseDigilent_2.1.7-x86-x64-Windows\ISE13x目錄下的Digilent_Plug-in_Xilinx_v13.pdf用戶手冊。
如果不安裝DigilentPlugin的話,Xilinx軟件工具,例如XMD、iMPACT,ChipScope等就無法通過DigilentUSB識別開發(fā)板上的FPGA芯片。如果DigilentPlugin的版本與Xilinx軟件的版本以及操作系統(tǒng)環(huán)境不符合,則DigilentPlugin不會生效。
2.2FPGA設計流程
基于ISE的FPGA開發(fā)流程如圖2-5所示,主要過程包括:設計輸入、綜合、仿真(主要包括功能仿真和時序仿真)、實現(xiàn)、FPGA配置等。設計輸入主要有原理圖和硬件描述語言(HardwareDescriptionLanguage,HDL)兩種方式。圖2-5基于ISE的FPGA開發(fā)流程傳統(tǒng)的數(shù)字電路課程中,電路的設計和分析都是基于原理圖,大家對原理圖已經(jīng)非常熟悉,可以很容易地在ISE中采用原理圖方法設計數(shù)字邏輯電路,但原理圖方法只適合設計簡單的邏輯電路。HDL是用文本形式來描述數(shù)字電路的內部結構和信號連接關系的一類語言,類似于一般的計算機高級語言的語言形式和結構形式,設計者可以利用HDL描述要設計的電路,HDL非常適合用于復雜的數(shù)字系統(tǒng)設計,是現(xiàn)代數(shù)字電路設計的主要方法。
下面對FPGA設計過程中的綜合和實現(xiàn)這兩個概念做簡單介紹。2.2.1綜合
綜合(Synthesis)是一種軟件工具,負責將高層次的邏輯設計代碼轉換成低層次的電路描述文件(網(wǎng)表文件)。
在數(shù)字IC設計領域常用的EDA綜合工具中,Synopsys公司提供的DesignCompiler(DC)是較流行且功能強大的邏輯綜合工具。用戶只需要輸入設計規(guī)格的HDL描述和時間約束,就可以得到較為優(yōu)化的門級的電路網(wǎng)表。此外,DC還集成了功能強大的靜態(tài)時序分析,并支持與后端布局布線工具交互工作。很多IC公司都推出了自己的綜合工具,比如,XilinxISE中綜合工具為XST;Synopsys的Synplify綜合工具;MentorGraphic的LeonardoSpectrum綜合工具。ISE提供與第三方綜合工具的無縫集成。簡單說,綜合是指將行為級或RTL級的HDL描述和原理圖等設計輸入轉換為由與門、或門、非門、RAM和觸發(fā)器等基本邏輯單元組成的邏輯連接的過程。綜合過程包括兩個內容,一是對硬件語言源代碼輸入進行翻譯與邏輯層次上的優(yōu)化,二是對翻譯結果進行邏輯映射與結構層次上的優(yōu)化,最后生成邏輯網(wǎng)表。綜合結果的優(yōu)劣以設計芯片的物理面積和工作頻率為指標,物理面積越小越好,工作頻率越高越好。當兩者發(fā)生沖突時,一般采用速度優(yōu)先的原則。對于FPGA設計開發(fā)者來說,所有CAD開發(fā)平臺提供的綜合工具都足夠滿足設計要求。綜合輸出的網(wǎng)表文件標準格式是EDIF,文件后綴通常為.edn、.edf或.edif。EDIF網(wǎng)表是可以用文本編輯器打開的文本文件。Xilinx綜合輸出為NGC網(wǎng)表,NGC網(wǎng)表是二進制文件,不能用文本編輯器打開。網(wǎng)表文件中除了包含有設計的基于門的組合邏輯和時序邏輯信息之外,還包含F(xiàn)PGA特有的各種原語(Primitive),比如查找表(LUT)、BRAM、DSP48、PowerPC和PCIe等硬核模塊(如果設計中使用的話)以及這些模塊的屬性和約束信息。2.2.2實現(xiàn)
所謂實現(xiàn)(Implement)是將綜合輸出的網(wǎng)表文件翻譯成所選器件的底層模塊與硬件原語,將設計映射到FPGA器件結構上,進行布局布線,達到利用選定器件實現(xiàn)設計的目的。實現(xiàn)主要分為3個步驟:翻譯(Translate)、映射(Map)和布局布線(Place&Route)。翻譯的主要作用是將綜合輸出的邏輯網(wǎng)表翻譯為特定FPGA器件的底層結構和硬件原語;映射的主要作用是將設計映射到具體型號的FPGA器件上(LUT、FF、Carry等);布局布線是調用布局布線器,根據(jù)用戶約束和物理約束,對設計模塊進行實際的布局,并根據(jù)設計連接,對布局后的模塊進行布線,產(chǎn)生FPGA/CPLD配置文件。以下具體介紹Xilinx的實現(xiàn)工具的翻譯、映射和布局布線。在翻譯過程中,設計文件和約束文件將被合并生成NGD(原始類型數(shù)據(jù)庫)文件和BLD文件,其中NGD文件包含了當前設計的全部邏輯描述,BLD文件是轉換的結果報告。實現(xiàn)工具可以導入EDN、EDF、EDIF、SEDIF格式的設計文件,以及UCF(用戶約束文件)、NCF(網(wǎng)表約束文件)、NMC(物理宏庫文件)和NGC(含有約束信息的網(wǎng)表)格式的約束文件。翻譯項目包括3個命令:
(1)?[TranslationReport]:用以顯示翻譯步驟的報告;
(2)?[FloorplanDesign]:用以啟動Xilinx布局規(guī)劃器(Floorplanner)進行手動布局,提高布局器效率;
(3)?[GeneratePost-TranslateSimulationModel]:用以產(chǎn)生翻譯步驟后仿真模型,由于該仿真模型不包含實際布線時延,所以有時省略此仿真步驟。
在映射過程中,由轉換流程生成的NGD文件將被映射為目標器件的特定物理邏輯單元,并保存在NCD(展開的物理設計數(shù)據(jù)庫)文件中。映射的輸入文件包括NGD、NMC、NCD和MFP(映射布局規(guī)劃器)文件,輸出文件包括NCD、PCF(物理約束文件)、NGM和MRP(映射報告)文件。其中MRP文件是通過Floorplanner生成的布局約束文件,NCD文件包含當前設計的物理映射信息,PCF文件包含當前設計的物理約束信息,NGM文件與當前設計的靜態(tài)時序分析有關,MRP文件是映射的運行報告,主要包括映射的命令行參數(shù)、目標設計占用的邏輯資源、映射過程中出現(xiàn)的錯誤和警告、優(yōu)化過程中刪除的邏輯等內容。映射項目包括如下命令:
(1)?[MapReport]:用以顯示映射步驟的報告;
(2)?[GeneratePost-MapStaticTiming]:用以產(chǎn)生映射靜態(tài)時序分析報告,啟動時序分析器(TimingAnalyzer)分析映射后靜態(tài)時序;
(3)?[ManuallyPlace&Route(FPGAEditor)]:用以啟動FPGA底層編輯器進行手動布局布線,指導Xilinx自動布局布線器,解決布局布線異常,提高布局布線效率;
(4)?[GeneratePost-MapSimulationModel]:用以產(chǎn)生映射步驟后仿真模型,由于該仿真模型不包含實際布線時延,所以有時也省略此仿真步驟。在布局和布線(Place&Route)過程中,通過讀取當前設計的NCD文件,將映射后生成的物理邏輯單元在目標系統(tǒng)中放置并連線,同時提取相應的時間參數(shù)。布局布線的輸入文件包括NCD和PCF模板文件,輸出文件包括NCD、DLY(延時文件)、PAD和PAR文件。在布局布線的輸出文件中,NCD包含當前設計的全部物理實現(xiàn)信息,DLY文件包含當前設計的網(wǎng)絡延時信息,PAD文件包含當前設計的輸入輸出(I/O)管腳配置信息,PAR文件主要包括布局布線的命令行參數(shù)、布局布線中出現(xiàn)的錯誤和告警、目標占用的資源、未布線網(wǎng)絡、網(wǎng)絡時序信息等內容。布局布線步驟的命令與工具如下:
(1)?[Place&RouteReport]:用以顯示布局布線報告;
(2)?[AsynchronousDelayReport]:用以顯示異步實現(xiàn)報告;
(3)?[PadReport]:用以顯示管腳鎖定報告;
(4)?[GuideResultsReport]:用以顯示布局布線指導報告,該報告僅在使用布局布線指導文件NCD文件后才產(chǎn)生;
(5)?[GeneratePost-Place&RouteStaticTiming]:包含了進行布局布線后靜態(tài)時序分析的一系列命令,可以啟動TimingAnalyzer分析布局布線后的靜態(tài)時序;
(6)?[View/EditPlaceDesign(Floorplanner)]和[View/EditPlaceDesign(FPGAEditor)]:用以啟動Floorplanner和FPGAEditor完成FPGA布局布線的結果分析、編輯,手動更改布局布線結果,產(chǎn)生布局布線指導與約束文件,輔助Xilinx自動布局布線器,提高布局布線效率并解決布局布線中的問題;
(7)?[AnalyzePower(XPower)]:用以啟動功耗仿真器分析設計功耗;
(8)?[GeneratePost-Place&RouteSimulationModel]:用以產(chǎn)生布局布線后仿真模型,該仿真模型包含的時延信息最全,不僅包含門延時,還包含了實際布線延時。該仿真步驟必須進行,以確保設計功能與FPGA實際運行結果一致;
(9)?[GenerateIBISModel]:用以產(chǎn)生IBIS仿真模型,輔助PCB布板的仿真與設計;
(10)?[MultiPassPlace&Route]:用以進行多周期反復布線;
(11)?[Back-annotatePinLocations]:用以反標管腳鎖定信息。
2.3ISE軟件使用與FPGA設計實例
本節(jié)通過Basys2開發(fā)板上的8個SW控制對應位置上的LED亮滅,使讀者了解ISE13.4的使用以及FPGA的設計流程。
2.3.1開發(fā)板的簡單外設實驗步驟
下面通過實現(xiàn)圖2-6所示的SW撥碼開關控制LED的亮滅,介紹工程建立、源文件編輯、仿真、綜合、實現(xiàn)和下載等設計過程以及ISE的使用。圖2-6SW控制發(fā)光二極管亮滅
1.創(chuàng)建新工程
進入ISE工作界面,單擊“File”→“NewProject”,出現(xiàn)如圖2-7所示窗口,確定工程路徑及工程名,路徑和工程名中不能包含漢字,最好不以數(shù)字打頭。本例的工程名及路徑如圖2-7所示。選擇頂層設計文件類型,本例選擇使用硬件描述語言HDL。然后,單擊“Next”,出現(xiàn)圖2-8所示的ProjectSettings界面。早期ISE版本建立的工程文件擴展名為?.ise,而ISE13X工程文件擴展名為?.xise,因此,保存新建工程后,在simple目錄中可見到一個simple.xise的工程文件。很多網(wǎng)站給出了ISE的使用步驟[23]。圖2-7CreateNewProject界面
2.工程參數(shù)設置
在圖2-8中確定工程使用的FPGA類型及封裝形式,確定綜合工具、仿真器以及HDL類型等。
如果在“EvaluationDevelopmentBoard”下拉菜單中可以找到所使用的開發(fā)板,則器件系列、型號、封裝無須再設置,否則要選擇所用開發(fā)板的這些內容。Basys2相關信息如圖2-8所示,封裝選錯,則實現(xiàn)時會出錯誤。
Nexys3板上使用的FPGA信息如下:
Family:Spartan6
Device:XC6SLX16
Package:CSG324圖2-8ProjectSettings界面綜合工具選擇:XilinxISE的XST
仿真工具選擇:ISim
HDL類型選擇:Verilog或VHDL
然后,單擊Next,將出現(xiàn)一個設計說明書,單擊Finish,進入空白工程界面。
3.新建、編輯源文件
單擊“Project”→“NewSource”,彈出SelectSourceType窗口,創(chuàng)建新的源文件。在新文件向導對話框里,選擇源文件類型,本例根據(jù)上面的步驟1和2選擇VerilogModule。取一個有意義的文件名,在此文件名與工程名一樣為simple,擴展名為?.v。單擊“Next”,出現(xiàn)DefineModule窗口,如圖2-9所示,在其中設置頂層模塊端口。本工程中,輸入端口取名SW,8位,輸出端口取名LD,8位。圖2-9DefineModule窗口單擊“Next”,出現(xiàn)Summary界面,點擊完成則出現(xiàn)圖2-10所示的源文件編輯窗口,其中已經(jīng)包含了源文件的創(chuàng)建時間、名字、版本等信息,還有其他在規(guī)范編程中需要填寫的信息。
圖2-10中的21~26行已經(jīng)給出了Verilog編程的基本編程模塊。本例期望實現(xiàn)SW控制LED的亮滅,因此只需在endmodule之前加入:
assignLD=SW;
完成上面步驟后保存源文件,ISE會自動檢測語法錯誤。ISE自帶了大量的程序模板,使得設計人員不需要手動敲入一些重復的代碼。圖2-10源文件編輯窗口
4.編輯用戶約束文件UCF
UCF文件用于定義工程中用到的I/O引腳與FPGA引腳的對應關系。點擊“project”→“NewSource”,出現(xiàn)如圖2-11所示界面,選擇“ImplementationConstraintsFile”,取一個有意義的文件名,在此為simple,擴展名為.ucf。圖2-11SelectSoureType界面雙擊Hierarchy中的user.ucf文件,在編輯頁面添加以下代碼,確定FPGA與switch和LED的對應引腳。語法為:NET“netname”LOC=“XXX”。其中,netname代表工程中定義的I/O引腳;XXX代表Basys2上FPGA的封裝引腳,語法中XXX的雙引號可以省略。Digilent網(wǎng)站提供了各種開發(fā)板的UCF文件,直接Copy或添加到工程即可。UCF文件編輯參考文獻[10]。由圖1-21或表1-4可以得到SW和LD與FPGA引腳的關系。編輯UCF文件如下(由圖1-6也可得到Nexys3的I/O連接關系):
5.綜合與實現(xiàn)
綜合(Synthesis)是將頂層文件設計的HDL代碼轉換為邏輯電路信息網(wǎng)表(Netlist)文件,即綜合的輸入是HDL代碼,輸出是Netlist文件(存放邏輯電路的所有信息)。這一過程分析所設計的電路,檢查電路的語法、結構和連接的有效性,論證是否是可綜合的。
點擊圖2-12Hierarchy中的頂層文件,雙擊Synthesize—XST或右鍵單擊,點擊Run。經(jīng)過綜合沒有出現(xiàn)任何錯誤,則可以繼續(xù)實現(xiàn)設計。在過程管理區(qū)雙擊“ImplementDesign”選項,就可以完成實現(xiàn),實現(xiàn)設計需要有UCF文件。經(jīng)過實現(xiàn)后能夠得到精確的資源占用情況。一般在綜合和實現(xiàn)時,所有的屬性都采用默認值。上述介紹的是分別進行綜合和實現(xiàn),當工程源文件編寫好后,也可以點擊工具菜單中的綠三角圖標直接進行綜合和實現(xiàn)。
6.生成二進制文件
綜合、實現(xiàn)沒有任何問題后,雙擊圖2-12中的GenerateProgrammingFile,運行結束后,會在當前工程文件夾中生成與頂層文件同名的?.bit文件,如本例為simple.bit,這是可以用來配置FPGA的二進制文件。
7.文件配置與測試
有兩種方式配置FPGA,分別為Adept和iMPACT。
(1)使用Adept配置:連接開發(fā)板到PC并打開開發(fā)板上的電源,運行Adept,如圖2-13所示。圖2-12頂層文件圖2-13Adept配置FPGA使用Adept也有兩種配置方式:一種是直接配置FPGA,可配置的文件有?*.bit和?*.svf格式,這種方式掉電后再上電,會丟失開發(fā)板運行之前PROMXCF02S中配置的工程文件。另一種是配置到圖中的PROM中,可配置文件有?*.mcs,*.bit和?*.svf。配置之后,撥動SW開關,對應LD的狀態(tài)隨之改變,說明工程設計功能正確。采用配置到PROM的方式,掉電后信息不丟失,開發(fā)板再次上電后,仍然執(zhí)行本工程。
(2)使用iMPACT配置:使用iMPACT之前,必須按照2.1.2節(jié)中介紹的方式安裝DigilentPlugin插件。然后,在XilinxISE中,選擇“Tools”→“iMPACT…”,出現(xiàn)如圖2-14所示的基礎界面。雙擊“BoundaryScan”,然后選擇菜單中的“Output”→“CableSetup…”,出現(xiàn)圖2-14中的小界面,選擇“DigilentUSBJTAGCable”(不同版本界面有所不同,但都是選擇這種方式),如果板子正常連接并打開了電源,圖2-14中Port下會顯示所連接的開發(fā)板(若其中為空,說明連接不正常,需要斷開電源及USB電纜,然后重新連接USB電纜并接通電源,按照上述步驟重新初始化),選擇“OK”,然后右鍵單擊“BoundaryScan”界面,選擇“InitializeChain”初始化JTAG鏈。選擇“YES”?保存設置并選擇配置文件simple.bit(注意工程路徑是否是正在進行的工程路徑),出現(xiàn)如圖2-15所示界面,雙擊圖中的“Program”,配置燈(電源開關旁的紅燈)閃爍,說明正在將文件配置到FPGA中。
配置FPGA完成后,撥動開發(fā)板上任一SW,對應LD的狀態(tài)將發(fā)生變化,說明功能滿足設計要求。斷開電源,再次上電后,F(xiàn)PGA的配置信息丟失,此時FPGA的功能為Flash中存儲的功能。圖2-14iMPACT配置電纜初始化圖2-15確定配置方式并編程圖2-15中所示是直接配置FPGA,如果要將文件下載到圖2-13中的PROMXCF02S中,由于iMPACT配置PROM的文件必須為?*.mcs格式,而不能是?*.bit文件格式(Adept軟件可以)。因此,需要先生成?*.mcs文件。雙擊圖2-15iMPACTFlows窗口中的“CreatePROMFile(PROMFileForm…)”,出現(xiàn)如圖2-16所示界面。圖2-16PROMFileFormatter界面在圖2-16中,首先選擇設備類型為XilinxFlash/PROM,點第一個箭頭;然后,選Device(bits)為xcf02s,點“AddStorageDevice”;第三步點第二個箭頭后,確定“OutputFileLocation”中所示正確,填寫“OutputFileName”為“simple”,如圖2-16所示。點擊“OK”,出現(xiàn)如圖2-17所示窗口,點擊“OK”,在出現(xiàn)的界面中選擇已經(jīng)生成的simple.bit文件,出現(xiàn)圖2-18所示窗口,點擊“No”,出現(xiàn)圖2-19所示界面,然后雙擊“GenerateFile…”,則生成simple.mcs文件。圖2-17點擊“OK”按鈕圖2-18點擊“NO”按鈕圖2-19單擊“BoundaryScan”按鈕然后單擊圖2-19中的“BoundaryScan”,雙擊圖中右端的PROM,在出現(xiàn)窗口中選擇生成的simple.mcs文件,出現(xiàn)如圖2-20所示的基礎界面,點擊“Program”,出現(xiàn)圖中的配置操作進度條,同時開發(fā)板上的下載指示燈閃爍。由于配置非易失Flash時,是采用JTAG鏈路同時配置Flash與FPGA,因此,配置過程要比單獨配置FPGA慢很多。配置成功后,撥動開發(fā)板上任一SW,對應LD的狀態(tài)將發(fā)生變化,說明功能滿足設計要求。同時關閉開發(fā)板電源,再次上電后,F(xiàn)PGA仍然執(zhí)行剛才配置的功能,說明Flash下載成功。圖2-20基礎界面2.3.2閱讀設計報告
完成一個FPGA設計并進行了綜合、實現(xiàn)等步驟后,必須清楚設計是否是成功的。設計的功能正確,并不意味著這個設計就是成功的,成功的設計是指設計可以配置到確定的FPGA中并且滿足性能要求。具體講,就是要明確設計是否滿足FPGA面積目標和性能目標。要回答這些問題,就需要學會閱讀工程中的設計報告文件。
1.面積目標
面積目標需要回答以下三個問題:
●怎樣知道設計是否可以配置到FPGA?●怎樣知道FPGA具有多大空間實現(xiàn)邏輯?可以使用多大空間?
●如果設計可以配置到FPGA,是否能夠完整地布線?
這些問題都可以在工程設計報告中找到答案。在圖2-21所示的工程Processes中,可以看到許多的設計查看報告,比如,點擊圖中的FloorplanArea/IO/Logic(PlanAhead),可以查看布局布線以及I/O的分布;點擊圖中的最后一行,可以進行功率分析;點擊圖中的DesignSummary/Reports,會出現(xiàn)如圖2-22所示的設計總結報告。在圖2-22所示的設備利用率總結“DeviceUtilizationSummary”中,可以清楚地看到FPGA各部分資源使用了多少、剩余多少以及利用率;選擇圖中的“IOBProperties”,可以查看各個輸入輸出的標準、驅動、延時和時鐘偏移等信息。在“DetailedReports”中的“MapReport”和“PlaceandRouteReport”等文件中,可以查看報告的詳細內容。圖2-21工程Design窗口圖2-22設計總結報告
2.性能目標
性能目標主要是分析時間延遲參數(shù)是否合理,這部分內容相當復雜,詳細內容可閱讀參考文獻[15]~[22],多數(shù)文獻由Xilinx網(wǎng)上提供。下面簡單介紹兩個時序報告文件。
ISE中的時序分析器會產(chǎn)生兩個時序報告:Post-MapStaticTimingReport和Post-Place&RouteStaticTimingReport,由圖2-21可見,前者不會自動產(chǎn)生而后者可以。Post-MapStaticTimingReport也稱為邏輯級時序。點擊圖2-21中的“GeneratePost-MapStaticTiming”,點擊其下邊的“AnalyzePost-MapStaticTiming”,出現(xiàn)的窗口中有各種時序分析報告,由于本例中沒有邏輯電路,輸入直接到輸出,分析得到的延時如圖2-23所示,所有延時一致。對于復雜的邏輯設計,一般采用60/40規(guī)則(Arule-of-thumb經(jīng)驗法則),該規(guī)則是:如果邏輯延時在60%或以下,布線延時不超過40%,則設計是合理的。圖2-23延時通過查看報告中的延時信息百分比可以判斷設計的合理性,具體規(guī)則如下:
●延時小于60%,布局布線工具可以很容易地滿足時序約束條件;
●邏輯延時在60%~80%,布局布線時間將增加,使用高級約束選項可以滿足時序
要求;
●邏輯延時大于80%,可能無法滿足設計目標,需要改善綜合結果。
總之,Post-MapStaticTimingReport提供產(chǎn)生合理時序約束的信息,Post-Place&RouteStaticTimingReport告知設計時序約束是否得到滿足。
更多信息可以參考ISE的在線Help,也可以在的ProblemSolvers中查詢。
2.4*嵌入式系統(tǒng)開發(fā)
IEEE對于嵌入式系統(tǒng)的定義是:AnEmbeddedsystemisthedevicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants.在中國嵌入式系統(tǒng)領域,比較認同的嵌入式系統(tǒng)定義是:嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟、硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。這一概念是從應用角度出發(fā)來定義的,也是一種比較廣義的嵌入式系統(tǒng)定義。狹義理解的嵌入式系統(tǒng)一般具備以下特點:
(1)硬件應由嵌入式處理器作為基礎平臺;
(2)軟件應以嵌入式軟件作為運行平臺;
(3)嵌入在設備中,是其中的一個核心處理部件。
Xilinx的FPGA提供了實現(xiàn)嵌入式系統(tǒng)的軟、硬件平臺。2.4.1嵌入式開發(fā)套件EDK
EDK(EmbeddedDevelopmentKit)工具更加適合軟硬件的綜合設計,能很方便的搭建嵌入式系統(tǒng)平臺。對不同開發(fā)板進行嵌入式系統(tǒng)開發(fā),需要配置一些軟件包,比如,在Nexys3上開發(fā)嵌入式系統(tǒng),要配置BSB(BaseSystemBuilder)的支持文件,Nexys3BSB(Nexys3_BSB_Support_v_2_3.zip)支持包可以在Digilent官網(wǎng)下載[12]。BSB工具簡化了硬件、處理器選項、總線系統(tǒng)和IP選項的配置,還能自動生成存儲器映射和設計文件。
ISEDesignSuite的EmbeddedEdition和SystemEdition均包含嵌入式開發(fā)套件EDK。EDK包含工具套裝、利用Xilinx平臺FPGA的嵌入式PowerPC和/或MicroBlaze等軟處理器核、設計嵌入式應用所需的全部文檔和IP。
Xilinx為嵌入式應用提供了靈活的創(chuàng)新型開發(fā)套件。其中包括,Spartan-6FPGA嵌入式套件—該套件包含了進行高效嵌入式應用開發(fā)所需的可擴展開發(fā)板以及關鍵設計工具和IP核;Spartan-6FPGASP605評估套件—包含SP605開發(fā)板和Spartan-6LX45TFPGA(器件專用)的ISEDesignSuiteLogicEdition;Spartan-6FPGASP601評估套件
—包含SP601基本開發(fā)板和ISEDesignSuite:WebPACK版;Spartan-3ADSPS3D1800AFPGAMicroBlaze處理器版本——包含硬件、設計工具、IP和預驗證的參考設計,可以加快嵌入式開發(fā);入門套件Spartan-3ADSP1800AFPGA版本——是一款全面的開發(fā)套件,可加速DSP應用開發(fā)。
EDK的使用及基于Digilent實驗開發(fā)板的嵌入式系統(tǒng)開發(fā),很快將出版教材予以介紹。2.4.2嵌入式處理器簡介
Xilinx公司的嵌入式解決方案以精簡指令集計算機(ReducedInstructionSetComputer,RISC)為核心,涵蓋了系統(tǒng)硬件設計和軟件調試的各個方面,嵌入式內核分別為PicoBlaze、MicroBlaze、PowerPC和ARM核,其中PicoBlaze和MicroBlaze是可裁剪的軟核處理器[3]~[7],PowerPC為硬核處理器。Xilinx推出的Zynq-7000系列集成了雙ARMCortex-A9MPCore硬核,低端FPGA也可以嵌入ARM軟核。
1.PicoBlaze8位微控制器簡介
PicoBlaze最初命名為KCPSM,是Constant(K)CodedProgrammableStateMachine的縮寫,意為常量編碼可編程狀態(tài)機。KCPSM還有個別稱叫KenChapman’sPSM,KenChapman是Xilinx的微控制器設計者之一。
PicoBlaze是一款完全嵌入式8位RISC微控制器IP軟核,專為Spartan-6、Virtex-6以及較早的XilinxFPGA架構而精心優(yōu)化。該參考設計免費向Xilinx用戶提供,并配套提供簡便易用的代碼組合程序KCPSM6(或用于較早FPGA系列的KCPSM3)、圖形集成開發(fā)環(huán)境(IDE)、圖形指令集仿真器(ISS)以及VHDL源代碼和仿真模型[5]。
PicoBlaz的主要特性如下:
●支持Spartan-6、Virtex-6及較早的XilinxFPGA系列;
●超小尺寸,在Spartan-6和Virtex-6中僅有26個slices;
●多達4K個18位指令;
●在Virtex-6上能夠發(fā)揮高達240MHz的性能;
●全部通過FPGA實現(xiàn),無需外部組件;
●高度集成,可實現(xiàn)非時間關鍵性的狀態(tài)機;
●可預測的快速中斷響應。
PicoBlaze是用VHDL語言開發(fā)的小型8位軟處理器內核包,其匯編器是簡單的DOS可執(zhí)行文件KCPSM2.exe或KCPSM3.exe,用匯編語言編寫的程序經(jīng)過編譯后放入FPGA的塊RAM存儲器區(qū)。在XC3S500E的FPGA中,只用到了96個Silice,也就是只占用了5%的邏輯資源。PicoBlaze執(zhí)行一條命令需要2個時鐘周期,在Spartan3EStarterKit板上以50MHz時鐘為例,PicoBlaze也能達到25?MIPS的性能[4]。
KCPSM支持的類型有Virtex、Virtex-E、Spartan-II和Spartan-IIEFPGAs;KCPSM2支持的類型有Virtex-II,Virtex-IIProFPGAs;KCPSM3支持的類型有Spartan-3、Virtex-4、Virtex-II、Virtex-IIPro、Virtex-5、Spartan?-6和Virtex?-6FPGAs。
PicoBlaze提供49個不同指令,16個寄存器,256個直接或間接的可設定地址的端口,1個可屏蔽的速率為35?MIPS的中斷。它的性能超過了傳統(tǒng)獨立元器件組成的微處理器,而且成本低,使得PicoBlaze在數(shù)據(jù)處理和控制算法領域有著廣泛的應用前景。PicoBlaze結構和指令集等詳細內容參考PicoBlaze的數(shù)據(jù)手冊以及相關網(wǎng)站[3],[4]。
2.?MicroBlaze32位嵌入式處理器簡介
MicroBlaze是一個32位軟處理器核,支持CoreConnect總線標準,時鐘頻率可達
150MHz。MicroBlaze是被Xilinx公司優(yōu)化過的可以嵌入在FPGA中的RISC處理器軟核,具有運行速度快、占用資源少、可配置性強等優(yōu)點,廣泛應用于通信、軍事和高端消費市場等領域。
1)?MicroBlaze的體系結構
MicroBlaze是基于Xilinx公司FPGA的微處理器IP核,可以實現(xiàn)片上可編程系統(tǒng)(System-On-Programmable-Chip,SOPC)的設計。MicroBlaze處理器采用RISC和哈佛結構,具有32位指令和數(shù)據(jù)總線,具有指令和數(shù)據(jù)緩存。MicroBlaze有32個32位通用寄存器,2個32位特殊寄存器—PC指針和MSR狀態(tài)標志寄存器,3個操作數(shù)和2種尋址模式。指令按功能劃分有邏輯運算、算術運算、分支、存儲器讀/寫和特殊指令等。指令執(zhí)行采用取指、譯碼和執(zhí)行3級流水線技術。
MicroBlaze處理器具有8個輸入和8個輸出快速單一鏈路(FastSimplexLink,F(xiàn)SL)單向接口。FSL通道是專用于單一方向的點到點的數(shù)據(jù)流傳輸接口。FSL和MicroBlaze的接口寬度是32位。每一個FSL通道都可以發(fā)送和接收數(shù)據(jù)。
2)?CoreConnect技術
CoreConnect是由IBM開發(fā)的片上總線通信鏈,包括處理器本機總線(PLB),片上外圍總線(OPB),1個總線橋,2個判優(yōu)器以及1個設備控制寄存器(DCR)總線。Xilinx將為所有嵌入式處理器用戶提供IBMCoreConnect許可,因為它是所有Xilinx嵌入式處理器設計的基礎。MicroBlaze處理器使用了與IBMPowerPC相同的總線。雖然MicroBlaze軟處理器完全獨立于PowerPC,但它讓設計者可以選擇芯片上的運行方式,包括一個嵌入式PowerPC,并共享它的外設。
(1)片上外設總線(OPB)。內核通過片上外設總線(OPB)來訪問低速和低性能的系統(tǒng)資源。OPB是一種完全同步總線,它的功能處于一個單獨的總線層級,并不是直接連接到處理器內核的。OPB接口提供獨立的32位地址總線和32位數(shù)據(jù)總線。處理器內核可以借助“PLBtoOPB”橋,通過OPB訪問外設。作為OPB總線控制器的外設可以借助“OPBtoPLB”橋,通過PLB訪問存儲器。
(2)處理器本機總線(PLB)。PLB接口為指令和數(shù)據(jù)一側提供獨立的32位地址和64位數(shù)據(jù)總線(讀寫各32位)。PLB支持具有PLB總線接口的主機和從機通過PLB信號連接來進行讀寫數(shù)據(jù)??偩€架構支持多主從設備。每一個PLB主機通過獨立的地址總線、讀數(shù)據(jù)總線和寫數(shù)據(jù)總線與PLB連接。PLB從機通過共享地址總線、讀數(shù)據(jù)總線和寫數(shù)據(jù)總線與PLB連接,對于每一個數(shù)據(jù)總線都有一個復雜的傳輸控制和狀態(tài)信號。為了允許主機通過競爭來獲得總線的所有權,有一個中央判決機構來授權對PLB的訪問。
(3)設備控制寄存器總線(DCR)。設備控制寄存器總線(DCR)是為在CPU通用寄存器(GPRs)和DCR的從邏輯設備控制寄存器(DCRs)之間傳輸數(shù)據(jù)而設計的。
3)?MicroBlaze的開發(fā)
應用EDK(嵌入式開發(fā)套件)可以進行MicroBlazeIP核的應用開發(fā)。EDK中提供了一個集成開發(fā)XPS(XilinxPlatformStudio)圖形界面,以便使用系統(tǒng)提供的所有工具,完成嵌入式系統(tǒng)開發(fā)的整個流程。EDK中還帶有一些外設接口的IP核,如LMB、OPB總線接口、外部存儲控制器、SDRAM控制器、UART、中斷控制器和定時器等。利用這些資源,可以構建一個較為完善的嵌入式微處理器系統(tǒng)。
在FPGA上設計的嵌入式系統(tǒng)層次結構為5級。在最低層硬件資源上開發(fā)IP核,利用已開發(fā)的IP核搭建嵌入式系統(tǒng)的硬件部分,開發(fā)IP核的設備驅動、應用接口(API)和應用層(算法)。
EDK中提供的IP核均有相應的設備驅動和應用接口,使用者只需利用相應的函數(shù)庫,就可以編寫自己的應用軟件和算法程序。對于用戶自己開發(fā)的IP核,需要自己編寫相應的驅動和接口函數(shù)。
3.?PowerPC嵌入式處理器簡介
PowerPC是一種RISC架構的CPU,其基本的設計源自IBM的POWER(PerformanceOptimizedWithEnhancedRISC)架構。
PowerPC處理器應用范圍廣泛,小到消費類電子設備,大到超級計算機。包括從諸如Power4的高端服務器CPU到嵌入式CPU市場(任天堂的Gamecube使用了PowerPC)。PowerPC處理器具有優(yōu)異的性能、較低的能量損耗以及散熱量。
PowerPC有32個32位或64位GPR(通用寄存器),以及諸如PC(程序計數(shù)器,也稱為IAR/指令地址寄存器或NIP下一指令指針)、LR(鏈接寄存器)、CR(條件寄存器)等各種寄存器。有些PowerPCCPU還有32個64位浮點寄存器FPR。
IBMPowerPC440和405處理器內核是32位的RISCCPU硬模塊,它們被設計到Virtex系列FPGA架構內來實現(xiàn)高性能嵌入式應用。具有集成式協(xié)處理能力的硬PowerPC核組合實現(xiàn)了大量的性能優(yōu)化選項。帶有先進CPU/APU控制器和高帶寬縱橫交換機的Virtex-5FXTFPGA支持PowerPC440處理器??v橫交換機可以實現(xiàn)高吞吐量128位接口和點到點連接功能。集成式DMA通道、專用存儲器接口以及處理器本地總線(PLB)接口可以減少邏輯利用率、降低系統(tǒng)延遲并優(yōu)化性能。同步I/O和存儲器訪問將數(shù)據(jù)傳輸速率最大化。
PowerPC405得到了Virtex-4和Virtex-IIPro系列的支持,并整合了標量5級流水線、獨立指令和數(shù)據(jù)緩存、1個JTAG端口、跡線FIFO、多個定時器和1個內存管理單元(MMU)。在Virtex-IIPro內使用PowerPC405處理器需要ISEDesignSuite軟件10.1.03版或更早的版本。
基于FPGA的嵌入式系統(tǒng),將在網(wǎng)絡、通信、消費類產(chǎn)品等多方面有著廣闊的應用前景。
4.?ARM核
ARM的Cortex-M0是32位RISC處理器,指令只有56個,執(zhí)行Thumb指令集,包括少量使用Thumb-2技術的32位指令。該處理器可實現(xiàn)中斷現(xiàn)場自動保存,具有極低的進入與退出中斷的軟件開銷,確定的指令執(zhí)行時間。在功耗與面積高度優(yōu)化方面,該處理器適合應用于低成本、低功耗場合。Cortex-M0將很快在XilinxFPGA中得到應用。
Xilinx新型7系列FPGAZynq-7000EPP是一款面向嵌入式系統(tǒng)的低成本、高靈活性的可擴展處理平臺,它將ARM雙核Cortex-A9、MPCore處理器與Xilinx28nm可編程邏輯完美地結合在一起,既提供了微處理器軟件可編程的易用性,同時也提供了FPGA硬件可編程的靈活性。
2.5硬件描述語言
硬件描述語言(HardwareDescriptionLanguage,HDL)是用文本形式來描述數(shù)字電路的內部結構和信號連接關系的一類語言,類似于一般的計算機高級語言的語言形式和結構形式。設計者可以利用HDL描述要設計的電路,然后利用EDA工具進行綜合(把HDL描述的系統(tǒng)轉化成硬件電路信息)和仿真(模擬檢測),最后形成目標文件,下載到PLD實現(xiàn)設計的電路。使用HDL可以從上層到下層(從抽象到具體)逐層描述數(shù)字電路系統(tǒng),用一系列分層次的模塊來表示十分復雜的數(shù)字系統(tǒng)。硬件描述語言非常適合用于復雜的數(shù)字系統(tǒng)設計。硬件描述語言已有近三十年的發(fā)展歷史,成功地應用于數(shù)字系統(tǒng)開發(fā)的設計、仿真、綜合和驗證等各階段,使設計過程達到高度自動化。20世紀80年代,已出現(xiàn)了上百種硬件描述語言,它們各有所長,但眾多的語言令使用者無所適從。因此,需要一種面向設計的多領域、多層次和普遍認同的標準硬件描述語言。20世紀末,VHDL和VerilogHDL語言符合這種要求,先后成為IEEE標準。此后,新的硬件描述語言不斷推出,像Superlog、SystemC、CynlibC++?和CLevel等。
VHDL的全稱為“超高速集成電路硬件描述語言”(Very-high-speedintegratedcircuitHardwareDescriptionLanguage),1987年被IEEE確認為標準硬件描述語言。自IEEE公布了VHDL的標準版本IEEE-1076-1987后,各種VHDL設計環(huán)境、設計工具和VHDL接口被相繼推出。1993年,IEEE修訂了VHDL,從更高的抽象層次和系統(tǒng)描述能力上擴展了VHDL的內容,公布了IEEE標準的1076-1993版本。與VerilogHDL相比,VHDL語言具有更強的行為描述能力,豐富的仿真語句和庫函數(shù),語法嚴格,書寫規(guī)則較繁瑣,入門較難。
VerilogHDL于1995年被IEEE確認為標準硬件描述語言,即VerilogHDL1364-1995;2001年發(fā)布了VerilogHDL1364-2001標準。在這個標準中,加入了VerilogHDL-A標準,使Verilog有了模擬設計描述的能力。VerilogHDL更適合RTL(RegisterTransferLevel)和門電路的描述,是一種可描述較低設計層次的語言,故較為容易控制電路資源,常用在專業(yè)的集成電路設計上。VerilogHDL具有C語言的描述風格,是一種較容易掌握的語言,語法自由,初學者容易出錯。
VerilogHDL和VHDL的共同的特點是:能抽象表示電路的行為和結構,支持邏輯設計中層次與范圍的描述,可借用高級語言的精巧結構來簡化電路行為的描述,具有電路仿真與驗證機制以保證設計的正確性,支持電路描述由高層到低層的綜合轉換,硬件描述與實現(xiàn)工藝無關,便于文檔管理,易于移植等。但VHDL對大小寫不敏感,VerilogHDL對大小寫敏感。VHDL的注釋為?-?-,Verilog的注釋與C語言相同,為?//?或?/**/。
HDL可用于系統(tǒng)仿真和硬件實現(xiàn)。如果描述語言程序只用于仿真,那么幾乎所有的語法和編程方法都可以使用。如果程序是用于硬件實現(xiàn),就必須保證程序“可綜合”,即程序的功能可以用硬件電路實現(xiàn)。不可綜合的HDL語句在軟件綜合時將被忽略或者報錯。所有HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件實現(xiàn)。
與原理圖輸入法相比,HDL的可移植性好,使用方便;原理圖輸入的可控性好,效率高,比較直觀。使用CPLD/FPGA設計復雜系統(tǒng)時,一般采用原理圖和HDL結合的方法。
兩種HDL語言可以任選一種自學,學會其中之一,另一種也很容易掌握。雖然本書實例一般涉及到兩種HDL,但建議讀者學精一種。下面對兩者做最基礎的介紹。2.5.1VHDL簡介
VHDL源文件一般包括庫(library)、實體(entity)和結構體(architecture)三部分。一個簡單邏輯門電路的VHDL程序結構如圖2-24所示。圖2-24VHDL的程序結構第一句的library是關鍵詞(所有關鍵詞不區(qū)分大小寫,關鍵詞一般顯示為藍色),libraryieee表示打開IEEE庫;第二句的use也是關鍵詞,useieee.std_logic_1164.all表示允許使用IEEE庫中的std_logic_1164的所有內容,如變量類型定義、函數(shù)、過程、常量等。由于例子中的STD_LOGIC類型定義在STD_LOGIC_1164的程序包中,此包由IEEE定義,而且此程序包所在的程序庫的庫名也稱為IEEE,但IEEE庫不屬于VHDL標準庫,所以在使用其庫中內容前,必須事先給予聲明。
使用庫和程序包的格式是:
LIBRARY<設計庫名>;
USE<設計庫名>.<程序包名>.ALL;實體以關鍵詞entity(不區(qū)分大小寫)開始,由endentity或end結束(IEEESTD1076_1987的語法)。實體描述電路器件的外部特性,給電路一個命名以及定義所有輸入和輸出端口的基本性質。斜體部分是需要用戶命名的。
結構體以關鍵詞architecture引導,以endarchitecture或end結束(IEEESTD1076_1987的語法)。結構體描述電路器件的內部邏輯功能或電路結構。上述例子中的實體名為circuit_name,具體取名由設計者自定。最好根據(jù)相應電路的功能來確定,如4位二進制計數(shù)器,實體名可取為counter4b;8位二進制加法器,實體名可取為adder8b等。需要特別注意的是,一般不用數(shù)字打頭或中文定義實體名,也不能用EDA工具庫中已定義好的元件名作為實體名,如or2、latch等。
實體中的PORT語句描述電路的端口及端口模式??删C合的端口模式有4種,分別為IN、OUT、INOUT和BUFFER,用于定義端口上數(shù)據(jù)的流動方向和方式,具體描述如下:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年東臺市市級機關公開轉任公務員備考題庫及1套參考答案詳解
- 2025年梓潼縣公開考核招聘衛(wèi)生專業(yè)技術人員26人備考題庫及答案詳解參考
- 2025年懷化市老齡協(xié)會招聘招募備考題庫有答案詳解
- 2025年崇州市人民醫(yī)院醫(yī)共體成員單位自主招聘(補充招聘)備考題庫及完整答案詳解1套
- 2025年湘潭市九華中學(長沙市一中九華中學)代課教師招聘備考題庫及完整答案詳解1套
- 福建省能源石化集團有限責任公司2025年秋季招聘備考題庫及參考答案詳解1套
- 湖南時空信息安全檢測服務有限公司2025年面向社會公開招聘備考題庫及一套參考答案詳解
- 簡約商務風年度工作總結匯報
- 2025年中國煤炭地質總局應屆高校畢業(yè)生招聘467人備考題庫及參考答案詳解一套
- 手繪水彩中國風二十四節(jié)氣立秋科普模板
- 泌尿系統(tǒng)疾病總論
- 勞動仲裁授課課件
- 新工廠工作匯報
- 山西低空經(jīng)濟發(fā)展現(xiàn)狀
- 汽車電子工程師崗位面試問題及答案
- 錢乙完整版本
- HXN5型機車柴油機的結構特點柴油機84課件
- 高速公路維修施工方案與措施
- 紡織品的物理化學性質試題及答案
- 發(fā)改價格〔2007〕670號建設工程監(jiān)理與相關服務收費標準
- 高空作業(yè)吊板施工方案
評論
0/150
提交評論