本申請(qǐng)涉及信號(hào)發(fā)生器領(lǐng)域,尤其涉及一種基于soc的逐點(diǎn)任意波形發(fā)生器和產(chǎn)生方法。
背景技術(shù):
傳統(tǒng)的任意波形發(fā)生器常采用dds技術(shù),以直接數(shù)字合成的方式產(chǎn)生任意波形和頻率,但這樣的任意波形發(fā)生器在輸出較高頻率的任意波時(shí),存在丟失波形細(xì)節(jié)和周期間存在固有抖動(dòng)的缺點(diǎn)。為了避免克服這些缺點(diǎn),一些任意波形發(fā)生器采用逐點(diǎn)任意波技術(shù),通過(guò)逐點(diǎn)輸出任意波形,在保證不丟失波形細(xì)節(jié)的前提下,能夠以可變采樣率輸出任意長(zhǎng)度的低抖動(dòng)波形,采樣率變化范圍可從微赫茲到數(shù)百兆赫茲。相對(duì)于dds技術(shù),采用逐點(diǎn)任意波技術(shù)產(chǎn)生的任意波形,能夠提供給用戶高質(zhì)量的任意波。
如圖1所示,現(xiàn)有技術(shù)中,采用逐點(diǎn)任意波技術(shù)的逐點(diǎn)任意波形發(fā)生器常主要包括嵌入式處理器、逐點(diǎn)任意波產(chǎn)生模塊、fifo模塊、存儲(chǔ)器和數(shù)模轉(zhuǎn)換器,嵌入式處理器包括arm、dsp或單片機(jī)等處理器,逐點(diǎn)任意波產(chǎn)生模塊和fifo模塊一般由fpga等數(shù)字處理芯片構(gòu)成,嵌入式處理器和逐點(diǎn)任意波產(chǎn)生模塊分別掛載一個(gè)存儲(chǔ)器,嵌入式處理器掛載的存儲(chǔ)器主要用于嵌入式軟件的運(yùn)行,逐點(diǎn)任意波產(chǎn)生模塊掛載的存儲(chǔ)器主要用于存儲(chǔ)波形數(shù)據(jù)。用戶輸入所需要波形的類型、頻率和初始相位后,經(jīng)過(guò)嵌入式處理器對(duì)這些參數(shù)的處理,生成波形數(shù)據(jù)并將其發(fā)送給逐點(diǎn)任意波產(chǎn)生模塊,逐點(diǎn)任意波產(chǎn)生模塊將接收的波形數(shù)據(jù)存入存儲(chǔ)器,然后根據(jù)嵌入式處理器傳輸來(lái)的波形的類型、頻率和初始相位,實(shí)時(shí)接收f(shuō)ifo模塊傳來(lái)的波形數(shù)據(jù),逐點(diǎn)產(chǎn)生波形點(diǎn)并將波形點(diǎn)數(shù)據(jù)輸出至給數(shù)模轉(zhuǎn)換器,再由數(shù)模轉(zhuǎn)換器對(duì)波形點(diǎn)數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換后輸出所需要的波形。這樣的逐點(diǎn)任意波形發(fā)生器產(chǎn)生的波形抖動(dòng)低、采樣率變化范圍廣,但由于借助嵌入式處理器和fpga實(shí)現(xiàn),且需要多個(gè)存儲(chǔ)器,其硬件結(jié)構(gòu)復(fù)雜,成本較高。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本申請(qǐng)?zhí)峁┮环N基于soc的逐點(diǎn)任意波形發(fā)生器,該逐點(diǎn)任意波形發(fā)生器硬件結(jié)構(gòu)簡(jiǎn)單,成本更低,實(shí)現(xiàn)更容易。
根據(jù)本申請(qǐng)的第一方面,本申請(qǐng)?zhí)峁┮环N基于soc的逐點(diǎn)任意波形產(chǎn)生方法,包括:
接收輸入的波形類型、頻率和初始相位信息,進(jìn)行波形復(fù)制,生成相應(yīng)的波形數(shù)據(jù)并將其存儲(chǔ)于存儲(chǔ)器中,之后,輸出產(chǎn)生波形信號(hào);
獲取產(chǎn)生波形信號(hào),根據(jù)所述波形類型、頻率和初始相位信息,在所述存儲(chǔ)器中讀取相應(yīng)的波形數(shù)據(jù),逐點(diǎn)生成波形點(diǎn),并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出至數(shù)模轉(zhuǎn)換器;
在數(shù)模轉(zhuǎn)換器中對(duì)所述波形點(diǎn)數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換,輸出所需要的波形。
在一些實(shí)施例中,所述存儲(chǔ)器包括ddr3存儲(chǔ)器。
在一些實(shí)施例中,其特征在于,存儲(chǔ)于存儲(chǔ)器的波形數(shù)據(jù)在被讀取后以dma方式傳輸,每次傳輸,傳輸一張dma表。
在一些實(shí)施例中,所述波形復(fù)制包括:
如果l<ldmamax/2,波形需要復(fù)制m次,其中,
如果l>ldmamax/2,則不復(fù)制波形數(shù)據(jù)。
在一些實(shí)施例中,波形數(shù)據(jù)被dma傳輸時(shí),
如果l<ldmamax/2,每次傳輸m+1個(gè)周期的波形數(shù)據(jù),dma表的長(zhǎng)度可表示為ldma=(m+1)*l;
如果ldmamax>l>ldmamax/2,每次傳輸1個(gè)周期的波形數(shù)據(jù),dma表的長(zhǎng)度可表示為ldma=l;
如果ldmamax<l,傳輸1個(gè)周期的波形數(shù)據(jù)需要n張dma表,需傳輸n次,dma表的長(zhǎng)度可表示為ldma=l/n,其中,n=ceiling(l/ldmamax),ceiling表示向上取整。
根據(jù)本申請(qǐng)的第二方面,本申請(qǐng)?zhí)峁┮环N基于soc的逐點(diǎn)任意波形發(fā)生器,包括:ps處理器、pl數(shù)字電路、數(shù)據(jù)交互模塊、存儲(chǔ)器和數(shù)模轉(zhuǎn)換器;
ps處理器用于接收輸入的波形類型、頻率和初始相位信息,進(jìn)行波形復(fù)制,生成波形數(shù)據(jù),并通過(guò)所述數(shù)據(jù)交互模塊將其存儲(chǔ)于所述存儲(chǔ)器中,之后,輸出產(chǎn)生波形信號(hào)以及起始地址和dma表長(zhǎng)度;
pl數(shù)字電路與所述ps處理器相連接,獲取產(chǎn)生波形信號(hào),根據(jù)所述起始地址和dma表長(zhǎng)度,通過(guò)所述數(shù)據(jù)交互模塊在所述存儲(chǔ)器中讀取相應(yīng)的波形數(shù)據(jù),根據(jù)所述波形類型、頻率和初始相位信息,逐點(diǎn)生成波形點(diǎn),并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出至數(shù)模轉(zhuǎn)換器;
數(shù)據(jù)交互模塊,數(shù)據(jù)交互模塊一端與所述存儲(chǔ)器相連接,另一端分別與ps處理器和pl數(shù)字電路相連接,用于控制所述存儲(chǔ)器中波形數(shù)據(jù)的存入與讀取,使得所述ps處理器和pl數(shù)字電路共享所述存儲(chǔ)器;
存儲(chǔ)器用于存儲(chǔ)波形復(fù)制的程序和所述波形數(shù)據(jù);
數(shù)模轉(zhuǎn)換器對(duì)所述波形點(diǎn)數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換,輸出所需要的波形。
在一些實(shí)施例中,所述pl數(shù)字電路包括fifo模塊和逐點(diǎn)任意波產(chǎn)生模塊,逐點(diǎn)任意波產(chǎn)生模塊通過(guò)獲取產(chǎn)生波形信號(hào),向數(shù)據(jù)交互模塊輸出請(qǐng)求讀取信號(hào),波形數(shù)據(jù)從所述存儲(chǔ)器中讀取后,先被發(fā)送至fifo模塊中緩存,所述fifo模塊按先入先出的方式將緩存的所述波形數(shù)據(jù)再發(fā)送給所述逐點(diǎn)任意波產(chǎn)生模塊,在接收到所述波形數(shù)據(jù)后,所述逐點(diǎn)任意波產(chǎn)生模塊根據(jù)所述波形類型、頻率和初始相位信息,逐點(diǎn)生成波形點(diǎn)并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出。在一些實(shí)施例中,所述pl數(shù)字電路還包括dma模塊,dma模塊連接于所述數(shù)據(jù)交互模塊與fifo模塊之間,用于在所述數(shù)據(jù)交互模塊從所述存儲(chǔ)器中讀取波形數(shù)據(jù)后,將所述波形數(shù)據(jù)以dma方式傳輸至所述fifo模塊。
在一些實(shí)施例中,所述dma模塊還與所述ps處理器相連接,接收所述ps處理器配置的起始地址和dma表長(zhǎng)度。
根據(jù)本申請(qǐng)的第三方面,本申請(qǐng)?zhí)峁┮环N基于soc的逐點(diǎn)任意波形發(fā)生器,包括:
存儲(chǔ)器,用于存儲(chǔ)程序;
處理器,用于通過(guò)執(zhí)行所述存儲(chǔ)器存儲(chǔ)的程序以實(shí)現(xiàn)上述本申請(qǐng)的第一方面中任一項(xiàng)所述的方法。
根據(jù)本申請(qǐng)的第四方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括程序,所述程序能夠被處理器執(zhí)行以實(shí)現(xiàn)如本申請(qǐng)的第一方面中任一項(xiàng)所述的方法。
本申請(qǐng)的有益效果是:本申請(qǐng)?zhí)峁┑闹瘘c(diǎn)任意波形發(fā)生器基于soc,將ps處理器11充當(dāng)嵌入式處理器,將pl數(shù)字電路12充當(dāng)fpga等數(shù)字處理芯片,不需要各種電子器件、芯片和互連線共同配合,便可產(chǎn)生逐點(diǎn)任意波形,使得系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)化,而且通過(guò)數(shù)據(jù)交互模塊實(shí)現(xiàn)ps處理器與pl數(shù)字電路共享一個(gè)ddr3存儲(chǔ)器,省去了一個(gè)ddr3存儲(chǔ)器,進(jìn)一步簡(jiǎn)化了系統(tǒng)硬件結(jié)構(gòu),降低了成本。
附圖說(shuō)明
圖1為現(xiàn)有的逐點(diǎn)任意波形發(fā)生器結(jié)構(gòu)框圖;
圖2為本申請(qǐng)?zhí)峁┑囊环N基于soc的逐點(diǎn)任意波形發(fā)生器結(jié)構(gòu)框圖;
圖3為本申請(qǐng)?zhí)峁┑囊环N基于soc的雙通道任意波形發(fā)生器的逐點(diǎn)任意波形產(chǎn)生過(guò)程示意圖;
圖4為本申請(qǐng)?zhí)峁┑囊环N基于soc的逐點(diǎn)任意波形產(chǎn)生方法程序流程圖;
圖5為本申請(qǐng)的波形復(fù)制和dma傳輸過(guò)程示意圖。
具體實(shí)施方式
下面通過(guò)具體實(shí)施方式結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。其中不同實(shí)施方式中類似元件采用了相關(guān)聯(lián)的類似的元件標(biāo)號(hào)。在以下的實(shí)施方式中,很多細(xì)節(jié)描述是為了使得本申請(qǐng)能被更好的理解。然而,本領(lǐng)域技術(shù)人員可以毫不費(fèi)力的認(rèn)識(shí)到,其中部分特征在不同情況下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情況下,本申請(qǐng)相關(guān)的一些操作并沒(méi)有在說(shuō)明書(shū)中顯示或者描述,這是為了避免本申請(qǐng)的核心部分被過(guò)多的描述所淹沒(méi),而對(duì)于本領(lǐng)域技術(shù)人員而言,詳細(xì)描述這些相關(guān)操作并不是必要的,他們根據(jù)說(shuō)明書(shū)中的描述以及本領(lǐng)域的一般技術(shù)知識(shí)即可完整了解相關(guān)操作。
另外,說(shuō)明書(shū)中所描述的特點(diǎn)、操作或者特征可以以任意適當(dāng)?shù)姆绞浇Y(jié)合形成各種實(shí)施方式。同時(shí),方法描述中的各步驟或者動(dòng)作也可以按照本領(lǐng)域技術(shù)人員所能顯而易見(jiàn)的方式進(jìn)行順序調(diào)換或調(diào)整。因此,說(shuō)明書(shū)和附圖中的各種順序只是為了清楚描述某一個(gè)實(shí)施例,并不意味著是必須的順序,除非另有說(shuō)明其中某個(gè)順序是必須遵循的。
soc是systemonchip的縮寫,也即片上系統(tǒng),在集成電路領(lǐng)域,它的定義為:由多個(gè)具有特定功能的集成電路組合在一個(gè)芯片上形成的系統(tǒng)或產(chǎn)品,其中包含完整的硬件系統(tǒng)及其承載的嵌入式軟件。跟“chip”的定義類似,soc更強(qiáng)調(diào)的是一個(gè)整體,這意味著,在soc上,能完成一個(gè)電子系統(tǒng)的功能,而這個(gè)系統(tǒng)在以前往往需要一個(gè)或多個(gè)電路板,以及板上的各種電子器件、芯片和互連線共同配合來(lái)實(shí)現(xiàn)。本申請(qǐng)中,soc代替了現(xiàn)有技術(shù)中的嵌入式處理器和fpga等數(shù)字處理芯片,簡(jiǎn)化了逐點(diǎn)任意波形發(fā)生器的硬件結(jié)構(gòu),成本更低,實(shí)現(xiàn)更容易。
請(qǐng)參考圖2,為本申請(qǐng)?zhí)峁┑囊环N基于soc的逐點(diǎn)任意波形發(fā)生器結(jié)構(gòu)框圖,該逐點(diǎn)任意波形發(fā)生器包括soc1、存儲(chǔ)器2和數(shù)模轉(zhuǎn)換器3。
soc1外部掛載存儲(chǔ)器2,接收輸入的波形類型、頻率和初始相位信息,進(jìn)行波形復(fù)制,生成相應(yīng)的波形數(shù)據(jù)并將其存儲(chǔ)于存儲(chǔ)器2中;根據(jù)波形類型、頻率和初始相位信息,在存儲(chǔ)器2中讀取波形數(shù)據(jù),逐點(diǎn)生成波形點(diǎn),并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出至數(shù)模轉(zhuǎn)換器。
存儲(chǔ)器2用于soc1內(nèi)部嵌入式軟件的運(yùn)行和存儲(chǔ)波形數(shù)據(jù),包括存儲(chǔ)波形復(fù)制程序和波形數(shù)據(jù)。優(yōu)選地,存儲(chǔ)器2為ddr3存儲(chǔ)器。
數(shù)模轉(zhuǎn)換器3用于接收soc1輸出的波形點(diǎn)數(shù)據(jù),并對(duì)其進(jìn)行數(shù)模轉(zhuǎn)換,輸出所需要的波形。
進(jìn)一步,soc1包括ps處理器11、pl數(shù)字電路12和數(shù)據(jù)交互模塊13。ps處理器11接收輸入的波形類型、頻率和初始相位信息,進(jìn)行波形復(fù)制,生成波形數(shù)據(jù),并通過(guò)數(shù)據(jù)交互模塊13將波形數(shù)據(jù)存儲(chǔ)于存儲(chǔ)器2中,之后,輸出產(chǎn)生波形信號(hào)以及起始地址和波形長(zhǎng)度參數(shù);pl數(shù)字電路12與ps處理器11相連接,獲取產(chǎn)生波形信號(hào),根據(jù)起始地址和波形長(zhǎng)度參數(shù),通過(guò)數(shù)據(jù)交互模塊13在存儲(chǔ)器2中讀取相應(yīng)的波形數(shù)據(jù),逐點(diǎn)生成波形點(diǎn),并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出至數(shù)模轉(zhuǎn)換器;數(shù)據(jù)交互模塊13一端與存儲(chǔ)器2相連接,另一端分別與ps處理器11和pl數(shù)字電路12相連接,用于控制存儲(chǔ)器2中波形數(shù)據(jù)的存入與讀取,使得ps處理器11和pl數(shù)字電路12共享存儲(chǔ)器2。
pl數(shù)字電路12又包括:fifo模塊122和逐點(diǎn)任意波產(chǎn)生模塊121。fifo模塊122用于緩存從存儲(chǔ)器2中讀取的波形數(shù)據(jù),并將其按先入先出的方式送給逐點(diǎn)任意波產(chǎn)生模塊121;逐點(diǎn)任意波產(chǎn)生模塊121用于獲取產(chǎn)生波形信號(hào),輸出請(qǐng)求讀取信號(hào),并在收到fifo模塊122發(fā)來(lái)的波形數(shù)據(jù)后,逐點(diǎn)任意波產(chǎn)生模塊121根據(jù)所述波形類型、頻率和初始相位信息,逐點(diǎn)生成波形點(diǎn),并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出給數(shù)模轉(zhuǎn)換器3,產(chǎn)生低抖動(dòng)的逐點(diǎn)任意波。
由于逐點(diǎn)任意波產(chǎn)生模塊121生成的逐點(diǎn)波形點(diǎn)的采樣率可高達(dá)數(shù)百兆,這便要求數(shù)據(jù)交互模塊13每秒需要發(fā)送數(shù)百兆點(diǎn)的數(shù)據(jù)給fifo模塊122,這樣的帶寬很大。在一些實(shí)施例中,波形數(shù)據(jù)從存儲(chǔ)器2中讀取后,數(shù)據(jù)交互模塊13與fifo模塊122之間的數(shù)據(jù)傳輸采用dma傳輸模式,因此,pl數(shù)字電路12還包括dma模塊123。
dma模塊123分別與ps處理器11、數(shù)據(jù)交互模塊13、fifo模塊122和逐點(diǎn)任意波產(chǎn)生模塊121相連接,用于響應(yīng)逐點(diǎn)任意波產(chǎn)生模塊121發(fā)出的波形數(shù)據(jù)讀取請(qǐng)求信號(hào)和接收ps處理器11配置的dma起始地址和dma表長(zhǎng)度,將波形數(shù)據(jù)讀取請(qǐng)求信號(hào)和dma起始地址和dma表長(zhǎng)度發(fā)送至數(shù)據(jù)交互模塊13以便讀取相應(yīng)波形數(shù)據(jù);波形數(shù)據(jù)被數(shù)據(jù)交互模塊13從存儲(chǔ)器2中讀取后,dma模塊123以dma方式將波形數(shù)據(jù)傳輸至fifo模塊122中緩存。其中,dma每傳輸一次,需要一張dma表。
需要指出的是,由于采用dma方式傳輸波形數(shù)據(jù),數(shù)據(jù)交互模塊13發(fā)送的數(shù)據(jù)是一段一段的,每段數(shù)據(jù)間會(huì)存在時(shí)間空隙,在時(shí)間空隙中沒(méi)有波形數(shù)據(jù)被傳輸,而逐點(diǎn)任意波是實(shí)時(shí)產(chǎn)生的,為了保證逐點(diǎn)任意波產(chǎn)生模塊121能實(shí)時(shí)接收到波形數(shù)據(jù)并生產(chǎn)連續(xù)的逐點(diǎn)任意波,這便是本申請(qǐng)采用fifo模塊122來(lái)緩存波形數(shù)據(jù)的原因。
參考圖3為本申請(qǐng)?zhí)峁┑囊环N基于soc的逐點(diǎn)任意波形發(fā)生器的逐點(diǎn)任意波形產(chǎn)生過(guò)程為:
(1)ps處理器11接收輸入的波形類型、頻率和初始相位信息,通過(guò)波形復(fù)制,將生成的波形數(shù)據(jù)存儲(chǔ)于存儲(chǔ)器2中;
(2)ps處理器11向逐點(diǎn)任意波產(chǎn)生模塊121輸出產(chǎn)生波形信號(hào)和向dma模塊123配置起始地址和dma表長(zhǎng)度,在獲取產(chǎn)生波形信號(hào)后,逐點(diǎn)任意波產(chǎn)生模塊121向dma模塊123發(fā)送請(qǐng)求讀取信號(hào);
(3)接收到請(qǐng)求讀取信號(hào)后,dma模塊123將請(qǐng)求讀取信號(hào)、起始地址和dma表長(zhǎng)度發(fā)送給數(shù)據(jù)交互模塊13,數(shù)據(jù)交互模塊13根據(jù)起始地址和波形長(zhǎng)度在存儲(chǔ)器2中讀取相應(yīng)的波形數(shù)據(jù);波形數(shù)據(jù)被讀取后,數(shù)據(jù)交互模塊13將波形數(shù)據(jù)通過(guò)dma模塊123發(fā)送至fifo模塊122中緩存;
(4)逐點(diǎn)任意波產(chǎn)生模塊實(shí)時(shí)接收f(shuō)ifo模塊122發(fā)來(lái)的波形數(shù)據(jù),逐點(diǎn)生成波形點(diǎn)并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出至數(shù)模轉(zhuǎn)換器3;
(5)數(shù)模轉(zhuǎn)換器3對(duì)波形點(diǎn)數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換后輸出所需要的逐點(diǎn)任意波。
由此可見(jiàn),與現(xiàn)有技術(shù)對(duì)比,本申請(qǐng)不需要各種電子器件、芯片和互連線共同配合,僅需要soc1就能產(chǎn)生逐點(diǎn)任意波形,其中,ps處理器11充當(dāng)了嵌入式處理器,pl數(shù)字電路12充當(dāng)了fpga等數(shù)字處理芯片,系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)化,而且通過(guò)ps處理器與pl數(shù)字電路共享一個(gè)ddr3存儲(chǔ)器,省去了一個(gè)ddr3存儲(chǔ)器,進(jìn)一步簡(jiǎn)化了系統(tǒng)硬件結(jié)構(gòu),降低了成本。
相應(yīng)地,參考圖4,本申請(qǐng)還提出了一種基于soc的逐點(diǎn)任意波形產(chǎn)生方法,包括:
步驟100,在接收輸入的波形類型、頻率和初始相位信息,通過(guò)波形復(fù)制,生成相應(yīng)的波形數(shù)據(jù)并將其存儲(chǔ)于存儲(chǔ)器2中,輸出產(chǎn)生波形信號(hào);其中,存儲(chǔ)器2為ddr3存儲(chǔ)器,存儲(chǔ)于存儲(chǔ)器2的波形數(shù)據(jù)在被讀取后以dma方式傳輸;
步驟200,獲取產(chǎn)生波形信號(hào),根據(jù)波形類型、頻率和初始相位信息,在存儲(chǔ)器2中讀取相應(yīng)的波形數(shù)據(jù),逐點(diǎn)生成波形點(diǎn),并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出至數(shù)模轉(zhuǎn)換器;
具體地,被讀取的波形數(shù)據(jù)后dma方式傳輸,被發(fā)送至fifo模塊122中緩存,之后,按先入先出的方式將波形數(shù)據(jù)發(fā)送給逐點(diǎn)任意波產(chǎn)生模塊121,逐點(diǎn)任意波產(chǎn)生模塊121再根據(jù)波形類型、頻率和初始相位信息逐點(diǎn)生成相應(yīng)的波形點(diǎn),并將波形點(diǎn)數(shù)據(jù)逐點(diǎn)輸出至數(shù)模轉(zhuǎn)換器;
步驟300,在數(shù)模轉(zhuǎn)換器中對(duì)所述波形點(diǎn)數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換,輸出所需要的波形。
如圖5所示,為本申請(qǐng)的波形復(fù)制和dma傳輸過(guò)程示意圖。
在步驟100中,根據(jù)ddr3存儲(chǔ)器的特性,波形數(shù)據(jù)需要較長(zhǎng)才能保持高的讀取效率,如果波形長(zhǎng)度較短,需要復(fù)制波形,使其波形達(dá)到一定長(zhǎng)度來(lái)提高讀取效率。也就是說(shuō),若波形長(zhǎng)度較短,需要將波形復(fù)制到足夠的長(zhǎng)度后再存入存儲(chǔ)器2中。而且由于存儲(chǔ)于存儲(chǔ)器2的波形數(shù)據(jù)在被讀取后以dma方式傳輸,傳輸時(shí)波形數(shù)據(jù)為一段一段,也要求將波形復(fù)制到足夠的長(zhǎng)度,其中,波形數(shù)據(jù)被以dma方式傳輸時(shí),每次傳輸一張dma表。
假設(shè)l表示波形數(shù)據(jù)的長(zhǎng)度,ldma表示dma表的長(zhǎng)度,ldmamax表示dma表的最大長(zhǎng)度,則,
參考圖(5-a),當(dāng)l<ldmamax/2,波形需要復(fù)制m次,其中,
參考圖(5-b),當(dāng)ldmamax>l>ldmamax/2,不復(fù)制波形數(shù)據(jù);dma傳輸時(shí),每次傳輸1個(gè)周期的波形數(shù)據(jù)需要傳輸1次,共1段dma表,dma表的長(zhǎng)度ldma=l。
參考圖(5-c),當(dāng)ldmamax<l,也不復(fù)制波形數(shù)據(jù);但dma傳輸時(shí),傳輸1個(gè)周期的波形數(shù)據(jù)需要傳輸n次,共n段dma表。每段dma表的長(zhǎng)度ldma=l/n,其中,n=ceiling(l/ldmamax),ceiling表示向上取整。比如,ldmamax=10,l=21,則n=3,ldma=7,1個(gè)周期的波形需要傳輸dma傳輸3次。設(shè)定第一次起始地址為addr,則,第二次起始地址為addr+ldma,第三次起始地址為addr+2*ldma,每次傳輸?shù)亩伍L(zhǎng)為ldma=7。如此一來(lái),可使得fifo模塊122接收的波形數(shù)據(jù)段與段之間的時(shí)間間隙最小化。
本領(lǐng)域技術(shù)人員可以理解,上述實(shí)施方式中各種方法的全部或部分步驟可以通過(guò)程序來(lái)指令相關(guān)硬件完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、磁盤或光盤等。例如,將程序存儲(chǔ)在設(shè)備的存儲(chǔ)器中,當(dāng)需要采用逐點(diǎn)任意波技術(shù)產(chǎn)生任意波形時(shí),通過(guò)處理器執(zhí)行存儲(chǔ)器中程序,即可實(shí)現(xiàn)上述步驟。尤其是在本發(fā)明實(shí)際實(shí)施過(guò)程中,上述步驟中的全部或部分可編寫成獨(dú)立的程序,該程序可存儲(chǔ)在服務(wù)器、磁盤、光盤、閃存盤上,通過(guò)下載保存到本地設(shè)備的存儲(chǔ)器中,或通過(guò)下載對(duì)本地設(shè)備的系統(tǒng)進(jìn)行版本更新,通過(guò)處理器執(zhí)行存儲(chǔ)器中程序,即可實(shí)現(xiàn)上述步驟中的全部或部分功能。
以上內(nèi)容是結(jié)合具體的實(shí)施方式對(duì)本申請(qǐng)所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本申請(qǐng)的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本申請(qǐng)所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本申請(qǐng)發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換。