国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SoC FPGA的MIPS處理器驗(yàn)證平臺(tái)設(shè)計(jì)

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

張偉+梁蓓

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

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

1 引言

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

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

2 ZYNQ簡(jiǎn)介

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ì)算,由于其已經(jīng)集成在芯片上,不需要占用FPGA的邏輯資源和布局布線資源,而且性能很高。PL部分可以用于實(shí)現(xiàn)某些特殊算法的硬件加速與硬件擴(kuò)展,PL部分可以實(shí)現(xiàn)并行計(jì)算,能夠比通用處理器快6-8個(gè)數(shù)量級(jí)以上,而且PL部分的可重構(gòu)性,能夠靈活實(shí)現(xiàn)各種特殊算法的硬件加速。PS部分與PL部分通過芯片內(nèi)AMBA總線實(shí)現(xiàn)連接,帶寬很高,滿足了某些苛刻環(huán)境下的帶寬要求。

3 MIPS處理器驗(yàn)證平臺(tái)設(shè)計(jì)

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

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

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

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

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

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

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

3.2 AXI-Lite總線接口模塊設(shè)計(jì)

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

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

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

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

3.3 MIPS處理器頂層設(shè)計(jì)

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

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

4 基于SoC FPGA的MIPS處理器驗(yàn)證平臺(tái)實(shí)現(xiàn)

4.1 比特流文件的生成

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

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

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

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

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

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

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

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

4.3 編譯運(yùn)行C程序

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

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

5 結(jié)語

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

參考文獻(xiàn)

[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.

作者簡(jiǎn)介

張偉(1991-),男,在讀研究生,主要研究方向?yàn)槔^承電路設(shè)計(jì)。

梁蓓(1963-),女,貴州大學(xué)教授,碩士生導(dǎo)師,主要研究方向?yàn)榧呻娐吩O(shè)計(jì)。

作者單位

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

猜你喜歡
驗(yàn)證
汽車外后視鏡抖動(dòng)問題模型的試驗(yàn)驗(yàn)證
综艺| 和平县| 三都| 客服| 成都市| 岳阳县| 化德县| 湟源县| 清水河县| 南宁市| 本溪市| 息烽县| 曲沃县| 连州市| 和静县| 泽库县| 泽州县| 顺平县| 怀仁县| 庆阳市| 鄂伦春自治旗| 罗田县| 孟州市| 开化县| 大石桥市| 巴林左旗| 南和县| 淳化县| 许昌县| 手游| 东至县| 宁晋县| 临颍县| 类乌齐县| 乐平市| 富平县| 互助| 禄劝| 民丰县| 鄂温| 高州市|