[發明專利]基于數據流的C TO HDL同步映射方法在審
| 申請號: | 201410423685.0 | 申請日: | 2014-08-26 |
| 公開(公告)號: | CN104199652A | 公開(公告)日: | 2014-12-10 |
| 發明(設計)人: | 邱涌 | 申請(專利權)人: | 邱涌 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44;G06F17/50 |
| 代理公司: | 無 | 代理人: | 無 |
| 地址: | 471023 河南省洛*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 數據流 to hdl 同步 映射 方法 | ||
技術領域
本發明涉及的是把高級語言轉變為硬件電路結構的一種方法。主要是把C語言中的循環轉變為可綜合的VHDL程序,最終可運行到FPGA或CPLD上的方法。也可以作為芯片的輔助設計。
背景技術
把高級語言轉變為硬件電路主要有兩種方法,一種是直接把C語言直接轉變為配置網表,再使用專門的硬件工具進行布局。但是因為C語言本質上是基于時序的語言,而硬件語言是對硬件結構的描述,所以設計效果不佳。還有一些直接對C語言作了修改,由于改動較大失去了原來C語言的風格。另一種直接把C語言轉變為VHDL語言,再使用當前工具對VHDL進行綜合布線。而所有的FPGA和CPLD都支持VHDL。
目前實現C語言到VHDL的工具很多,如SPARK,ROCCC和DWARV等。SPARK基于SPARK?internedia?representation?開發,生成的VHDL程序采用FSM的控制形式。但是實現countinue和break,需要另外對程序的改動。ROCCC以高級語言作為輸入,生成VHDL程序也是通過FSM控制,但是對控制流支持較差。ROCCC只支持計數類循環,不支持countinue和break。DWARV采用FSM的循環形式,利用數據流圖實現for循環。DWARV只支持計數類循環,不支持非計數類循環。
發明內容
本發明目的在于提供一種基于數據流信號的方法,實現C?to?HDL映射。該映射方法采用基于數據流的分散控制方式,支持各種循環和條件語句,每個計算根據需要分配不同的計算時間。
程序中的每一個計算可以映射為一個進程,計算的時間不同,該進程分配時鐘也不同。每個計算的輸入分為數據輸入和控制輸入。數據輸入表示計算的輸入數據,而控制輸入表示數據已經準備好了。每個計算也有輸出,輸出分成計算輸出和信號輸出。計算輸出輸出的是計算后的數據,而信號輸出表示輸出已經準備完成。
對于順序語句就是上述進程鏈接成的數據流。根據程序的關系,每一個計算的輸出,作為另一個計算的輸入。多個相同輸入的計算是并行的關系。
對于判斷體,每一個判斷分支都按一個順序語句進行映射。判斷語句映射成為一個判斷節點,對應于一個時序進程。判斷語句每一個可能的取值發出一個控制信號。在判斷語句的后部增加一個組合匯聚節點,對每個判斷分支相同變量的不同信號按判斷節點發出的不同信號進行融合。
對于循環,循環體的映射如同順序語句。對于循環判斷節點,映射為一個判斷節點,并根據取值分出兩個信號一個信號啟動循環外部,另一個用來保持循環。循環末尾增加一個進程,它使用一個周期。該進程作用是當一次循環計算完成時保存計算的結果,清空循環節點中的控制信號,并啟動下一次循環。該進程的啟動必須是所有計算完成后才能開始。每一個循環變量增加時序匯聚節點,在循環開始時,引入一個選擇節點,該選擇節點是一個組合進程。該節點作用是在循環開始時選擇循環初始化信號,在循環進行時選擇循環信號。對于while類型和for類型的循環,引出選擇節點信號,對于do…while類型循環,引出循環匯聚節點信號。
對于帶有continue的循環,由于continue在判斷分支中,所以在完成判斷體進行信號合并時,不合并帶有continue分支的信號。在循環后部增加一個組合匯聚節點,該節點根據continue分支對應的判斷信號匯聚continue分支和其他部分信號。
對于帶有break的循環,由于break在判斷語句中,所以在完成判斷語句進行信號合并時,不合并帶有break分支的變量。該分支的信號合并,只能在循環完成以后。所以在循環體映射完成后,增加一個組合匯聚節點,該節點在循環判斷信號和break分支對應的判斷信號的共同作用下匯聚信號。
對于goto語句的映射有向前跳轉和向后跳轉。向前跳轉就如同do…while類型循環。需要在goto語句增加一個時序匯聚節點,該節點作用保存計算的結果,清空循環節點中的控制信號,并啟動下一次循環。在goto語句對應得Label前增加選擇節點,這些節點作用是匯聚Label前數據信號和goto信號。這些被匯聚信號的后續節點的控制信號可以被goto匯聚節點清空。
如果goto語句存在向后跳轉,只需在goto語句對應的Label后增加一個選擇節點,該節點作用是匯聚經過goto信號和不經過goto信號。
附圖說明:
圖1是基本計算單元
圖2?是擴展時鐘的基本計算單元
圖3是判斷語句的結構圖
圖4是單循環的結構圖
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于邱涌;,未經邱涌;許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410423685.0/2.html,轉載請聲明來源鉆瓜專利網。





