基于LEON3處理器和Speed協(xié)處理器的復(fù)雜SoC設(shè)計(jì)
為了使Speed可以順利接收LEON3傳送過(guò)來(lái)的控制字或DMA傳送過(guò)來(lái)的原始數(shù)據(jù),需要在原有的Speed core模塊頂層添加AHB Slaver協(xié)議來(lái)接收AHB上傳送的數(shù)據(jù),以及產(chǎn)生相應(yīng)波形的HDL代碼來(lái)將C程序的信息生成Speed所能識(shí)別的信號(hào)波形進(jìn)入Speed模塊內(nèi)部,即從圖6中的控制字,轉(zhuǎn)化成圖7中的時(shí)序。
圖6 C語(yǔ)言描述的Speed控制字
圖7 Speed core所需的配置時(shí)序
同理于控制字,濾波系數(shù)和原始數(shù)據(jù)的輸入亦需要一定的HDL代碼來(lái)實(shí)現(xiàn)指令或數(shù)據(jù)向時(shí)序圖的轉(zhuǎn)化,其本質(zhì)相當(dāng)于譯碼,實(shí)現(xiàn)起來(lái)難度不大,此處就不再累述。Speed處理后數(shù)據(jù)通過(guò)狀態(tài)信號(hào)(zero_flag)下降沿觸發(fā)LEON3的中斷響應(yīng),實(shí)現(xiàn)向外部存儲(chǔ)器的輸出,此過(guò)程和數(shù)據(jù)輸入類(lèi)似。
編程、編譯及仿真
用戶(hù)在C編程時(shí),只需要按照Speed所需的啟動(dòng)方式,先設(shè)置控制字、再輸入濾波系數(shù)、然后啟動(dòng)DMA輸入原始數(shù)據(jù)。值得注意的地方是,為了實(shí)現(xiàn)Speed的運(yùn)算與DMA中原始數(shù)據(jù)輸入同步,需要在C代碼的不同指令間插入一定的延遲指令,此延遲間隔可根據(jù)軟硬件的響應(yīng)速度來(lái)計(jì)算。
Gaisler Research公司提供完整的LEON3開(kāi)發(fā)套件,包括C代碼編譯器sparc-elf-gcc,大大方便了軟硬件開(kāi)發(fā)和聯(lián)合調(diào)試。 將LEON3和Speed的SoC硬件HDL描述,及編譯后的二進(jìn)制指令調(diào)入Modelsim進(jìn)行軟件仿真,再利用FPGA進(jìn)行硬件仿真,其結(jié)果如圖8、9、10所示。
圖8 從C語(yǔ)言控制字產(chǎn)生的配置時(shí)序
圖9 觸發(fā)中斷響應(yīng)的zero_flag信號(hào)
圖10 在Altera StratixII 2S180中的仿真結(jié)果
結(jié)語(yǔ)
本項(xiàng)目利用LEON3的高性能、易編程、開(kāi)源等優(yōu)點(diǎn),開(kāi)發(fā)了AHB總線(xiàn)接口和DMA控制器,實(shí)現(xiàn)了Speed專(zhuān)用信號(hào)處理器的軟件可編程,大大簡(jiǎn)化了Speed用戶(hù)的開(kāi)發(fā)過(guò)程。有待改進(jìn)之處是,1)當(dāng)前Speed可處理40bit數(shù)據(jù),而Leon3是32bit,沒(méi)有最大限度發(fā)揮Speed的運(yùn)算能力;2)如果在LEON3上運(yùn)行RTEMS (Real Time Executive for Multiprocessor Systems) 操作系統(tǒng),將進(jìn)一步方便用戶(hù)擴(kuò)展LEON3的利用價(jià)值。
評(píng)論