為減少在印制電路板(PCB)設計中的面積開(kāi)銷(xiāo),介紹一種Flash結構的現 場(chǎng)可編程門(mén)陣列(FPGA)器件,進(jìn)而介紹采用該器件搭建基于先進(jìn)精簡(jiǎn)指令集機器(ARM)的片上系統(SOC)電路的設計方法,該方法按照高級微控制器總線(xiàn)架構(AMBA),設計ARM7處理器微系統及其外設電路,通過(guò)用搭建的系統對片外存儲器進(jìn)行擦寫(xiě),以及通過(guò)編寫(xiě)軟硬件代碼定制符合ARM7外圍低速總線(xiàn)協(xié)議的用戶(hù)邏輯外設,驗證了系統的準確性,該系統可用于驗證SOC設計系統。 近年來(lái),SOC技術(shù)得到了快速的發(fā)展,逐漸 成為微電子行業(yè)的主流。SOC稱(chēng)為系統級芯片,是一個(gè)有專(zhuān)用目標的集成電路,能集成數字電路、硬件專(zhuān)用電路、存儲器、微處理器等多種異構模塊,實(shí)現多個(gè)復雜的應用功能,具有速度快、集成度高、功耗低、開(kāi)發(fā)周期短等優(yōu)點(diǎn)。 隨著(zhù)集成電路速度的加快和設計復雜性提高,新的技術(shù)不斷被引進(jìn),國內外相繼開(kāi)展了SOC技術(shù)及器件的研究,其中一個(gè)顯著(zhù)的特點(diǎn)就是將SOC的可靠性和低成本與FPGA的靈活性等優(yōu)勢結合起來(lái),在業(yè)界中知名的FPGA芯片公司中,如Ahera公司的Cyclone V和A1Tia V系列引,Xilinx公司的Zynp系列,Actel公司的M7A3P1000,其都內嵌了ARM微處理器,在邏輯設計、片上系統中都有廣泛的應用。 本文選用Actel公司的FPGA器件,型號為M7A3P1000,采用該器件對SOC進(jìn)行設計驗證。該器件采用Flash結構,相比于采用靜態(tài)隨機存儲器(SRAM)結構的Ahera和Xilinx公司的FPGA器件,其下載的程序在掉電后不丟失,因此不需專(zhuān)用的配置芯片,故在PCB設計中可降低設計的復雜度,減少面積的開(kāi)銷(xiāo)。此外,該器件所具有的的 加密功能,可有效的保護知識產(chǎn)權。設計中,首先在該芯片中搭建基于A(yíng)RM7的SOC系統,最后用兩種方法驗證該SOC系統的正確性:一是用該系統對片外存儲器進(jìn)行擦寫(xiě)操作;二是用該系統測試用戶(hù)定制邏輯外設。 1 系統原理 在SOC設計中,常見(jiàn)的架構都是以微處理器或數字信號處理器(DSP)為中心,加上存儲器,外設等,再通過(guò)片上總線(xiàn)把處理器和外設進(jìn)行互連,本設計采用的FPGA型號為M7A3P1000芯片,因其內嵌一個(gè)基于A(yíng)MBA總線(xiàn)架構、且完全兼容ARM7微處理器,故可以在非常低的功耗下安全、可靠地運行。上述的AMBA總線(xiàn)架構,是ARM公司設計的一種高性能嵌入式系統總線(xiàn)的標準,因其具有的高速度、低功耗等特點(diǎn),故其在SOC設計中已被廣泛采用,典型的基于A(yíng)MBA架構的SOC核心部分如圖1。 由圖1中可看出,AMBA規范中定義了兩種不同類(lèi)型的總線(xiàn):先進(jìn)的高速總線(xiàn)(AHB)、先進(jìn)的系統總線(xiàn) (ASB)和先進(jìn)的外圍總線(xiàn)(APB)。其中AHB適用于高性能和高時(shí)鐘頻率的系統模塊,主要用于高性能和高吞吐量設備之間的連接,如片上存儲器、DSP、直接存儲器訪(fǎng)問(wèn)(OMA)、高速片外存儲器控制器(該部件用于連接片外存儲器Flash和SRAM)等設備;ASB和AHB屬同一功能類(lèi)型總線(xiàn),只不過(guò)AHB總線(xiàn)是ASB總線(xiàn)的升級版,增強了對性能、綜合及時(shí)序驗證的支持;APB總線(xiàn)主要用于連接低速、低帶寬的外圍器件,如集成電路總線(xiàn)(IIC)接口、計數器(Timer),通用輸入輸出(GPIO)、通用異步收發(fā)器(UART)等。下文將以此架構,進(jìn)行SOC設計。 圖1 AMBA架構的SOC核心部分 2 系統設計 2.1 SOC設計流程 采用Aetel公司的Libero IDE 8.6集成開(kāi)發(fā)環(huán)境,設計基于A(yíng)RM7的SOC.SOC包括硬件和軟件設計兩部分,在硬件設計中,一般將系統經(jīng)行分模塊設計,之后針對各模塊功能,逐個(gè)進(jìn)行功能驗證,待各模塊功能準確后,依據總線(xiàn)架構,組成要設計的目標系統,最后通過(guò)軟硬件協(xié)同調試,證明系統功能的完備性。其SOC設計的主要流程如圖2。 在圖2顯示的SOC設計流程中,若要設計一個(gè)模塊或系統,首先對其進(jìn)行功能/需求分析,下來(lái)針對虛線(xiàn) 框內的步驟, 其中步驟HDL-Editor,User-Testbeneh.ModelsimSimulator,可用于模塊的設計、功能仿真,若再增加步驟Synthesis,Compile,Layout,Programming Genetation,可對所設計的模塊進(jìn)行實(shí)際驗證,待各模塊功能驗證準確后,就可以依據指定的互連結構組成系統,然后結合相應的軟件代碼,進(jìn)行系統功能調試、驗證。 圖2 SOC設計的主要流程 2.2 SoC設計搭建 本文采用在Libero IDE 8.6集成開(kāi)發(fā)環(huán)境中內嵌的Coreconsole軟件8,搭建基于A(yíng)RM7的SOC系統,搭建的系統如圖3所示。 圖3 基于A(yíng)RM7的SOC系統 如圖3所示,在Coreeonsole環(huán)境中搭建的系統,包括總線(xiàn),微處理器,外圍器件,以及驅動(dòng)和頂層端口,其中1)CoreMP7:32/16位精簡(jiǎn)指令集架構處理器、支持32位ARM指令和16位Thumb指令、三級流水線(xiàn),32位即4G尋址范圍等;2)CoreMP7Bridge:橋接器,連接CoreMP7 和CoreAHB,它將CoreMP7處理器發(fā)出的信號轉換成一個(gè)適合AHB總線(xiàn)連接的信號,且包含一組聯(lián)合測試行動(dòng)小組(JTAG)信號接口,JTAG接口用于下載程序和軟件調試。3)CoreAHBLite:先進(jìn)的高速總線(xiàn),一般連接DMA、DSP、SRAM等設備。包含16個(gè)AHB從器件節點(diǎn),每個(gè)從器件依次占有256MB地址空間,在本設計中,片外的Flash和SRAM分別連接在節點(diǎn)0和節點(diǎn)1上。2.1部分中用到的片外Flash就是通過(guò)外部存儲器接口連接在節點(diǎn)0上,故其基地址是Ox00000000;4)CoreMemCtrl:外部存儲器控制器,用于連接片上系統與外部寄存器,如對片外Flash、SRAM進(jìn)行讀寫(xiě)訪(fǎng)問(wèn);5)CoreAHBtoAPB:橋接器。連接CoreAHB和CoreAPB;6)CoreAPB:先進(jìn)的外圍總線(xiàn),一般連接UART、GPIO、IIC等外設。包含16個(gè)APB從器件節點(diǎn),每個(gè)從器件依次占有16MB地址空間,地址計算公式是:物理地址=基地址+偏移地址。7)驅動(dòng)和頂層端口包括:16 MHz系統時(shí)鐘SYSCLK;系統低電平復位端口NSYSRESET,程序下載和調試端口JTAG,外部存儲器連接端口ExtemalMomopyInterthce,串口通信接口等,圖中底色為灰色的是一般的輸入輸出(PIO)模塊,該模塊的設計和驗證將在3.2部分詳細說(shuō)明。至此,文中介紹了基于A(yíng)MBA總線(xiàn)架構的SOC中涉及到的時(shí)鐘、復位、總線(xiàn)、微處理器、外部存儲器及外圍輸入輸出端口,即最小系統框架,在圖3中清晰地確定了SOC系統的互連結構,實(shí)現了各模塊之間的通信功能。 3 實(shí)際驗證 下面將對所搭建的SOC系統進(jìn)行驗證,通過(guò)對系統翻譯、編譯、綜合、分配管腳、生成下載文件,最后將下載文件燒寫(xiě)到FPGA片中。為驗證該系統的準確性,本設計采用兩種方法對其進(jìn)行測試驗證,詳細過(guò)程見(jiàn)3.1和3.2部分。 3.1 搭建的系統對片外Flash的擦寫(xiě)操作 本測試主要是在已經(jīng)搭建好的SOC系統的基礎上,在外部存儲器控制器接口連接外部存儲器Flash,通過(guò)能否對Flash進(jìn)行正常的擦寫(xiě)操作來(lái)驗證系統的準確性,測試選用的片外Flash芯片型號Numonyx公司是28F640J3D,它是64M的16位只讀存儲器,分配的基地址是Ox00000000,由于該芯片16位模式的訪(fǎng)問(wèn)特性,地址線(xiàn)0位拉低不予鏈接,其余地址線(xiàn)管腳依次連接到頂層外部寄存器控制器的地址端口。 FS2是一款集合了大量指令和可用軟件、用以調試基于A(yíng)RM的SOC系統內核的工具,利用該工具對片外Flash進(jìn)行配置和擦寫(xiě)操作,來(lái)驗證系統的準確性。測試首先對片外Flash進(jìn)行配置,進(jìn)而對指定存儲空間進(jìn)行擦除操作,然后對該存儲空間進(jìn)行寫(xiě)操作,最后觀(guān)察此存儲空間中的數據,具體過(guò)程如圖4所示。 在圖4中顯示的是FS2工具的用戶(hù)界面,設計中用到的八條指令,分別是:1>、2>、3>……8>,其中指令1>、2>用來(lái)配置片外Flash芯片;指令3>用來(lái)選擇將要擦寫(xiě)的存儲空間,由圖中可知,本設計中要進(jìn)行的讀寫(xiě)操作 的存儲空間是Ox00000000-0x003FFFFF;指令4>用來(lái)對Flash指定的存儲空間進(jìn)行擦除操作;指令5>用來(lái)把已經(jīng)準備好的二進(jìn)制文件寫(xiě)到上述存儲空間中,設計中使用的二進(jìn)制文件名是QUICK.HEX;指令6>是用來(lái)顯示指定存儲空間中的內容,從圖中可看出,寫(xiě)到存儲空間Ox00000000-0x0000003F的內容是18、FO、9F……、12、E3;指令7>執行對上述存儲空間寫(xiě)入的數據的擦除操作;指令8>顯示上述存儲單元擦除后的內容。 圖4 片外Flash的擦寫(xiě)演示過(guò)程 通過(guò)對上述過(guò)程的分析可知,所搭建的SOC系統可準確實(shí)現片外Flash的擦寫(xiě)操作,進(jìn)而說(shuō)明了該系統的準確性。 3.2 搭建的系統對外設接口的讀寫(xiě)操作 本測試在遵循ARM7先進(jìn)外圍總線(xiàn)APB的讀寫(xiě)時(shí)序的前提下,定制用戶(hù)邏輯外設PIO,通過(guò)該系統對PIO接口進(jìn)行讀寫(xiě)操作來(lái)進(jìn)一步驗證設計的準確,驗證中的用到的APB總線(xiàn)的讀寫(xiě)時(shí)序如圖5。 圖5 APB總線(xiàn)的讀寫(xiě)時(shí)序 下面將主要遵循系統中先進(jìn)的外圍總線(xiàn)APB的讀寫(xiě)時(shí)序,首先采用硬件描述語(yǔ)言和C代碼,定制八位的用戶(hù)邏輯外設PIO,然后將PIO的輸入端口接到開(kāi)關(guān)Switch0一Switch7,輸出端口接到八個(gè)發(fā)光二極管Led0一Led7,通過(guò)軟硬件調試,使八位開(kāi)關(guān)的輸入電平顯示到八個(gè)發(fā)光二極管上,以此來(lái)進(jìn)一步驗證設計中搭建的SOC系統的準確,針對上述過(guò)程及要求,為了更直觀(guān)地展示驗證結果,制作了簡(jiǎn)單的實(shí)驗板,當開(kāi)關(guān)鍵在高電平時(shí),發(fā)光二極管變亮,否則,發(fā)光二極管不亮。其中定制用戶(hù)邏輯外設的主要步驟如下: 1)規劃元件的硬件功能; 2)使用硬件描述來(lái)描述硬件邏輯; 3)單獨驗證元件的硬件功能; 4)描述寄存器的C頭文件來(lái)為軟件定義硬件寄存器映像; 5)將元件集成到ARM7系統中,使用ARM7來(lái)測試寄存器的訪(fǎng)問(wèn)是否正確,并為該元件編寫(xiě)軟件驅動(dòng); 6)執行系統級的驗證等。 圖6是在A(yíng)etel公司的調試軟件Sofleonsole和實(shí)驗板上的實(shí)際調試結果。 圖6 調試結果 由圖6顯示的調試結果可知,八位開(kāi)關(guān)Switeh0-Switeh7的輸入分別是11001011和11100101,這個(gè)和八個(gè)發(fā)光二極管Led0-Led7的輸出結果一致,由此進(jìn)一步驗證了設計的準確性。 4 結束語(yǔ) 本文通過(guò)對基于A(yíng)RM7的SOC系統的設計,介紹了一種Flash結構的FPGA器件及其片上系統的設計方法,進(jìn)而給出了兩種驗證該片上系統準確性的方法,通過(guò)實(shí)際驗證,該系統不僅能準確進(jìn)行片外存儲器的擦寫(xiě),而且可以準確進(jìn)行外設接口的讀寫(xiě)的操作,由此驗證了設計的準確性。文中所搭建SOC系統,可以與符合ARM公司的AHB2.0協(xié)議的北斗基帶芯片無(wú)縫連接,在北斗接收機的設計、測試中有重要的參考價(jià)值。 |
輕松就業(yè),高薪實(shí)習,讓眾多有志往單片機PLC、ARM/嵌入式系統、Linux、FPGA方向發(fā)展的朋友迅速提升職業(yè)技能, 經(jīng)過(guò)系統提升后,保證就業(yè)5-10K.更多疑問(wèn)咨詢(xún)深圳信盈達:Q483059208 13083712301袁老師! |