一種信號發(fā)生器高速內(nèi)部總線實(shí)現(xiàn)方法
發(fā)布時間:2021-09-03 01:05
該文在研究信號發(fā)生器硬件平臺總線架構(gòu)的基礎(chǔ)上,分析了低速設(shè)備對儀器性能的影響,基于FPGA提出了一種信號發(fā)生器高速內(nèi)部總線實(shí)現(xiàn)方法,提升了內(nèi)部總線帶寬,可移植性強(qiáng),具有很大的應(yīng)用價值。
【文章來源】:電子質(zhì)量. 2020,(06)
【文章頁數(shù)】:4 頁
【部分圖文】:
本地總線時序仿真
為了解決低速設(shè)備導(dǎo)致儀器性能下降的問題,本文設(shè)計了一個新的電路。在低速設(shè)備與PCIe總線端口之間加入了一塊FPGA,此FPGA具有PCIe總線IP核,可實(shí)現(xiàn)PCIe總線的高速時序與設(shè)備的低速時序之間的實(shí)時轉(zhuǎn)換。方案框圖如圖1所示,儀器里多了一個用FPGA實(shí)現(xiàn)的PCIe高速設(shè)備,直接與PCIe總線連接,眾多的低速設(shè)備連接在FPGA實(shí)現(xiàn)的PCIe設(shè)備下。在這個新的硬件平臺中,CPU把FPGA看成是一個普通的高速本地設(shè)備,CPU以高速時序?qū)PGA進(jìn)行操作,同時FPGA管理眾多的低速設(shè)備,解析CPU對低速設(shè)備發(fā)出的操作命令。FPGA實(shí)現(xiàn)CPU高速時序與低速設(shè)備時序之間的實(shí)時轉(zhuǎn)換,所以FPGA設(shè)備本質(zhì)就是一個時序轉(zhuǎn)換器。轉(zhuǎn)換電路主要包括兩個部分:FPGA中PCIe總線控制模塊和本地總線控制模塊。其中,PCIe總線控制模塊用于CPU和FPGA之間的數(shù)據(jù)交互;本地總線控制模塊用于實(shí)現(xiàn)對CPU命令的解析、控制低速備的狀態(tài),完成CPU與低速設(shè)備之間數(shù)據(jù)交互。由于PCIe總線是一種標(biāo)準(zhǔn)總線接口,另外具有PCIe IP核的FPGA價格便宜,所以本文設(shè)計的高速內(nèi)部總線電路模塊功能獨(dú)立,軟硬件可移植性較高。2 方案實(shí)現(xiàn)
DMA傳輸模式中,CPU只控制初始化,數(shù)據(jù)由DMA控制器直接將數(shù)據(jù)從一個地址空間復(fù)制到另一個地址空間,占用處理器周期少,傳輸效率高。當(dāng)有數(shù)據(jù)需要傳輸時,應(yīng)用程序向PCIe接口模塊發(fā)起一個DMA傳輸請求,DMA緩沖區(qū)需要先判斷是否已滿,可通過緩沖區(qū)讀寫地址指針差值判斷。如果緩沖區(qū)讀寫地址指針差為1,此時緩沖區(qū)已滿,PCIe接口模塊會阻塞數(shù)據(jù)緩存,反之,接口模塊響應(yīng)傳輸請求并啟動DMA傳輸。接口模塊按照TLP字節(jié)順序封裝DMA數(shù)據(jù)流,封裝好的數(shù)據(jù)包通過總線發(fā)送出去,并通過數(shù)據(jù)流結(jié)尾標(biāo)識位判斷此次DMA傳輸是否完成,如果完成,緩沖區(qū)地址隊列寫指針加1,同時當(dāng)前地址指針封裝成TLP包發(fā)送給設(shè)備驅(qū)動程序。當(dāng)一次DMA傳輸完成后,產(chǎn)生一次中斷信號,然后通過解析接收到的TLP數(shù)據(jù)包獲得DMA讀地址指針。循環(huán)上述流程可以實(shí)現(xiàn)DMA數(shù)據(jù)傳輸操作,如圖2所示。2.1.2 PCIe中斷的實(shí)現(xiàn)
本文編號:3380093
【文章來源】:電子質(zhì)量. 2020,(06)
【文章頁數(shù)】:4 頁
【部分圖文】:
本地總線時序仿真
為了解決低速設(shè)備導(dǎo)致儀器性能下降的問題,本文設(shè)計了一個新的電路。在低速設(shè)備與PCIe總線端口之間加入了一塊FPGA,此FPGA具有PCIe總線IP核,可實(shí)現(xiàn)PCIe總線的高速時序與設(shè)備的低速時序之間的實(shí)時轉(zhuǎn)換。方案框圖如圖1所示,儀器里多了一個用FPGA實(shí)現(xiàn)的PCIe高速設(shè)備,直接與PCIe總線連接,眾多的低速設(shè)備連接在FPGA實(shí)現(xiàn)的PCIe設(shè)備下。在這個新的硬件平臺中,CPU把FPGA看成是一個普通的高速本地設(shè)備,CPU以高速時序?qū)PGA進(jìn)行操作,同時FPGA管理眾多的低速設(shè)備,解析CPU對低速設(shè)備發(fā)出的操作命令。FPGA實(shí)現(xiàn)CPU高速時序與低速設(shè)備時序之間的實(shí)時轉(zhuǎn)換,所以FPGA設(shè)備本質(zhì)就是一個時序轉(zhuǎn)換器。轉(zhuǎn)換電路主要包括兩個部分:FPGA中PCIe總線控制模塊和本地總線控制模塊。其中,PCIe總線控制模塊用于CPU和FPGA之間的數(shù)據(jù)交互;本地總線控制模塊用于實(shí)現(xiàn)對CPU命令的解析、控制低速備的狀態(tài),完成CPU與低速設(shè)備之間數(shù)據(jù)交互。由于PCIe總線是一種標(biāo)準(zhǔn)總線接口,另外具有PCIe IP核的FPGA價格便宜,所以本文設(shè)計的高速內(nèi)部總線電路模塊功能獨(dú)立,軟硬件可移植性較高。2 方案實(shí)現(xiàn)
DMA傳輸模式中,CPU只控制初始化,數(shù)據(jù)由DMA控制器直接將數(shù)據(jù)從一個地址空間復(fù)制到另一個地址空間,占用處理器周期少,傳輸效率高。當(dāng)有數(shù)據(jù)需要傳輸時,應(yīng)用程序向PCIe接口模塊發(fā)起一個DMA傳輸請求,DMA緩沖區(qū)需要先判斷是否已滿,可通過緩沖區(qū)讀寫地址指針差值判斷。如果緩沖區(qū)讀寫地址指針差為1,此時緩沖區(qū)已滿,PCIe接口模塊會阻塞數(shù)據(jù)緩存,反之,接口模塊響應(yīng)傳輸請求并啟動DMA傳輸。接口模塊按照TLP字節(jié)順序封裝DMA數(shù)據(jù)流,封裝好的數(shù)據(jù)包通過總線發(fā)送出去,并通過數(shù)據(jù)流結(jié)尾標(biāo)識位判斷此次DMA傳輸是否完成,如果完成,緩沖區(qū)地址隊列寫指針加1,同時當(dāng)前地址指針封裝成TLP包發(fā)送給設(shè)備驅(qū)動程序。當(dāng)一次DMA傳輸完成后,產(chǎn)生一次中斷信號,然后通過解析接收到的TLP數(shù)據(jù)包獲得DMA讀地址指針。循環(huán)上述流程可以實(shí)現(xiàn)DMA數(shù)據(jù)傳輸操作,如圖2所示。2.1.2 PCIe中斷的實(shí)現(xiàn)
本文編號:3380093
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3380093.html
最近更新
教材專著