隨著硅片集成技術(shù)的高速發(fā)展,片上系統(tǒng)SoC(system-on-a-Chip)已經(jīng)成為現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)的必然趨勢。SoC和一般數(shù)字系統(tǒng)最主要的區(qū)別是前者在單一硅片內(nèi)集成了獨(dú)立的嵌入式CPU,必要的存儲(chǔ)器控制器也要求集成到SoC芯片內(nèi),所以對(duì)SoC系統(tǒng)的軟硬件協(xié)同實(shí)時(shí)驗(yàn)證便成為SoC設(shè)計(jì)的難點(diǎn);贗P的可重用設(shè)計(jì)方法已經(jīng)成為數(shù)字系統(tǒng)設(shè)計(jì)工程師普遍采用的系統(tǒng)設(shè)計(jì)方法。于是,設(shè)計(jì)者采用第三方IP或自行設(shè)計(jì)的軟核或兩者的組合來搭建符合要求的系統(tǒng)。對(duì)于一個(gè)SoC系統(tǒng),嵌入式CPU的選擇至關(guān)重要。第三方提供CPU的方式有軟核和固核,如果在設(shè)計(jì)過程中僅被授權(quán)采用第三方優(yōu)化的固核(版圖級(jí)),則前端FPGA實(shí)時(shí)驗(yàn)證問題自然凸現(xiàn)出來。解決的辦法是選擇相應(yīng)CPU的驗(yàn)證開發(fā)板或者采用其他處理器。本文介紹一種利用嵌入Blackfin處理器的ADSP-BF537作為處理器進(jìn)行SoC的FPGA實(shí)時(shí)驗(yàn)證的方案及其總線接口轉(zhuǎn)換模塊的設(shè)計(jì)。
SoC系統(tǒng)驗(yàn)證平臺(tái)結(jié)構(gòu)框圖如圖1所示。
1 ADSP簡介
ADSP是ADI(Analog Device Inc.)公司推出的一系列高性能低功耗DSP芯片,而基于Blackfin處理器的ADSP-BF533一經(jīng)推出便被很多國家的設(shè)計(jì)人員立即采用,后續(xù)系列產(chǎn)品ADSP-BF5xx也被更多的系統(tǒng)設(shè)計(jì)廠家應(yīng)用到各自的產(chǎn)品中。正是因?yàn)锳DSP-BF5xx系列芯片是以功能強(qiáng)大性能卓越的Blackfin處理器為內(nèi)核而推出的高效DSP芯片,使得人們可以采用ADSP-BF5xx系列芯片作為處理器進(jìn)行視頻SoC的FPGA實(shí)時(shí)驗(yàn)證。Blackfin處理器集成了一個(gè)由ADI公司和Intel公司聯(lián)合開發(fā)的基于MSA(Micro Signal Architecture)的16/32位嵌入式處理器,支持32位RISC指令集,采用10級(jí)流水線,集成了兩個(gè)16位乘法加速器,內(nèi)核主頻最高可以達(dá)到600MHz[1]。
2 ADSP外部Momory總線介紹
ADSP外部Memory總線可以進(jìn)行同步或異步操作,前者是通過時(shí)鐘輸出端CLKOUT進(jìn)行同步的。本文所采用的ADSP-BF537 Ez-kit Lite開發(fā)套件的外部Memory總線的可用地址僅為19位(ADDR[19:1]),并且采用AMS[3:0]選中相應(yīng)的外部區(qū)域。ADSP-BF537的四個(gè)選通信號(hào)線對(duì)應(yīng)的外部Memory地址范圍如表1所示[2]?梢钥闯,直接利用ADSP外部Memory總線操作的地址空間只有4MB容量,顯然不能滿足SoC的選址需求,必須進(jìn)行接口總線的轉(zhuǎn)換來提高尋址范圍。
ADSP-BF537外部Memory讀寫時(shí)序波形如圖2所示,其中的ARDY信號(hào)是由外設(shè)產(chǎn)生的。ADSP通過設(shè)置EBIU_AMBCTLx寄存器,允許傳輸過程中使用ARDY握手信號(hào),用來增強(qiáng)系統(tǒng)運(yùn)行的準(zhǔn)確度。ARDY信號(hào)的有效電平是可以設(shè)置的。
EBIU_AMBCTLx寄存器還可以改變ADSP對(duì)外讀寫操作的時(shí)序,包括數(shù)據(jù)建立時(shí)間、讀寫通路時(shí)間以及數(shù)據(jù)保持時(shí)間。例如,圖2所示的寫操作建立時(shí)間、通路時(shí)間和保持時(shí)間分別是2個(gè)周期、2個(gè)周期和1個(gè)周期。如果使能ARDY信號(hào),并設(shè)置為高電平有效,則在設(shè)定的讀寫時(shí)間內(nèi),ARDY為低電平表示外設(shè)不能寫入或者讀出數(shù)據(jù),需要ADSP繼續(xù)保持相應(yīng)的讀寫等待狀態(tài),直到ARDY信號(hào)被拉為高電平;只有當(dāng)ADSP檢測到ARDY為高電平時(shí),才能將DATA數(shù)據(jù)作為有效數(shù)據(jù)。上述過程如圖2中的讀操作,ARDY信號(hào)被拉低了一個(gè)周期。
ADSP-BF537的外部Memory地址總線位寬是ADDR[19:1],這樣可以使ADSP靈活地對(duì)16/32位數(shù)據(jù)進(jìn)行地址選址。例如,如果對(duì)連續(xù)地址進(jìn)行16位數(shù)據(jù)的讀寫操作,ADDR[19:1]只需依次加1,而ADSP軟件開發(fā)工具中相應(yīng)的內(nèi)部變量數(shù)據(jù)類型定義為short即可[3];類似地,如果要讀寫的數(shù)據(jù)類型為int(32位)數(shù)據(jù),則每次訪問外部地址時(shí),ADSP會(huì)連續(xù)產(chǎn)生兩次讀寫操作,并且地址總線ADDR[19:1]是連續(xù)的。
3 AHB總線介紹
AHB(Advanced High-peRFormance Bus)是AMBA總線中用途最為廣泛的一種高速總線,因其協(xié)議簡單、可綜合性強(qiáng)、支持主頻高、功耗低,已經(jīng)被很多SoC芯片作為內(nèi)部高速系統(tǒng)總線。大多數(shù)第三方IP廠商提供的功能模塊的接口都支持AMBA總線協(xié)議。AHB基本傳輸時(shí)序如圖3所示[4]。
4消除信號(hào)的亞穩(wěn)態(tài)現(xiàn)象
在本次視頻SoC的FPGA驗(yàn)證方案中,采用ADSP的外部Memory總線,F(xiàn)PGA既可以利用同步時(shí)鐘輸出CLKOUT進(jìn)行同步設(shè)計(jì),也可以采用異步總線讀寫。如果不使用CLKOUT而采用異步設(shè)計(jì),則在總線轉(zhuǎn)換接口模塊設(shè)計(jì)中,首先需要保證消除讀寫信號(hào)亞穩(wěn)態(tài)現(xiàn)象。ADSP內(nèi)核主頻可以達(dá)到600MHz,外部Memory總線的采樣時(shí)鐘(CLKOUT)動(dòng)態(tài)調(diào)整范圍也很大,因此對(duì)異步輸入信號(hào)可以采用增加同步觸發(fā)器進(jìn)行鎖存延時(shí)的方法來消除亞穩(wěn)態(tài)[5]。具體實(shí)現(xiàn)方法是在異步輸入信號(hào)的前端加2-3級(jí)同步觸發(fā)器。FPGA驗(yàn)證證明:當(dāng)CLKOUT頻率為50MHz,F(xiàn)PGA系統(tǒng)主頻為25MHz時(shí),3級(jí)同步鎖存完全可以消除亞穩(wěn)態(tài),從而保證ADSP在外部Memory總線上正確進(jìn)行數(shù)據(jù)傳輸。 |