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