基于ARM內核SoC的FPGA 驗證環(huán)境設計方法
圖8 寫時序
寫命令應當滿足的時序要求是:在時鐘周期的上升沿處RAS 高,WE、CS、CAS 低;第一個要寫的數據必須與寫命令同時發(fā)出。從圖8 可以看出,確實能夠成功執(zhí)行寫操作訪問。注意: 在寫之前,必須將該bank激活,只有激活的bank 才能進行讀寫,圖中的激活命令沒有顯示出來,同時,由于該訪問總共300 個地址完全在一個行內,不用對其進行行預充電和再激活(在一個已經激活的bank 內,讀寫不同的行就要求對該bank進行預充電和再激活) 。
通過圖6~圖8 ,還可以看出各種操作命令的建立時間Tsetup和保持時間Thold都設置得比較緊,幾乎剛好滿足。這種IP 核沒有給用戶留出足夠的余量,一旦用戶對PCB 的制作稍有不慎,在PCB 板級違反建立時間和保持時間極有可能,造成SDRAM 的不正確訪問,所以需要進行檢查和修改。經過前端人員的仿真驗證,代碼中確實存在忽略建立時間和保持時間的問題,修改后重新在該平臺進行驗證,以上兩個時間都能很好地滿足,且有足夠的余量。另外,從圖中可以看出,數據線上有一些毛刺,這是由于FPGA 的I/ O 端口引腳對邏輯分析儀的接口沒有很好地分配造成的,重新分配FPGA 的I/ O 端口,絕大部分毛刺都能很好地消除。
通過以上實驗,說明該驗證平臺確實能夠達到驗證SOC IP 核的目的。要注意的是,當要驗證各個IP模塊(包括INT 中斷控制器、DMA 控制器、LCD 控制器和AC97 控制器等) 之間協同工作時,燒入的代碼較多,占用FPGA 資源較多,再加上需要實時運行,例如,播放PM3 實時解碼過程中,時鐘至少要求60 MHz ,需要工作的IP 核有總線、DMA 控制器、INT 中斷控制器、AC97 控制器等,在這種情況下,最好使用Multi PointSynthesis 的綜合流程和Timing driven 的綜合與優(yōu)化策略,使用Logic-lock 約束技術和人工干預布局布線,才能達到預期目的。
使用該平臺對我們開發(fā)的SoC 的各個模塊進行了驗證,并在10 MHz~70 MHz 條件下與代碼前(后) 仿真結果和SoC 實測結果進行了比較,結果見圖9??梢钥闯?,該FPGA 驗證平臺在多模塊、高速情況下,性能有所下降,需進一步提高綜合和布局布線技術。
評論