• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SoC FPGA的MIPS處理器驗證平臺設計

      2017-03-15 17:11:20張偉梁蓓
      電子技術(shù)與軟件工程 2017年2期
      關(guān)鍵詞:驗證

      張偉+梁蓓

      摘 要 隨著集成電路制程工藝的迅猛發(fā)展,數(shù)字集成電路復雜度越來越高,這對集成電路的驗證帶來了嚴峻挑戰(zhàn)。相比軟件仿真,數(shù)字芯片采用FPGA進行邏輯驗證,可以大大提高驗證的速度。近年來,SoCFPGA的出現(xiàn)對于驗證平臺的設計提供了一種新的啟發(fā)。本文提出一種基于SoCFPGA的MIPS處理器驗證平臺的設計。采用ZYNQ芯片中的ARM主處理器實時控制監(jiān)測MIPS從處理器的運行狀態(tài),來達到驗證MIPS處理器的目的。同時ARM主處理器運行Linux操作系統(tǒng),在不需要斷電重新配置的情況下,通過執(zhí)行不同的C程序?qū)崿F(xiàn)不同功能的驗證,大大提高了MIPS處理器的驗證效率。

      【關(guān)鍵詞】驗證 SoCFPGA MIPS ARM

      1 引言

      隨著集成電路制程工藝水平的不斷提高,在現(xiàn)代集成電路設計中,ASIC芯片的復雜程度與集成規(guī)模與日俱增,這為ASIC芯片的驗證過程帶來了嚴峻的挑戰(zhàn)。芯片驗證的目的是為了保證電路的邏輯功能與性能滿足設計要求,其貫穿了整個芯片的設計過程。保證一次性流片成功,是芯片驗證的最高目標,如果流片失敗,不但會造成昂貴的流片費用損失,還會造成產(chǎn)品的推遲上市。整個芯片設計周期中,芯片驗證已經(jīng)占70%以上。這些因素都證明了芯片驗證的極其重要性,實現(xiàn)高效且低成本的驗證顯得尤為重要。目前大多數(shù)模塊的邏輯仿真主要采用加入工藝庫的軟件仿真,而系統(tǒng)級的芯片邏輯驗證由于電路規(guī)模較大,軟件仿真的速度與覆蓋率已經(jīng)不能滿足設計周期要求。FPGA(Field-Programmable Gate Array),在ASIC芯片邏輯驗證過程中是一種很有效的補充。由于FPGA的可重配置性,降低了流片失敗可能帶來的損失,加快了驗證速度。

      近年來,Xilinx推出了新一代嵌入ARM硬核的SoC FPGA—ZYNQ系列,相比傳統(tǒng)FPGA中使用軟核通用處理器性能提高很多,且不占用FPGA有限的邏輯資源和布局布線資源。本文利用ZYNQ芯片中嵌入ARM硬核的優(yōu)勢,提出了一種基于SoC FPGA的驗證平臺,通過使用ARM處理器做為主處理器,MIPS處理器作為從處理器,從而來對MIPS處理器設計過程進行驗證。

      2 ZYNQ簡介

      ZYNQ-7000是Xilinx推出的新一代全可編程片上系統(tǒng)(All Programmable SoC),其中我們采用的ZC706開發(fā)套件的ZYNQ芯片包含一顆可配置的雙核ARM Cortex A9處理器(Processing System,PS部分),和基于28nm工藝的Xilinx FPGA(Programmable Logic,PL部分),我們將其稱為SoC FPGA。其中PS部分可以用于通用型流水線計算,由于其已經(jīng)集成在芯片上,不需要占用FPGA的邏輯資源和布局布線資源,而且性能很高。PL部分可以用于實現(xiàn)某些特殊算法的硬件加速與硬件擴展,PL部分可以實現(xiàn)并行計算,能夠比通用處理器快6-8個數(shù)量級以上,而且PL部分的可重構(gòu)性,能夠靈活實現(xiàn)各種特殊算法的硬件加速。PS部分與PL部分通過芯片內(nèi)AMBA總線實現(xiàn)連接,帶寬很高,滿足了某些苛刻環(huán)境下的帶寬要求。

      3 MIPS處理器驗證平臺設計

      本文提出一種基于SoC FPGA(Xilinx ZYNQ)的MIPS處理器驗證平臺的設計。將PS部分的ARM處理器作為主處理器,MIPS處理器在PL部分實現(xiàn),其中ARM處理器上移植Linux操作系統(tǒng),配置交叉編譯環(huán)境,在運行過程中ARM處理器實時監(jiān)控MIPS處理器的工作狀態(tài),以此達到驗證MIPS處理器功能的目的。

      3.1 基于SoC FPGA的原型系統(tǒng)驗證架構(gòu)

      基于SoC FPGA的原型系統(tǒng)驗證架構(gòu)如圖1,整體架構(gòu)的設計思想如下:

      (1)首先上電后MIPS處理器處于復位狀態(tài)。ARM主處理器通過AXI-Lite接口,將MIPS處理器運行過程中所需要的指令和初始化數(shù)據(jù),從系統(tǒng)內(nèi)存寫入到Distributed RAM中。

      (2)寫入完成后,ARM主處理器通過AXI-Lite接口,寫入MIPS處理器啟動命令,結(jié)束MIPS 處理器的復位狀態(tài)。MIPS處理器開始從Distributed RAM中讀取指令和數(shù)據(jù)。

      (3)MIPS處理器執(zhí)行指令過程中,ARM主處理器將輪詢MIPS處理器的結(jié)束標志。MIPS處理器完成所有指令執(zhí)行后,將設置結(jié)束標志(Distributed RAM的固定地址)。

      (4)ARM處理器將計算結(jié)果從Distributed RAM中讀回到系統(tǒng)內(nèi)存,并打印到串口終端,從而能夠在屏幕上實時監(jiān)測MIPS處理器運行狀態(tài)。

      3.2 AXI-Lite總線接口模塊設計

      ARM主處理器發(fā)出的指令能夠在AXI-Lite Slave接口完成譯碼,根據(jù)ARM發(fā)出的讀寫請求對Distributed RAM進行操作。要求其能夠支持以下地址空間的尋址:AXI-Lite接口可尋址的范圍為0x00000000 – 0x00003FFF (16KB),其中包括8KB Distributed RAM空間,地址范圍為:0x00000000 – 0x00001FFF,并且在AXI-Lite接口模塊中加入一個1-bit寄存器,來實現(xiàn)啟動MIPS處理器的功能,地址為0x00002000。該寄存器將作為AXI-Lite接口的輸出信號,在正常復位后,該寄存器置為1。當AXI-Lite接口收到對這個寄存器的寫命令時,就將寫入值(32-bit)的第0位取反后寫到這個1-bit寄存器中,來實現(xiàn)對MIPS處理器的復位操作。

      AXI-Lite Slave接口可尋址范圍為16KB,所以其地址寬度為14位,與ARM通過AXI總線連接,與Distributed RAM通過5個通道連接,分別是Address、Write_data、Read_data、MemWrite、MemRead。另外一位寄存器mips_reset輸出口與MIPS處理器的復位端相連。Distributed RAM空間大小為8KB,即2^13Byte,單個寄存器為32位(4Byte),需要2^11個寄存器,所以Distributed RAM地址為11位。Distributed RAM采用同步寫入異步讀取。

      為了對AXI-Lite Slave模塊與Distributed RAM模塊進行仿真驗證,需要設計一個AXI-Lite Master模塊模擬ARM處理器對其進行收發(fā)數(shù)據(jù),以對其邏輯功能進行驗證,對這兩個模塊進行仿真的結(jié)構(gòu)如圖2所示。

      AXI-Lite Master模塊代替ARM處理器進行收發(fā)數(shù)據(jù),加入時鐘復位激勵,得到如圖3的仿真結(jié)果。

      3.3 MIPS處理器頂層設計

      mips_cpu_top需要將MIPS處理器模塊、AXI-Lite Slave模塊、Distributed RAM模塊包含進來,另外需要添加一段組合邏輯,實現(xiàn)當MIPS處理器對Distributed RAM進行讀寫操作時,如果此時ARM通過AXI-Lite Slave模塊對Distributed RAM有讀請求,將數(shù)據(jù)32hFFFF_FFFF返回到ARM讀取的數(shù)據(jù),表示ARM讀取的數(shù)據(jù)錯誤。只有當MIPS處理器停止對Distributed RAM進行讀寫操作時,ARM處理器才能讀取到正確的數(shù)據(jù)。如圖4是對頂層的仿真結(jié)果。

      根據(jù)仿真波形可以看到,當MIPS處理器對Distributed RAM進行寫操作時,同時ARM主處理器對Distributed RAM進行讀操作,讀到的數(shù)據(jù)為32hFFFF_FFFF。當MIPS處理器進行讀操作時,ARM主處理器同樣讀到錯誤的數(shù)據(jù)。只有當MIPS主處理器對Distributed RAM沒有任何操作時,ARM主處理器才會讀取到正確的數(shù)據(jù)。頂層邏輯功能得到驗證。

      4 基于SoC FPGA的MIPS處理器驗證平臺實現(xiàn)

      4.1 比特流文件的生成

      驗證平臺具體的Block Design如圖5,MIPS處理器頂層包含了AXI接口模塊,Distributed RAM模塊以及MIPS處理器,對外只預留AXI總線結(jié)構(gòu),系統(tǒng)會自動為工程加入AXI Interconnect模塊與Processer System Reset模塊,經(jīng)過DRC檢查,添加時鐘約束,Vivado軟件生成可以配置SoC FPGA的比特流文件。

      4.2 ARM硬核上運行Linux操作系統(tǒng)

      在ARM硬核上運行Linux操作系統(tǒng)需要用到以下幾個文件:

      (1)BOOT.bin是引導程序,其組成包含3個文件:fsbl.elf、system.bit、u-boot.elf。主要用于初始化PL(FPGA部分)和PS(ARM部分)及引導內(nèi)核。fsbl.elf需要在SDK軟件中生成,system.bit為Vivado工程的比特流文件,u-boot.elf需要在Linux系統(tǒng)下編譯生成。使用SDK軟件可以將這3個文件生成BOOT.bin。

      (2)uImage是Linux內(nèi)核文件,需要在Linux操作系統(tǒng)下安裝交叉編譯環(huán)境后,編譯生成。

      (3)devicetree.dtb是設備樹文件,包含硬件配置信息的數(shù)據(jù)結(jié)構(gòu),包括CPU、內(nèi)存、總線及相關(guān)外設,內(nèi)核啟動時,可以解析這些信息,以此來配置內(nèi)核及加載相關(guān)驅(qū)動。

      (4)Linaro文件系統(tǒng)。需要在Linux系統(tǒng)下解壓到SD卡的ext3分區(qū)。ramdisk文件系統(tǒng),需要存放于SD卡的fat32分區(qū)。

      有了以上文件后,我們就可以在ARM硬核上移植Linux操作系統(tǒng)。

      4.3 編譯運行C程序

      將比特流文件燒寫到SoC FPGA中,啟動操作系統(tǒng),C程序在Linux操作系統(tǒng)下編譯并且執(zhí)行,ARM執(zhí)行該C程序的主要功能是將MIPS處理器所需的指令和數(shù)據(jù)寫入Distributed RAM中,并啟動MIPS處理器,MIPS處理器將從Distributed RAM中讀取指令及數(shù)據(jù),其執(zhí)行后的結(jié)果存放于Distributed RAM中,將由ARM在Distributed RAM中讀回到系統(tǒng)內(nèi)存中,并在串口調(diào)試工具界面中打印輸出。

      由圖6打印輸出的結(jié)果可以判斷,在SoC FPGA上實現(xiàn)了多周期MIPS處理器的驗證,ARM處理器將MIPS處理器執(zhí)行冒泡排序結(jié)果打印。后期可以編寫不同的C程序,讓MIPS處理器執(zhí)行其他更加復雜的功能,對MIPS處理器進行更充分的驗證。

      5 結(jié)語

      本文提出了一種基于SoC FPGA的MIPS處理器驗證平臺的設計,對MIPS處理器的驗證提供了硬件仿真,提高了仿真速度。同時采用ARM主處理器實時控制監(jiān)測MIPS從處理器的方式,可以更加直觀的監(jiān)測MIPS處理器的運行狀態(tài),并且ARM主處理器運行Linux操作系統(tǒng),能夠在不斷電的前提下,通過執(zhí)行不同的程序,來對MIPS處理器進行驗證,同時在驗證過程中采用C程序,極大的提高了驗證效率。

      參考文獻

      [1]Qinsheng M,Yang C,Jun Y,et al. Random testing for system-level functional verification of system-on-chip[J].系統(tǒng)工程與電子技術(shù)(英文版),2009,20(06):1378-1383.

      [2]Murphy P,F(xiàn)rantz J P,Welsh E,et al.VALID:Custom ASIC Verification and FPGA Education Platform[C]// International Conference on Microelectronics Systems Education. IEEE Computer Society,2003:64-65.

      [3]Devins R J.Processor-independent system-on-chip verification for embedded processor systems[J].South BurlingtonvtUssouthBurlingtonvtUsessexJunctionvt Us,2003.

      [4]Hutton M,Yuan R,Schleicher J,et al.A Methodology for FPGA to Structured-ASIC Synthesis and Verification[C]// Design,Automation and Test in Europe.IEEE,2006:64-69.

      [5]Crockett L H.The Zynqbook:embedded processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 all programmable SoC[M].Strathclyde Academic Media,2014.

      [6]Wu Y,Song J,Ren K,et al.Research on LogGP Based Parallel Computing Model for CPU/GPU Cluster[J].2017.

      作者簡介

      張偉(1991-),男,在讀研究生,主要研究方向為繼承電路設計。

      梁蓓(1963-),女,貴州大學教授,碩士生導師,主要研究方向為集成電路設計。

      作者單位

      貴州大學大數(shù)據(jù)與信息工程學院 貴州省貴陽市 550025

      猜你喜歡
      驗證
      合理猜想,有效驗證
      晶閘管關(guān)斷特性的驗證解析
      小題也可大做
      彈藥保障需求分析實驗模型輸出數(shù)據(jù)的驗證研究
      價值工程(2016年30期)2016-11-24 14:19:29
      汽車外后視鏡抖動問題模型的試驗驗證
      汽車科技(2016年5期)2016-11-14 08:08:15
      HPGe γ譜儀無源效率刻度軟件驗證
      科技視界(2016年18期)2016-11-03 20:31:07
      定日县| 黄龙县| 玛沁县| 谢通门县| 武夷山市| 正蓝旗| 桃园市| 白玉县| 重庆市| 方山县| 莫力| 靖边县| 北京市| 兰西县| 奉新县| 中牟县| 县级市| 洞口县| 保德县| 阳城县| 靖远县| 乌鲁木齐县| 当涂县| 长宁县| 万山特区| 阿克陶县| 贡山| 庄浪县| 桑植县| 光泽县| 阜南县| 泰和县| 敦煌市| 光山县| 佛学| 砀山县| 金寨县| 东台市| 盱眙县| 六枝特区| 六盘水市|