隨著(zhù)科技的發(fā)展,信號處理系統不僅要求多功能、高性能,而且要求信號處理系統的開(kāi)發(fā)、生產(chǎn)周期短,可編程式專(zhuān)用處理器無(wú)疑是實(shí)現此目的的最好途徑?删幊虒(zhuān)用處理器可分為松耦合式(協(xié)處理器方式,即MCU+協(xié)處理器)和緊耦合式(專(zhuān)用指令方式,即ASIP),前者較后者易于實(shí)現,應用較廣。本文就是介紹一款松耦合式可編程專(zhuān)用復雜SoC設計實(shí)現,選用LEON3處理器作為MCU,Speed處理器作為Coprocessor。 LEON3及Speed LEON3是由歐洲航天總局旗下的Gaisler Research開(kāi)發(fā)、維護,目的是擺脫歐空局對美國航天級處理器的依賴(lài)。目前LEON3有三個(gè)版本(如表1),其中LEON3FT(LEON3 Fault-tolerant)只有歐空局內部成員可以使用。LEON3 (basic version)是遵循GNC GPL License的開(kāi)源處理器,和SPARC V8兼容,采用7級Pipeline,硬件實(shí)現乘法、除法和乘累加功能,詳細特性請參考相關(guān)技術(shù)文檔[1]。 表1 LEON3的不同版本 目前,LEON3處理器因為開(kāi)源、高性能、采用AMBA總線(xiàn)易擴展及軟件工具完備等因素,在國內外大學(xué)(如UCB、UCLA、Princeton University等)及科研院所的科研活動(dòng)中得到廣泛應用。Speed(又名GA3816)是一款我國自主研發(fā)、處于同時(shí)代國際先進(jìn)水平、可重構、可擴展的面向FFT、IFFT、FIR及匹配濾波應用的信號處理器,其內部結構如圖1所示,具有以下特點(diǎn)[2~4]: 1)Speed在追求運算速度的同時(shí)兼顧通用性,通過(guò)設置64位控制字,器件內部資源可根據不同應用進(jìn)行重組; 2)可以實(shí)現FFT、IFFT、FFT-IFFT、FIR、滑窗卷積等運算,峰值運算能力達256億次浮點(diǎn)乘累加/秒; 3)由160個(gè)實(shí)數浮點(diǎn)乘法累加運算器組成40個(gè)復數乘法累加器陣列,1Mbit的雙口SRAM,8個(gè)512×32bit系數ROM,兩個(gè)直角到極坐標轉換電路,兩個(gè)對數變換電路及其它輔助電路和控制電路。 圖1 Speed的內部模塊結構 Speed傳統的工作方式是通過(guò)片外FPGA輸入控制信號和待處理數據,這不僅增大了PCB板級布線(xiàn)、調試的工作量,而且FPGA不能用C等高級語(yǔ)言編程,算法改動(dòng)起來(lái)不靈活。另一方面,隨著(zhù)半導體工藝、微電子技術(shù)的發(fā)展,大規模的復雜SoC實(shí)現技術(shù)逐漸成熟,因此有必要將板級FPGA + Speed改進(jìn)為芯片級MCU + Speed,這樣既能實(shí)現真正的可編程增大靈活性,又能加快用戶(hù)開(kāi)發(fā)信號處理系統的速度。利用AHB實(shí)現通信 為了實(shí)現可編程,需要將C/C++程序表達的信息經(jīng)過(guò)編譯器、LEON3處理器、AHB總線(xiàn)、DMA控制器和必要的HDL代碼,轉化成Speed能夠識別的信息,進(jìn)入Speed模塊中,如圖2。其中AHB總線(xiàn)是LEON3 Core和Speed Core結合的關(guān)鍵。 圖2 實(shí)現軟件可編程的過(guò)程 AHB總線(xiàn)及AHB控制器AMBA總線(xiàn)是一種應用廣泛的層次化總線(xiàn)結構,有高速的AHB和低速APB之分,其中AHB是一種流水式高速總線(xiàn)結構,地址和數據總線(xiàn)相互獨立,可掛載16個(gè)Master和Slaver設備,常用來(lái)組織和連接高性能模塊,如處理器、DMA控制器、協(xié)處理器等[5~7]。AHB總線(xiàn)的核心是AHB控制器,主要包括仲裁器,譯碼器和多路復用器,其中仲裁器選擇AHB Master,而譯碼器選擇AHB Slave,實(shí)現寫(xiě)數據WDATA和讀數據RDATA分開(kāi),如圖3所示。 圖3 AHB總線(xiàn)的組成結構 DMA控制器DMA是指設備直接對計算機存儲器進(jìn)行讀寫(xiě)操作的方式。這種方式下數據的讀寫(xiě)無(wú)需CPU執行指令,也不經(jīng)過(guò)CPU內部寄存器,而是利用系統的數據總線(xiàn)直接在源地址和目的地址之間傳送數據,達到極高的傳輸速率。DMA控制器一方面可以接管總線(xiàn),即可以像CPU一樣視為總線(xiàn)的主設備,這是DMA與其它外設最根本的區別;另一方面,作為一個(gè)I/O器件,其DMA控制功能正式通過(guò)初始化編程來(lái)設置。當CPU對其寫(xiě)入或讀出時(shí),它又和其它的外設一樣成為總線(xiàn)的從屬設備。 本文中為了實(shí)現DMA和AHB密切配合,即啟動(dòng)DMA后大量原始數據通過(guò)AHB總線(xiàn)從數據存儲器進(jìn)入Speed模塊,需要DMA控制器內部包含AHB Master模塊,如圖4所示。另外需要說(shuō)明的是,LEON3為了實(shí)現AHB上設備的plug&play需要在0xFFFFF000-0xFFFFF800地址空間添加設備信息[8~9],所以DMA 控制器和Speed協(xié)處理器亦要如此,以便LEON3的軟硬件協(xié)調一致。在C語(yǔ)言實(shí)現DMA時(shí),向DMA的控制寄存器寫(xiě)入相應的信息,即可啟動(dòng)DMA傳輸,如圖5所示。 圖4 DMA與AHB Master的關(guān)系 圖5 啟動(dòng)DMA的C代碼示意 Speed的AHB接口為了使Speed可以順利接收LEON3傳送過(guò)來(lái)的控制字或DMA傳送過(guò)來(lái)的原始數據,需要在原有的Speed core模塊頂層添加AHB Slaver協(xié)議來(lái)接收AHB上傳送的數據,以及產(chǎn)生相應波形的HDL代碼來(lái)將C程序的信息生成Speed所能識別的信號波形進(jìn)入Speed模塊內部,即從圖6中的控制字,轉化成圖7中的時(shí)序。 圖6 C語(yǔ)言描述的Speed控制字 圖7 Speed core所需的配置時(shí)序 同理于控制字,濾波系數和原始數據的輸入亦需要一定的HDL代碼來(lái)實(shí)現指令或數據向時(shí)序圖的轉化,其本質(zhì)相當于譯碼,實(shí)現起來(lái)難度不大,此處就不再累述。Speed處理后數據通過(guò)狀態(tài)信號(zero_flag)下降沿觸發(fā)LEON3的中斷響應,實(shí)現向外部存儲器的輸出,此過(guò)程和數據輸入類(lèi)似。編程、編譯及仿真 用戶(hù)在C編程時(shí),只需要按照Speed所需的啟動(dòng)方式,先設置控制字、再輸入濾波系數、然后啟動(dòng)DMA輸入原始數據。值得注意的地方是,為了實(shí)現Speed的運算與DMA中原始數據輸入同步,需要在C代碼的不同指令間插入一定的延遲指令,此延遲間隔可根據軟硬件的響應速度來(lái)計算。 Gaisler Research公司提供完整的LEON3開(kāi)發(fā)套件,包括C代碼編譯器sparc-elf-gcc,大大方便了軟硬件開(kāi)發(fā)和聯(lián)合調試。 將LEON3和Speed的SoC硬件HDL描述,及編譯后的二進(jìn)制指令調入Modelsim進(jìn)行軟件仿真,再利用FPGA進(jìn)行硬件仿真,其結果如圖8、9、10所示。 圖8 從C語(yǔ)言控制字產(chǎn)生的配置時(shí)序 圖9 觸發(fā)中斷響應的zero_flag信號 圖10 在Altera StratixII 2S180中的仿真結果 結語(yǔ)本項目利用LEON3的高性能、易編程、開(kāi)源等優(yōu)點(diǎn),開(kāi)發(fā)了AHB總線(xiàn)接口和DMA控制器,實(shí)現了Speed專(zhuān)用信號處理器的軟件可編程,大大簡(jiǎn)化了Speed用戶(hù)的開(kāi)發(fā)過(guò)程。有待改進(jìn)之處是,1)當前Speed可處理40bit數據,而Leon3是32bit,沒(méi)有最大限度發(fā)揮Speed的運算能力;2)如果在LEON3上運行RTEMS (Real Time Executive for Multiprocessor Systems) 操作系統,將進(jìn)一步方便用戶(hù)擴展LEON3的利用價(jià)值。 |