新四季網

一種算法轉換的方法及裝置製造方法

2023-06-24 16:13:36

一種算法轉換的方法及裝置製造方法
【專利摘要】本發明適用於電子設計自動化【技術領域】,提供了一種算法轉換的方法,所述方法包括:將C語言程序或C語言程序的流程圖轉化為狀態圖;將所述的狀態圖簡化得到簡化的狀態圖,所述簡化的狀態圖包括控制邏輯和運算邏輯;將所述簡化的狀態圖中的運算邏輯分離出來,用硬體來實現,實現後的結果為數據路徑;將所述簡化的狀態圖中的控制邏輯分離出來,用硬體來實現,實現後的結果為控制器;使用硬體描述語言HDL來實現所述數據路徑和所述控制器。本發明通過將C語言轉換為狀態圖並構造數據路徑和控制器,用HDL來實現所述數據路徑和所述控制器,解決了現有技術存在的將C語言轉換為HDL硬體實現不具有通用性的問題。
【專利說明】一種算法轉換的方法及裝置
【技術領域】
[0001 ] 本發明屬於電子設計自動化【技術領域】,尤其涉及一種算法轉換的方法及裝置。
【背景技術】
[0002]將C語言算法轉換為手工編制硬體描述語言HDL硬體實現的方法很多,但是基本上都沒有通用性。
[0003]現有技術中,C語言是軟體設計中主流的程序設計語言,而HDL是硬體設計中主流的硬體描述語言,兩者應用領域不同,所以兩種語言之間的轉換涉及兩個不同的領域。
[0004]針對實際硬體的設計問題,設計者往往是首先使用C語言進行算法驗證,然後再根據C語言的算法和思路編制HDL來實現硬體設計。這種C語言轉換為HDL的實現方法,是基於C語言的算法和思路,因此不同的設計者會有不同的實現方法,所以這種實現方法不具有通用性。

【發明內容】

[0005]本發明實施例的目的在於提供一種算法轉換的方法及裝置,以解決現有技術存在的C語言轉換為HDL硬體實現不具有通用性問題。
[0006]本發明的實施例是這樣實現的,一種算法轉換的方法,所述方法包括以下步驟:
[0007]將C語言程序或C語言程序的流程圖轉化為狀態圖;
[0008]將所述的狀態圖簡化得到簡化的狀態圖,所述簡化的狀態圖包括控制邏輯和運算邏輯;
[0009]將所述簡化的狀態圖中的運算邏輯分離出來,用硬體來實現,實現後的結果為數據路徑;
[0010]將所述簡化的狀態圖中的控制邏輯分離出來,用硬體來實現,實現後的結果為控制器;
[0011]使用硬體描述語言HDL來實現所述數據路徑和所述控制器。
[0012]本發明的實施例的另一目的在於提供一種算法轉換的裝置,所述包括:
[0013]轉換單元,用於將C語言程序或C語言程序的流程圖轉化為狀態圖;
[0014]簡化單元,用於將所述的狀態圖簡化得到簡化的狀態圖,所述簡化的狀態圖包括控制邏輯和運算邏輯;
[0015]第一分離單元,用於將所述簡化的狀態圖中的運算邏輯分離出來,用硬體來實現,實現後的結果為數據路徑;
[0016]第二分離單元,用於將所述簡化的狀態圖中的控制邏輯分離出來,用硬體來實現,實現後的結果為控制器;
[0017]實現單元,用於使用硬體描述語言HDL來實現所述數據路徑和所述控制器。
[0018]本發明實施例通過將C語言程序轉換為狀態圖並簡化,最終通過HDL硬體所表達的電路來實現C語言程序,解決了現有技術存在的將C語言轉換為HDL硬體實現不具有通用性問題。
【專利附圖】

