專利名稱:一種用于任意波形產(chǎn)生系統(tǒng)的處理器的制作方法
技術領域:
本發(fā)明涉及任意波形發(fā)生器技術領域,特別是涉及一種用于任意波形產(chǎn)生系統(tǒng)的處理器。
背景技術:
任意波形發(fā)生器作為常見的測試測量儀器之一,已經(jīng)歷了多年的技術發(fā)展。市場上廣泛使用推廣的同類產(chǎn)品主要分為臺式儀器及總線類虛擬儀器。臺式儀器獨立性較強, 但其體積較大,使用環(huán)境范圍較小,在實現(xiàn)遠程操作及系統(tǒng)集成方面有一定的局限性。而總線類虛擬儀器在系統(tǒng)集成及遠程操作方面具有獨到的優(yōu)越性。目前,基于總線的任意波形發(fā)生器具有產(chǎn)生標準波形、任意波形、任意序列等功能。然而,目前的任意波形發(fā)生器是由計算機根據(jù)需求產(chǎn)生任意波形的所有數(shù)據(jù),然后通過總線下載到波形產(chǎn)生模塊中,波形產(chǎn)生模塊根據(jù)波形數(shù)據(jù)逐點輸出模擬波形。但是,這種計算機統(tǒng)一產(chǎn)生所有波形數(shù)據(jù)的方式速度比較慢,總線中需要傳輸大量的數(shù)據(jù),不能實現(xiàn)任意波形的實時調(diào)度。本申請同日申請了發(fā)明名稱為《一種基于自定義處理器的任意波形產(chǎn)生系統(tǒng)》,如圖1所示,該系統(tǒng)包括控制部分和硬件部分,兩部分通過各自的接口單元進行數(shù)據(jù)交互。波形生成模塊用于產(chǎn)生各種類型、長度和周期的波形段數(shù)據(jù),并分別命名,然后通過波形下載模塊和第一接口單元下載到硬件部分。存儲控制邏輯模塊實現(xiàn)對波形存儲器的讀寫控制。 控制程序生成模塊接收用戶輸入的指令集合,該指令集合指示出了形成所需任意波形需要調(diào)用的波形段名稱、調(diào)用順序、調(diào)用次數(shù)等信息,將該指令集合通過編譯模塊的編譯后下載到硬件部分。自定義波形處理器接收并解析指令集合,按照指令集合指示產(chǎn)生相應波形段的調(diào)用指令,通過存儲控制邏輯模塊讀取波形段數(shù)據(jù);然后按照指令集合指示的波形段的調(diào)用順序和調(diào)用次數(shù),組合波形段數(shù)據(jù)后形成所需的任意波形,并通過信號調(diào)理模塊的處理后輸出。從上述描述可以看出,自定義波形處理器是整個波形產(chǎn)生系統(tǒng)的核心,自定義波形處理器所能支持的指令集決定了所能產(chǎn)生波形的復雜程度和本身實現(xiàn)的復雜程度。
發(fā)明內(nèi)容
鑒于目前市場上的任意波形發(fā)生器的任意波形和任意序列功能比較簡單,這樣在某些測試中不能夠提供較為復雜的任意波形或任意序列功能,因此,本發(fā)明提供了一種用于任意波形產(chǎn)生系統(tǒng)的自定義處理器,通過對該處理器能夠支持的指令集進行設計,從而簡化波形產(chǎn)生的復雜程度,提供整體執(zhí)行速度,進而提升任意波形發(fā)生器類產(chǎn)品的功能和性能。該方案是這樣實現(xiàn)的一種用于任意波形產(chǎn)生系統(tǒng)的處理器,其特征在于,包括處理器內(nèi)核、指令緩沖單元、循環(huán)次數(shù)標記單元、Marker標記存儲單元、外部控制條件輸入單元;
指令緩沖單元,用于緩存來自外部計算機的指令集合;處理器內(nèi)核,用于從所述指令集合中逐一讀取并執(zhí)行每一條指令;所述處理器內(nèi)核支持的指令集由波形產(chǎn)生指令、循環(huán)控制指令、條件跳轉指令、等待指令和清除觸發(fā)條件指令組成;當處理器內(nèi)核處理波形產(chǎn)生指令時,從波形產(chǎn)生指令中提取波形段名稱,產(chǎn)生相應波形段的調(diào)用指令,并發(fā)送給存儲控制邏輯模塊;將存儲控制邏輯模塊讀取的波形段數(shù)據(jù)逐一按順序輸出到自定義處理器外部信號調(diào)理模塊的FIFO中;波形產(chǎn)生指令中還包括輸出標記列表;所述輸出標記列表存儲到Marker標記存儲單元中,每個輸出標記是一個數(shù)值,處理器內(nèi)核輸出波形段數(shù)據(jù)時,比較當前輸出數(shù)據(jù)個數(shù)與輸出標記列表中的值,如果二者相同,則輸出一個脈沖;當處理器內(nèi)核處理循環(huán)控制指令時,根據(jù)循環(huán)條件按照循環(huán)控制指令指定的順序和次數(shù)循環(huán)執(zhí)行指定的指令;其中循環(huán)的次數(shù)標記存儲在所述循環(huán)次數(shù)標記單元中;當處理器內(nèi)核處理條件跳轉指令時,首先判斷跳轉條件是否成立,在條件成立的情況下,執(zhí)行指定的指令;當處理器內(nèi)核處理等待指令時,不斷判斷等待指令指定的等待結束條件是否滿足,在滿足的情況下,執(zhí)行后續(xù)指令;當處理器內(nèi)核處理清除觸發(fā)條件指令時,將觸發(fā)條件TriggerO置為低;當所述觸發(fā)條件TriggerO作為等待結束條件和/或循環(huán)條件和/或跳轉條件時,處理器內(nèi)核根據(jù) TriggerO的值判斷相應條件是否成立;所述Marker標記存儲單元,用于緩存所述輸出標記列表;所述外部控制條件輸入單元,用于將外部輸入的觸發(fā)條件TriggerO傳輸給處理器內(nèi)核。優(yōu)選地,所述波形產(chǎn)生指令Generate帶子集參數(shù)subset 起始位置 >,< 結束位置>);所述處理器內(nèi)核執(zhí)行波形產(chǎn)生指令Generate時,判斷Generate是否帶子集參數(shù) subset,如果是,則從待輸出的波形段數(shù)據(jù)中提取所述起始位置和所述結束位置之間的數(shù)據(jù)輸出;否則,將波形段數(shù)據(jù)整體輸出。優(yōu)選地,所述循環(huán)控制指令格式為Repeat 循環(huán)條件代碼段Aend Repeat所述代碼段A由所述指令集中的指令組成;所述循環(huán)條件包括以下三種情況①所述循環(huán)條件為N,N為一正整數(shù),則R印eat指令實現(xiàn)有限次循環(huán),所述處理器內(nèi)核將代碼段A循環(huán)執(zhí)行N次;②所述循環(huán)條件為永遠forever,則R印eat指令實現(xiàn)無限次循環(huán),所述處理器內(nèi)核將代碼段A無限制的循環(huán)下去,直到處理器內(nèi)核掉電或被復位;③所述循環(huán)條件為“until TriggerO則R印eat指令實現(xiàn)腳本條件循環(huán),所述處理器內(nèi)核將代碼段A不停循環(huán)下去,直到處理器檢測到所述TriggerO為邏輯高為止。
優(yōu)選地,所述條件跳轉指令格式為If TriggerO代碼段BElse代碼段CEnd if所述代碼段B和代碼段C均由所述指令集中的指令組成;所述處理器內(nèi)核執(zhí)行該條件跳轉指令時,首先判斷所述TriggerO是否為邏輯高, 如果是,則將代碼段B執(zhí)行一遍,否則將代碼段C執(zhí)行一遍。優(yōu)選地,所述等待指令格式為Wait等待結束條件所述等待結束條件包括以下兩種情況①所述等待結束條件為N,N為一正整數(shù);所述處理器內(nèi)核執(zhí)行該等待指令時,將等待延時計數(shù)器賦值N,每個處理器時鐘周期將該等待延時計數(shù)器減1并判斷是否為0,如果不等于0則繼續(xù)執(zhí)行減1和判斷操作,如果等于0則執(zhí)行后續(xù)指令;②所述等待結束條件為TriggerO ;所述處理器內(nèi)核執(zhí)行該等待指令時,不停判斷 TriggerO信號的值,如果為低則一直停留在該等待指令,如果為高,則執(zhí)行后續(xù)指令。有益效果本發(fā)明所設計的自定義處理器能夠支持5條指令組成的指令集,由于指令類型很少,因此處理器設計復雜程度大大降低,而且通過這種簡單指令的編程就能夠實現(xiàn)較為復雜的任意波形和任意序列功能,編程簡單,而且程序段非常短小,能夠進一步減小波形產(chǎn)生系統(tǒng)控制部分和硬件部分之間的數(shù)據(jù)傳輸量。
圖1為基于自定義處理器的任意波形產(chǎn)生系統(tǒng)的組成結構示意圖。圖2為本發(fā)明自定義波形處理器的結構示意圖。
具體實施例方式下面結合附圖并舉實施例,對本發(fā)明進行詳細描述。圖2為本發(fā)明用于任意波形產(chǎn)生系統(tǒng)的自定義處理器,如圖2所示,該處理器包括處理器內(nèi)核、指令緩沖單元、循環(huán)次數(shù)標記單元、Marker標記存儲單元、外部控制條件輸入單元。該自定義處理器可以集成在FPGA中。指令緩沖單元,用于緩存來自外部計算機的指令集合。處理器內(nèi)核,用于從指令緩沖單元緩存的指令集合中逐一讀取并執(zhí)行每一條指令。本發(fā)明中,處理器內(nèi)核支持如下5條指令構成的指令集,所述5條指令由波形產(chǎn)生指令 Generate、循環(huán)控制指令、條件跳轉指令、等待指令和清除觸發(fā)條件指令組成。下面一一介紹各指令的功能和處理器內(nèi)核的處理過程。(I)Generate的功能是產(chǎn)生一個任意波形段,該任意波形的數(shù)據(jù)從任意波形產(chǎn)生系統(tǒng)的波形存儲器中提取。
當處理器內(nèi)核執(zhí)行指令Generate時,處理器內(nèi)核從該波形產(chǎn)生指令中提取波形段名稱,產(chǎn)生相應波形段的調(diào)用指令,并發(fā)送給外部的存儲控制邏輯模塊;將存儲控制邏輯模塊從波形存儲器讀取的波形段數(shù)據(jù)逐一按順序輸出到自定義處理器外部的信號調(diào)理模塊的FIFO中。信號調(diào)理模塊檢測到內(nèi)部FIFO為非空時,將FIFO中的數(shù)據(jù)進行數(shù)模轉換并輸出。Generate必要的參數(shù)為波形段名稱,如果僅有波形段名稱,則處理器內(nèi)核輸出整段的波形數(shù)據(jù)。為了提高輸出信號的豐富性和靈活度,通過設置子集參數(shù)使得該Generate指令支持子集輸出和標記輸出。具體來說,Generate nj L^i,¢1 ] ^^marker list of positions ,胃巾 list of positions 為輸出標記列表,其記載了在輸出波形段的過程中需要在波形段的哪個或哪幾個位置輸出脈沖。該輸出標記列表存儲到Marker標記存儲單元中,每個輸出標記是一個數(shù)值,處理器內(nèi)核輸出波形段數(shù)據(jù)時,比較當前輸出數(shù)據(jù)個數(shù)與輸出標記列表中的值,如果二者相同,則輸出一個脈沖給信號調(diào)理模塊,由信號調(diào)理模塊產(chǎn)生脈沖模擬量。Generate還可以攜帶子集參數(shù)subset (<起始位置 >,< 結束位置 >);處理器內(nèi)核執(zhí)行波形產(chǎn)生指令Generate時,判斷Generate是否帶子集參數(shù)subset,如果是,則從待輸出的波形段數(shù)據(jù)中提取起始位置和結束位置之間的數(shù)據(jù)輸出;否則,將波形段數(shù)據(jù)整體輸
出ο那么Generate指令的格式表述完整可以為Genernate<波形段名稱>subset(<起始位置 >,〈結束位置>)marker (<輸出標記列表 。(2)循環(huán)控制指令的功能是重復執(zhí)行一段代碼,其能夠支持高達16層循環(huán)嵌套。當處理器內(nèi)核執(zhí)行循環(huán)控制指令時,處理器內(nèi)核根據(jù)循環(huán)條件按照循環(huán)控制指令指定的順序和次數(shù)循環(huán)執(zhí)行指定的指令;其中循環(huán)的次數(shù)標記存儲在所述循環(huán)次數(shù)標記單元中。為了提高循環(huán)執(zhí)行的靈活性,本發(fā)明提供了多種循環(huán)條件。那么,循環(huán)控制指令的格式可以為Repeat 循環(huán)條件指令1...指令Mend Repeat其中,指令1 指令M均從指令集中選取。所述循環(huán)條件包括以下三種情況①循環(huán)條件為“N”,N為一正整數(shù),則R印eat指令實現(xiàn)有限次循環(huán),處理器內(nèi)核將指令1 指令M共M條指令循環(huán)執(zhí)行N次;②循環(huán)條件為“forever”(永遠),則R印eat指令實現(xiàn)無限次循環(huán),處理器內(nèi)核將指令1 指令M共M條指令無限制的循環(huán)下去,直到處理器內(nèi)核掉電或被復位;③循環(huán)條件為“直到TriggerO為邏輯高即until TriggerO則R印eat指令實現(xiàn)腳本條件循環(huán),處理器內(nèi)核將指令1 指令M共M條指令不停循環(huán)執(zhí)行下去,直到處理器檢測到所述TriggerO為邏輯高為止。其中,TriggerO為觸發(fā)條件,是通過外部控制條件輸入單元輸入到處理器內(nèi)核的。(3)條件跳轉指令的功能是選擇執(zhí)行一段代碼,嵌套深度僅受指令存儲空間限制。當處理器內(nèi)核執(zhí)行條件跳轉指令時,首先判斷跳轉條件是否成立,在條件成立的情況下,執(zhí)行指定的指令。其中,為了不設置新變量,本發(fā)明采用外部輸入的觸發(fā)條件TriggerO作為跳轉條件。那么條件跳轉指令的格式可以為If TriggerO指令1...指令MElse指令M+1...指令LEnd if所述處理器內(nèi)核執(zhí)行該條件跳轉指令時,首先判斷所述TriggerO是否為邏輯高, 如果是,則將指令1 指令M共M條指令執(zhí)行一遍,否則將指令M+1 指令L共L-M條指令
執(zhí)行一遍。(4)等待指令的功能是等待直到等待結束條件滿足。當處理器內(nèi)核執(zhí)行等待指令時,不斷判斷等待指令指定的等待結束條件是否滿足,在滿足的情況下,執(zhí)行下一條指令,如果不滿足則繼續(xù)判斷。本實施例中跳轉指令的格式為Wait等待結束條件所述等待結束條件包括等待延時和等待觸發(fā)條件TriggerO ①等待結束條件為N,N為一正整數(shù);處理器內(nèi)核執(zhí)行該等待指令時,將等待延時計數(shù)器賦值N,每個處理器時鐘周期將該等待延時計數(shù)器減1并判斷是否為0,如果不等于 0則繼續(xù)執(zhí)行減1和判斷操作,如果等于0則執(zhí)行下一條指令。②等待結束條件為TriggerO ;處理器內(nèi)核執(zhí)行該等待指令時,不停判斷TriggerO 信號的值,如果為低則一直停留在該等待指令,如果為高,則執(zhí)行下一條指令。(5)清除觸發(fā)條件指令的功能是清除TriggerO。當處理器內(nèi)核執(zhí)行清除觸發(fā)指令時,將觸發(fā)條件TriggerO置為低。該清除觸發(fā)指令的格式可以為Clear TriggerO以上就是處理器內(nèi)核的功能。Marker標記存儲單元,用于緩存所述輸出標記列表。外部控制條件輸入單元,用于將外部輸入的觸發(fā)條件TriggerO傳輸給處理器內(nèi)核。前面已經(jīng)提到,觸發(fā)條件TriggerO可以作為等待結束條件、循環(huán)條件、跳轉條件。下面舉一個具體例子。
首先輸出waveformA的子集(10,1000),標記輸出100和200 ;接著重復輸出 waveformB 10次;接著清除觸發(fā)信號TriggerO ;接著等待100個處理器周期;在這期間外界可以選擇通過外部控制條件輸入單元將TriggerO置為高或不做操作。這會影響到最后的輸出。最后根據(jù)iTriggerO觸發(fā)條件輸出waveformC或輸出waveformD。再此之前waveformA waveformD已經(jīng)存儲到波形存儲器中。
Generate waveformA subset (10,1000 ) marker (100,200 ) Repeat 10
WaveformB End Repeat Clear TiggerO Wait 100 IfTiggerO
Generate waveformC
Else
Generate waveformD End if 綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種用于任意波形產(chǎn)生系統(tǒng)的處理器,其特征在于,包括處理器內(nèi)核、指令緩沖單元、循環(huán)次數(shù)標記單元、Marker標記存儲單元、外部控制條件輸入單元;指令緩沖單元,用于緩存來自外部計算機的指令集合;處理器內(nèi)核,用于從所述指令集合中逐一讀取并執(zhí)行每一條指令;所述處理器內(nèi)核支持的指令集由波形產(chǎn)生指令、循環(huán)控制指令、條件跳轉指令、等待指令和清除觸發(fā)條件指令組成;當處理器內(nèi)核處理波形產(chǎn)生指令時,從波形產(chǎn)生指令中提取波形段名稱,產(chǎn)生相應波形段的調(diào)用指令,并發(fā)送給存儲控制邏輯模塊;將存儲控制邏輯模塊讀取的波形段數(shù)據(jù)逐一按順序輸出到自定義處理器外部信號調(diào)理模塊的FIFO中;波形產(chǎn)生指令中還包括輸出標記列表;所述輸出標記列表存儲到Marker標記存儲單元中,每個輸出標記是一個數(shù)值, 處理器內(nèi)核輸出波形段數(shù)據(jù)時,比較當前輸出數(shù)據(jù)個數(shù)與輸出標記列表中的值,如果二者相同,則輸出一個脈沖;當處理器內(nèi)核處理循環(huán)控制指令時,根據(jù)循環(huán)條件按照循環(huán)控制指令指定的順序和次數(shù)循環(huán)執(zhí)行指定的指令;其中循環(huán)的次數(shù)標記存儲在所述循環(huán)次數(shù)標記單元中;當處理器內(nèi)核處理條件跳轉指令時,首先判斷跳轉條件是否成立,在條件成立的情況下,執(zhí)行指定的指令;當處理器內(nèi)核處理等待指令時,不斷判斷等待指令指定的等待結束條件是否滿足,在滿足的情況下,執(zhí)行后續(xù)指令;當處理器內(nèi)核處理清除觸發(fā)條件指令時,將觸發(fā)條件TriggerO置為低;當所述觸發(fā)條件TriggerO作為等待結束條件和/或循環(huán)條件和/或跳轉條件時,處理器內(nèi)核根據(jù) TriggerO的值判斷相應條件是否成立;所述Marker標記存儲單元,用于緩存所述輸出標記列表;所述外部控制條件輸入單元,用于將外部輸入的觸發(fā)條件TriggerO傳輸給處理器內(nèi)核。
2.如權利要求1所述的處理器,其特征在于,所述波形產(chǎn)生指令Generate帶子集參數(shù) subset 起始位置 >,< 結束位置 ;所述處理器內(nèi)核執(zhí)行波形產(chǎn)生指令Generate時,判斷Generate是否帶子集參數(shù) subset,如果是,則從待輸出的波形段數(shù)據(jù)中提取所述起始位置和所述結束位置之間的數(shù)據(jù)輸出;否則,將波形段數(shù)據(jù)整體輸出。
3.如權利要求1所述的處理器,其特征在于,所述循環(huán)控制指令格式為 Repeat 循環(huán)條件代碼段A end Repeat所述代碼段A由所述指令集中的指令組成; 所述循環(huán)條件包括以下三種情況①所述循環(huán)條件為N,N為一正整數(shù),則R印eat指令實現(xiàn)有限次循環(huán),所述處理器內(nèi)核將代碼段A循環(huán)執(zhí)行N次;②所述循環(huán)條件為永遠forever,則R印eat指令實現(xiàn)無限次循環(huán),所述處理器內(nèi)核將代碼段A無限制的循環(huán)下去,直到處理器內(nèi)核掉電或被復位;③所述循環(huán)條件為“until TriggerO",則R印eat指令實現(xiàn)腳本條件循環(huán),所述處理器內(nèi)核將代碼段A不停循環(huán)下去,直到處理器檢測到所述TriggerO為邏輯高為止。
4.如權利要求1所述的處理器,其特征在于,所述條件跳轉指令格式為 If TriggerO代碼段B Else 代碼段C End if所述代碼段B和代碼段C均由所述指令集中的指令組成;所述處理器內(nèi)核執(zhí)行該條件跳轉指令時,首先判斷所述TriggerO是否為邏輯高,如果是,則將代碼段B執(zhí)行一遍,否則將代碼段C執(zhí)行一遍。
5.如權利要求1所述的處理器,其特征在于,所述等待指令格式為 Wait等待結束條件所述等待結束條件包括以下兩種情況①所述等待結束條件為N,N為一正整數(shù);所述處理器內(nèi)核執(zhí)行該等待指令時,將等待延時計數(shù)器賦值N,每個處理器時鐘周期將該等待延時計數(shù)器減1并判斷是否為0,如果不等于0則繼續(xù)執(zhí)行減1和判斷操作,如果等于0則執(zhí)行后續(xù)指令;②所述等待結束條件為TriggerO;所述處理器內(nèi)核執(zhí)行該等待指令時,不停判斷 TriggerO信號的值,如果為低則一直停留在該等待指令,如果為高,則執(zhí)行后續(xù)指令。
全文摘要
本發(fā)明公開了一種用于任意波形產(chǎn)生系統(tǒng)的處理器,指令緩沖單元緩存來自外部計算機的指令集合;處理器內(nèi)核從指令集合中逐一讀取并執(zhí)行每一條指令,其支持的指令集由波形產(chǎn)生指令、循環(huán)控制指令、條件跳轉指令、等待指令和清除觸發(fā)條件指令組成,波形產(chǎn)生指令中還包括輸出標記列表,按列表輸出脈沖;Marker標記存儲單元用于緩存輸出波形數(shù)據(jù)時輸出脈沖的輸出標記列表;外部控制條件輸入單元將外部輸入的觸發(fā)條件傳輸給處理器內(nèi)核,該觸發(fā)條件可以作為各指令的執(zhí)行條件。本發(fā)明通過對該處理器能夠支持的指令集進行設計,從而簡化波形產(chǎn)生的復雜程度,提供整體執(zhí)行速度,進而提升任意波形發(fā)生器類產(chǎn)品的功能和性能。
文檔編號G06F1/02GK102520760SQ201110430689
公開日2012年6月27日 申請日期2011年12月20日 優(yōu)先權日2011年12月20日
發(fā)明者劉金川, 史浩, 智國寧, 武福存, 王石記 申請人:北京航天測控技術有限公司