一種基于ARM內(nèi)核SoC的FPGA 驗證環(huán)境設(shè)計方法
圖6 預(yù)充電、自刷新
從圖6 中tr 線處的時序看出,上電后滿足預(yù)充電命令的要求,緊接著是8 個自刷新命令,最后是模式寄存器的設(shè)置,命令字為020H( 00100000B) ,即CASLatency 設(shè)置為2 個時鐘周期, Addressing Mode 為Sequential 模式, Burst Length 為1 個數(shù)據(jù)訪問模式,模式設(shè)置命令通過地址線a02a9 發(fā)出,如圖7 所示。
圖7 模式設(shè)置
將該SDRAM的地址映射成為從30000000 的地址空間開始的地址,利用SDRAM驅(qū)動程序(協(xié)同調(diào)試時,應(yīng)通過實時操作系統(tǒng)進(jìn)行SDRAM 的讀寫) , 向以30000000 開始的地址空間連續(xù)寫入300 個從數(shù)據(jù)0 遞增到299 的數(shù),截取中間一段波形如圖8 所示。圖6~圖8 中各信號如下:clk 為同步時鐘,圖中是10 MHz ;cse 為EMI 的8 個片選信號之一,即SDRAM的片選信號cs;ras 和cas 為SDRAM 的控制信號;we 為SDRAM 的讀寫控制信號;bank021 為SDRAM 的4 個bank 選擇控制信號;sd10 為既是SDRAM 的控制信號又是地址信號a10;a0211 為不包括a10 的地址信號;dqm021 為字節(jié)選擇信號;d027 為低位數(shù)據(jù)線。
圖8 寫時序
寫命令應(yīng)當(dāng)滿足的時序要求是:在時鐘周期的上升沿處RAS 高,WE、CS、CAS 低;第一個要寫的數(shù)據(jù)必須與寫命令同時發(fā)出。從圖8 可以看出,確實能夠成功執(zhí)行寫操作訪問。注意: 在寫之前,必須將該bank激活,只有激活的bank 才能進(jìn)行讀寫,圖中的激活命令沒有顯示出來,同時,由于該訪問總共300 個地址完全在一個行內(nèi),不用對其進(jìn)行行預(yù)充電和再激活(在一個已經(jīng)激活的bank 內(nèi),讀寫不同的行就要求對該bank進(jìn)行預(yù)充電和再激活) 。
通過圖6~圖8 ,還可以看出各種操作命令的建立時間Tsetup和保持時間Thold都設(shè)置得比較緊,幾乎剛好滿足。這種IP 核沒有給用戶留出足夠的余量,一旦用戶對PCB 的制作稍有不慎,在PCB 板級違反建立時間和保持時間極有可能,造成SDRAM 的不正確訪問,所以需要進(jìn)行檢查和修改。經(jīng)過前端人員的仿真驗證,代碼中確實存在忽略建立時間和保持時間的問題,修改后重新在該平臺進(jìn)行驗證,以上兩個時間都能很好地滿足,且有足夠的余量。另外,從圖中可以看出,數(shù)據(jù)線上有一些毛刺,這是由于FPGA 的I/ O 端口引腳對邏輯分析儀的接口沒有很好地分配造成的,重新分配FPGA 的I/ O 端口,絕大部分毛刺都能很好地消除。
通過以上實驗,說明該驗證平臺確實能夠達(dá)到驗證SOC IP 核的目的。要注意的是,當(dāng)要驗證各個IP模塊(包括INT 中斷控制器、DMA 控制器、LCD 控制器和AC97 控制器等) 之間協(xié)同工作時,燒入的代碼較多,占用FPGA 資源較多,再加上需要實時運行,例如,播放PM3 實時解碼過程中,時鐘至少要求60 MHz ,需要工作的IP 核有總線、DMA 控制器、INT 中斷控制器、AC97 控制器等,在這種情況下,最好使用Multi PointSynthesis 的綜合流程和Timing driven 的綜合與優(yōu)化策略,使用Logic-lock 約束技術(shù)和人工干預(yù)布局布線,才能達(dá)到預(yù)期目的。
使用該平臺對我們開發(fā)的SoC 的各個模塊進(jìn)行了驗證,并在10 MHz~70 MHz 條件下與代碼前(后) 仿真結(jié)果和SoC 實測結(jié)果進(jìn)行了比較,結(jié)果見圖9??梢钥闯?該FPGA 驗證平臺在多模塊、高速情況下,性能有所下降,需進(jìn)一步提高綜合和布局布線技術(shù)。
圖9 代碼仿真、FPG平臺驗證及SoC芯片實測結(jié)果比較
結(jié)束語
本文提出了一種常用的基于ARM內(nèi)核SoC 的FPGA 驗證環(huán)境的設(shè)計方法,并給出了電路結(jié)構(gòu)框圖和相應(yīng)的外圍電路設(shè)計。根據(jù)該設(shè)計, 在FPGA 內(nèi)實現(xiàn)AMBA 總線、存儲器接口和中斷控制器,加上外面的ARM處理器核,構(gòu)成了ARM SoC 的最小系統(tǒng),根據(jù)具體目標(biāo)系統(tǒng)的需要,可以增加LCD 控制器、AC97 控制器、USB 控制器等模塊,構(gòu)成一個非常實用的驗證平臺。在IP 核燒入后,可以使用ARM ADS(ARM Developer Suite) 軟件開發(fā)工具,在線對設(shè)計的硬件電路、硬件驅(qū)動軟件、操作系統(tǒng)和高層應(yīng)用軟件進(jìn)行調(diào)試,從而大大縮短了基于SoC 芯片的應(yīng)用系統(tǒng)的開發(fā)時間。隨著FPGA 的飛速發(fā)展,用戶可以選用更加先進(jìn)和方便使用的FPGA ,還可選用內(nèi)嵌ARM 核的FPGA 芯片來構(gòu)建驗證平臺。同時,該系統(tǒng)在電壓設(shè)計、模塊選用甚至處理器核的選用方面都考慮了升級擴展技術(shù),可供其他SoC 的驗證借鑒。
評論