【附圖說明】
[0019]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0020]圖1是本發明一實施例提供的算法轉換的方法的實現流程圖;
[0021]圖2是本發明另一實施例提供的根據賦值語句標識、循環語句標識和條件判斷語句標識,找到賦值語句、循環語句和條件判斷語句的內容,放入內容方框的方法示意圖;
[0022]圖3是本發明另一實施例提供的C語言轉換的狀態圖的示意圖;
[0023]圖4是本發明另一實施例提供的簡化的狀態圖的示意圖;
[0024]圖5是本發明另一實施例提供的數據路徑的示意圖;
[0025]圖6是本發明另一實施提供的控制器的示意圖;
[0026]圖7是本發明另一實施例提供的數據路徑和控制器連接的示意圖;
[0027]圖8是本發明另一實施例提供的算法轉換的裝置。
【具體實施方式】
[0028]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0029]本發明一實施例提供了一種算法轉換的方法,所述方法如圖1所示,具體由圖8所示的算法轉換的裝置執行,具體步驟包括:
[0030]Slljf C語言程序或C語言程序的流程圖轉化為狀態圖。
[0031]需要說明的,此方法只對C語言有效,C語言為結構化的語言。
[0032]S12、將所述的狀態圖簡化得到簡化的狀態圖,所述簡化的狀態圖包括控制邏輯和運算邏輯。
[0033]S13、將簡化的狀態圖中的運算邏輯分離出來,用硬體來實現,實現後的結果為數據路徑。
[0034]S14、將所述簡化的狀態圖中的控制邏輯分離出來,用硬體來實現,實現後的結果為控制器。
[0035]S15、使用硬體描述語言HDL來實現所述數據路徑和所述控制器。
[0036]可選的,實現Sll的方法具體為:
[0037]根據賦值語句標識、循環語句標識和條件判斷語句標識,提取賦值語句、循環語句和條件判斷語句,構成狀態圖的內容方框,根據所述賦值語句、循環語句和條件判斷語句的邏輯關係將所述狀態圖的內容方框組合起來,構成狀態圖。
[0038]需要說明的是,C語言中「=」是賦值語句標識,「while」是循環語句標識,「if」、「else」和「else if」是條件判斷語句標識,根據這些標識可以提取對應的語句,形成狀態圖的內容方框,根據這些語句之間的輸入輸出關係,將這些狀態圖的內容方框組合起來,構成狀態圖。
[0039]可選的,實現S12的方法具體為:
[0040]將狀態圖中輸入、輸出和次態都一樣的內容方框合併為一個內容方框,得到所述簡化的狀態圖。
[0041 ] 次態是指邏輯上的下一個內容方框。
[0042]可選的,實現S13方法具體為:
[0043]為C語言程序或C語言流程圖中聲明的變量建立寄存器;
[0044]為簡化的狀態圖的每個運算邏輯建立一個功能單元;
[0045]根據簡化的狀態圖,連接寄存器和數據路徑的輸入端,連接寄存器和功能單元,連接功能單元和數據路徑的輸出端,所述數據路徑的輸入端和數據路徑的輸出端分別用於和控制器的輸出端和輸入端連接,以及用於連接輸入數據和輸出結果;
[0046]根據所述簡化的狀態圖的連接關係,為所述數據路徑的輸入端和數據路徑的輸出端建立唯一的標識符。
[0047]可選的,實現S13的方法還包括:
[0048]對簡化的狀態圖中每個寫變量的操作,建立其他寄存器與所述變量對應的寄存器的連接。
[0049]可選的,實現S13的方法還包括:
[0050]當連接到所述變量對應的寄存器的數據路徑的輸入端、功能單元和其他寄存器的數量總共超過一個時,使用多路選擇器連接所述對應的寄存器與數據路徑的輸入端、功能單元和其他寄存器。
[0051]可選的,實現S14的方法還包括:
[0052]將變量的寫入操作轉換為控制信號,所述控制信號作為寄存器的輸入端信號;
[0053]將條件運算邏輯轉換為控制信號,作為控制器輸出端與數據路徑的輸入端相連接。
[0054]需要說明的是,寫入操作是為變量賦值,寫入操作轉換為控制信號意思是,當控制信號值為預設寫入操作控制值時,則執行寫入操作,否則不執行寫入操作;例如控制信號為O時,而預設寫入操作控制值也為O時,執行寫入操作,當控制信號為I或者其他值時,不執行寫入操作。將條件邏輯運算轉換為控制信號也是同樣的道理,上述條件邏輯運算是指C語言中的if、else if和else所執行的運算
[0055]可選的,上述方法還包括:
[0056]將多路選擇器的選擇信號和寄存器的輸入端信號配合確定寄存器的最終輸入端信號。
[0057]需要說明的是,這裡的配合相當於與門電路,必須多路選擇器的選擇信號和寄存器的輸入端信號符合同樣的條件,將選擇信號或者寄存器的輸入端信號確定為寄存器的最終輸入信號,如果多路選擇器的選擇信號和寄存器的輸入端信號不符合同樣的條件,則上述多路選擇器的選擇信號和寄存器的輸入端信號都不能作為最終輸入端信號。
[0058]可選的,實現S15的方法具體為:
[0059]使用HDL的條件case語句配合真值表實現數據路徑;
[0060]使用HDL的條件case語句配合觸發器實現控制器。[0061]需要說明的是,真值表為數字電路輸入輸出表;通過HDL來實現控制器可以使用流行的電子設計自動化EDA工具,例如synopsys、QuartusII等,數據路徑需要手工編程來實現。
[0062]可選的,上述方法還包括:
[0063]使用工具驗證所述的硬體描述語言HDL所表達的硬體電路。
[0064]需要說明的是,完成HDL所表達的硬體電路後,可以採用modelsim仿真、或QuartusI1、或 ISE 等。
[0065]本發明另一實施例提供一種根據賦值語句標識、循環語句標識和條件判斷語句標識,找到賦值語句、循環語句和條件判斷語句的內容,放入內容方框的方法,所述方法如圖2所示,具體步驟包括:
[0066]根據賦值語句標識「 = 」,將賦值語句放入內容方框;
[0067]根據循環語句標識「while」,確定內容方框的內容,根據圖中所示的條件是否成立,確定內容方框的流向是循環體語句還是下一條語句;
[0068]根據條件判斷語句標識「if」、「else if 」和「else」,確定內容方框的內容,並根據條件判斷內容cl、c2決定內容方框的流向。
[0069]本發明另一實施例提供了一種將C語言程序轉換為狀態圖的方法,所示方法如圖3所示,具體步驟包括:
[0070]以求最大公約數的C語言程序為例,C語言程序如下:
[0071]
O:1nt X,y, r;
[0072]
【權利要求】
1.一種算法轉換的方法,其特徵在於,所述方法包括: 將C語言程序或C語言程序的流程圖轉化為狀態圖; 將所述的狀態圖簡化得到簡化的狀態圖,所述簡化的狀態圖包括控制邏輯和運算邏輯; 將所述簡化的狀態圖中的運算邏輯分離出來,用硬體來實現,實現後的結果為數據路徑; 將所述簡化的狀態圖中的控制邏輯分離出來,用硬體來實現,實現後的結果為控制器; 使用硬體描述語言HDL來實現所述數據路徑和所述控制器。
2.如權利要求1所述的方法,其特徵在於,所述將C語言程序或C語言程序的流程圖轉化為狀態圖具體為: 根據賦值語句標識、循環語句標識和條件判斷語句標識,提取賦值語句、循環語句和條件判斷語句,構成狀態圖的內容方框,根據所述賦值語句、循環語句和條件判斷語句的邏輯關係將所述狀態圖的內容方框組合起來,構成狀態圖。
3.如權利要求1或2所述的方法,其特徵在於,所述將所述的狀態圖簡化得到簡化的狀態圖,所述簡化的狀態圖包括控制邏輯和運算邏輯具體為: 將狀態圖中輸入、輸出和次態都一樣的內容方框合併為一個內容方框,得到所述簡化的狀態圖。
4.如權利要求1所述的方法,其特徵在於,所述將所述簡化的狀態圖中的運算邏輯分離出來,用硬體來實現,實現後的結果為數據路徑具體為: 為C語言程序或C語言流程圖中聲明的變量建立寄存器; 為簡化的狀態圖的每個運算邏輯建立一個功能單元; 根據簡化的狀態圖,連接寄存器和數據路徑的輸入端,連接寄存器和功能單元,連接功能單元和數據路徑的輸出端,所述數據路徑的輸入端和數據路徑的輸出端分別用於和控制器的輸出端和輸入端連接,以及用於連接輸入數據和輸出結果; 根據所述簡化的狀態圖的連接關係,為所述數據路徑的輸入端和數據路徑的輸出端建立唯一的標識符。
5.如權利要求4所述的方法,其特徵在於,所述方法還包括: 對簡化的狀態圖中每個寫變量的操作,建立其他寄存器與所述變量對應的寄存器的連接。
6.如權利要求5所述的方法,其特徵在於,所述方法還包括: 當連接到所述變量對應的寄存器的數據路徑的輸入端、功能單元和其他寄存器的數量總共超過一個時,使用多路選擇器連接所述對應的寄存器與數據路徑的輸入端、功能單元和其他寄存器。
7.如權利要求1至4任一項所述的方法,其特徵在於,所述將所述簡化的狀態圖中的控制邏輯分離出來,用硬體來實現,實現後的結果為控制器具體為: 將變量的寫入操作轉換為控制信號,所述控制信號作為寄存器的輸入端信號; 將條件運算邏輯轉換為控制信號,作為控制器輸出端與數據路徑的輸入端相連接。
8.如權利要求7所述的方法,其特徵在於,所述方法還包括:將多路選擇器的選擇信號和寄存器的輸入端信號配合確定寄存器的最終輸入端信號。
9.如權利要求1所述的方法,其特徵在於,所述使用硬體描述語言HDL來實現所述數據路徑和所述控制器具體為: 使用HDL的條件case語句配合真值表實現數據路徑; 使用HDL的條件case語句配合觸發器實現控制器。
10.如權利要求1所述的方法,其特徵在於,所述方法還包括: 使用工具驗證所述的硬體描述語言HDL所表達的硬體電路。
11.一種算法裝換的裝置,其特徵在於,所述裝置包括: 轉換單元,用於將C語言程序或C語言程序的流程圖轉化為狀態圖; 簡化單元,用於將所述的狀態圖簡化得到簡化的狀態圖,所述簡化的狀態圖包括控制邏輯和運算邏輯 ; 第一分離單元,用於將所述簡化的狀態圖中的運算邏輯分離出來,用硬體來實現,實現後的結果為數據路徑; 第二分離單元,用於將所述簡化的狀態圖中的控制邏輯分離出來,用硬體來實現,實現後的結果為控制器; 實現單元,用於使用硬體描述語言HDL來實現所述數據路徑和所述控制器。
12.如權利要求11所述的裝置,其特徵在於,所述轉換單元具體用於: 根據賦值語句標識、循環語句標識和條件判斷語句標識,提取賦值語句、循環語句和條件判斷語句,構成狀態圖的內容方框,根據所述賦值語句、循環語句和條件判斷語句的邏輯關係將所述狀態圖的內容方框組合起來,構成狀態圖。
13.如權利要求11或12所述的裝置,其特徵在於,所述簡化單元具體用於: 將狀態圖中輸入、輸出和次態都一樣的內容方框合併為一個內容方框,得到所述簡化的狀態圖。
14.如權利要求11所述的裝置,其特徵在於,所述第一分離單元具體用於: 為C語言程序或C語言流程圖中聲明的變量建立寄存器; 為簡化的狀態圖的每個運算邏輯建立一個功能單元; 根據簡化的狀態圖,連接寄存器和數據路徑的輸入端,連接寄存器和功能單元,連接功能單元和數據路徑的輸出端,所述數據路徑的輸入端和數據路徑的輸出端分別用於和控制器的輸出端和輸入端連接,以及用於連接輸入數據和輸出結果; 根據所述簡化的狀態圖的連接關係,為所述數據路徑的輸入端和數據路徑的輸出端建立唯一的標識符。
15.如權利要求14所述的裝置,其特徵在於,所述第一分離單元還包括: 連接模塊,用於對簡化的狀態圖中每個寫變量的操作,建立其他寄存器與所述變量對應的寄存器的連接。
16.如權利要求15所述的裝置,其特徵在於,所述連接模塊還包括: 多路選擇子模塊,用於當連接到所述變量對應的寄存器的數據路徑的輸入端、功能單元和其他寄存器的數量總共超過一個時,使用多路選擇器連接所述對應的寄存器與數據路徑的輸入端、功能單元和其他寄存器。
17.如權利要求11至14任一項所述的裝置,其特徵在於,所述第二分離單元具體用於: 將變量的寫入操作轉換為控制信號,所述控制信號作為寄存器的輸入端信號; 將條件運算邏輯轉換為控制信號,作為控制器輸出端與數據路徑的輸入端相連接。
18.如權利要求17所述的裝置,其特徵在於,所述裝置還包括: 配合單兀,用於將多路選擇器的選擇信號和寄存器的輸入端信號配合確定寄存器的最終輸入端信號。
19.如權利要求11所述的裝置,其特徵在於,所述裝置還包括: 數據路徑實現單元,用於使用HDL的條件case語句配合真值表實現數據路徑; 觸發器實現單元,用於使用HDL的條件case語句配合觸發器實現控制器。
20.如權利要求11所述的裝置,其特徵在於,所述裝置還包括: 驗證單元,用於使用工 具驗證所述的硬體描述語言HDL所表達的硬體電路。
【文檔編號】G06F9/44GK103455318SQ201210583534
【公開日】2013年12月18日 申請日期:2012年12月28日 優先權日:2012年12月28日
【發明者】賀敬凱 申請人:深圳信息職業技術學院

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