TWI297855B - - Google Patents

Download PDF

Info

Publication number
TWI297855B
TWI297855B TW094147587A TW94147587A TWI297855B TW I297855 B TWI297855 B TW I297855B TW 094147587 A TW094147587 A TW 094147587A TW 94147587 A TW94147587 A TW 94147587A TW I297855 B TWI297855 B TW I297855B
Authority
TW
Taiwan
Prior art keywords
hardware component
function
category
language
temporary
Prior art date
Application number
TW094147587A
Other languages
English (en)
Other versions
TW200725412A (en
Inventor
Fu Chiung Cheng
shu-ming Zhang
Jian-Yi Chen
Kuan-Yu Yan
xin-hui You
Jin-Tai Zhou
Original Assignee
Tatung Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tatung Co Ltd filed Critical Tatung Co Ltd
Priority to TW094147587A priority Critical patent/TW200725412A/zh
Priority to JP2006064311A priority patent/JP2007183896A/ja
Priority to US11/407,940 priority patent/US20070157186A1/en
Publication of TW200725412A publication Critical patent/TW200725412A/zh
Application granted granted Critical
Publication of TWI297855B publication Critical patent/TWI297855B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

1297855 九、發明說明: 【發明所屬之技術領域】 本發明係關於一種南階語言的函式之轉換’尤指一種 高階語言的函式轉換為硬體元件圖(Hardware Component 5 Graphic,HCG)之方法。 【先前技術】 傳統的硬體描述語言(例如:VHDL、Verilog)並無法直 接用來描述高階程式語言的程式邏輯和執行流程,因此’ 10 必須先將高階程式語言轉換成UML(Unified Modeling Language,UML)中所定義之活動圖(Activity Diagram, AD),由於AD是一種流程的描述圖,可用以表示高階程式 語言之程式邏輯和執行流程,但AD跟實際的硬體元件之間 沒有任何關連,因此,亦無法直接將AD轉換成硬體描述語 15 言。故需先將活動圖(AD)轉換成硬體元件圖(Hardware Component Graph,HCG) 0 然而在轉換成硬體元件圖(HCG)過程中,對應於高階 語言中的函式呼叫(Method calls)仍無法有效的表達。亦即 已知的高階語言的函式轉換為硬體元件圖(HCG)之方法,並 20 無法正確地將高階語言的函式轉換為硬體元件圖(HCG)的 元件。故亦無法進一步由硬體元件圖(H C G)轉換成傳統的硬 體描述語言。因此,已知的高階語言的函式轉換為硬體元 件圖(HCG)之方法仍有諸多缺失,而有予以改進之必要。 1297855 【發明内容】 本發明之主要目的係在提供—種高階語言的函式轉 換為硬體凡件圖之方法,而能將該高階語言的函式轉換 成可與硬體元件對應之硬體元件圖。 10 15 20 依據本發明之-特色,係提出一種高階語言的函式轉 換為硬體元件圖之方法,該高階語言包括至少—類別,該 方法包括步驟:⑷讀取-高階語言程式碼;⑻分析該高階 邊言程式碼,以收集該高階語言程式碼的類別資訊,將之 儲存於-類別資訊物件中,並產生一暫時硬體元件圖,立 中,該類別資訊物件包含有函式物件、參數物件及回傳值 物件;(c)分析該類別資訊物件並從暫時硬體元件圖中料 對應於暫時硬體元件圖中所有的(包含公開與私有)函:、 參數及回傳值;(D)將步驟(〇所獲得之該公開函式、失數及 回傳值連接至該暫時硬體元件圖的__開始節點1私 有函式、參數及回傳值則不接_別開始節點;⑻分析續 類別資訊物件及暫時硬體元件圖,並由該暫時硬體元_ 中-函式呼叫節點的至少一輸出/輸入連接線,及該類別資 訊物件中的函式資訊物件而產生一函式呼叫表;⑺利用該 函式呼叫表把該暫時硬體元件圖中連接到該函式呼叫節: 的連接線,改成連接到該函式開始節點, 言程式瑪中函式呼叫,而將該暫時硬體元件圖轉換成可盘 硬體元件對應之硬體元件圖。 ^ 【實施方式】 6 1297855 在本發明之高階語言的函式轉換為硬體元件圖之方法 中,係能將該高階語言的函式轉換成可與硬體元件對應之 硬體元件圖。圖1係本發明高階語言的函式轉換為硬體元件 圖之方法的流程圖。首先,於步驟S101中讀取一高階語言 5 程式碼,其中,該高階語言包括至少一類別。於本實施例 中,該高階語言係一係爪哇程式語言。該高階語言的函式 可分為:公開函式(Public Method)、私有函式(Private Method)、保護函式(Protected Method)及友情函式(Friend > Method)。該函式被宣告為公開時,可被任何函式所存取。 10 而當函式被宣告為私有時,只能被成員函式所存取,如被 宣告為保護函式則只可被同一包裹(Package)或是繼承其 函式的子類別(subclass )中的函式所存取,如被宣告為友 情函式則只可被同一包裹(Package )中的函式所存取,因 此將保護函式與友情函式都歸類於私有類別中。 15 圖2係一爪p圭程式語言的程式碼,其中包含一公 開類別Math,該公開類別Math包含一私有函式add及一公開 | 函式test 〇 於步驟S103中,分析該高階語言程式碼,以收集該高 階語言程式碼的類別資訊,將之儲存於一類別資訊物件 2〇 (classinfo object)中,並產生一暫時硬體元件圖(HCG)。該 類別資訊物件包含有類別名稱(class name)物件、函式 (method)物件、參數(parameter)物件及回傳值(return value) 物件。圖3係依據圖2的爪哇程式碼所產生的一暫時硬 體元件圖(HCG)。如圖3所示,於該暫時硬體元件圖中,一 7 1297855 個標註”Math”之圓圈310係對應該爪哇程式碼的公開類 別Math,且該標註Math圓圈310係表示一個類別開始節點 (class start node) 〇 一個標註”add”的圓圈320係對應該爪哇程式碼的私 5 有函式add,且該標註add圓圈320係表示一個函式開始節點 (method start node)。一個標註’’test”的圓圈330係對應該爪 哇程式碼的公開函式test,且該標註test圓圈330係表示一 個函式開始節點(method start node)。由於在該爪u圭程式 1 碼中,公開函式test呼叫該私有函式add,故在暫時硬體元 10 件圖(HCG)會有一個標註’’Call this add”的節點340。 由圖2可知在公開類別函數test中會呼叫該私有函式 add,並把參數c、d傳給該私有函式add的參數a、△,故圖 3中方框1所框住的部份即為參數傳/遞的部分,而方框2所框 住的部分為該私有函數add的函式呼叫(method call)。 15 在產生該暫時硬體元件圖(HCG)過程中,不只產生該 暫時硬體元件圖(HCG),也同時收集該爪哇程式碼中類別 資訊(class info)。該類別資訊包含類別名稱(class name)、 函式名稱(method name)、參數(parameter)及回傳值(return value)等資訊。並將類別資訊儲存於該類別資訊物件中。 20 於步驟S105中,分析該類別資訊物件及該暫時硬體元 件圖(HCG),以獲得對應於暫時硬體元件圖且公開的函式 (method)、參數(parameter)及回傳值(return value) 〇 於步驟S107中,將步驟S105所獲得之該公開函式 (method)、參數(parameter)及回傳值(return value)連接至該 1297855 暫時硬體元件圖HCG的一類別開始節點(class start node)。 透過該類別資訊物件及該暫時硬體元件圖(HCG),可知 對應於該暫時硬體元件圖(HCG)的哪些函式(method)、參 數(parameter)及回傳值(return value)是公開的。把該公開 5 函式(method)、參數(Parameter)及回傳值(return value)連接 到該標註Math圓圈31〇的類別開始節點(class start node)。 表示這些該公開函式(metho(l)、參數(Parameter)及回傳值 (return value)最後會有對應的硬體介面可供外部訊 號輸出/輸入。在處理連線時’如果有多對讀出或 1〇 寫入時,則必須加上多工器(Multiplexer)及解多工器 (De-multiplexer)來控制連接至該類別開始節點(class start node)的連接線。 如圖3所示,由於標註’’test”的圓圈330係對應該爪 口圭程式碼的公開函式test,所以公開函式test的函式開始 15 節點(method start node)和參數c和Θ及回傳節點(return node)皆要連接到該標註Math圓圈310的類別開始節點 (class start node),如圖4之粗線所示。由於標註’’add” 的圓圈320係對應該爪哇程式碼的私有函式add,所以私 有函式add的函式開始節點(method start node)和參數c和^/ 20 及回傳節點(return node)皆無須連接到該標註Math圓圈 310的類別開始節點(class start node)。 於步驟S109中,將分析該類別資訊物件、及該暫時硬 體元件圖HCG,並由該暫時硬體元件圖HCG中一函式呼叫 節點(method call node)的至少一輸出/輸入連接線(in/out 1297855 edges),及該類別資訊物件中的函式資訊(method info.)物件 而產生一函式呼叫表(method call table)。由圖4及該類別資 訊物件中的資訊,可收集到函式呼叫(method call)的資訊, 例如:哪裡有函式呼叫(method call)、要呼叫的函式是哪一 5 個函式、被哪些函式哞叫節點(method call node)所呼叫。將 相關資訊記錄於一函式呼·叫表(method call table)。 於步驟S111中,利用該函式呼叫表(method call table) 把該暫時硬體元件圖HCG中連接到該函式呼叫節點 > (method call node)的連接線,改成連接到該函式開始節點 10 (method start node),來表示該高階語言程式碼中函式呼叫 (method call),而將該暫時硬體元件圖HCG轉換成可與硬體 元件對應之硬體元件圖。在處理連線時如果有多個函式呼 叫節點(method call node)呼叫一個函式時,則必須加上多 工器(Multiplexer)及解多工器、(De-multiplexer)。 15 於圖4中,把連到該標註”Call this add”的節點340的 req4pj:ead連接線連到該標註add圓圈320的函式開始節點 1 (method start node),以表示對該add函式的呼叫。並把代表 該add函式回傳值的RxN_retaddzizi節點連到該test函式的 RxN jettestzizi,表示把該add函式運算的結果回傳給該test 20 函式。如圖5的粗線即代表於步驟Sill中處理函式呼叫的部 分。當得到圖5的硬體元件圖後,表示該java高階語言 程式碼中函式呼叫(method call)已經處理完,故圖5 的硬體元件圖與VHDL程式語言的硬體元件可--- 互相對應。可將圖5的硬體元件圖換成可相對應有函式 1297855 呼叫(method call)的VHDL程式碼。圖6係對應的VHDL 程式碼合成(synthesis)後的電路圖。 圖7、圖8、及圖9係本發明之另一實施例。其係使用一 公開的test函式呼叫另一個公開的sub函式。圖10則為對應 5 的VHDL程式碼合成(synthesis)後的電路圖。圖8、圖9、及 圖10中的標註F圓圈係對應到硬體元件中的一並列式元件 (fork-element)。標註OR圓圈係對應到硬體元件中的或閘 (OR gate)。標註Q橢圓形為一循序控制電路,並把雙相 (2-Phase)的控制訊號轉成四相(4-Phase)訊號存取資料。標 10 註sub圓圈係對應到硬體元件中的減法器。RxNj、RxN_b 等由RxN開頭的元件則對應到硬體元件中的n位元暫存器 (n-bits Register)。而標註reqMuxDemux、writeMuxDemux 及readMuxDemux的橢圓,形節點則分別是多工器與反多工 器,其係針對暫存器的讀取、寫入以及控制電路的要求 15 (request)所組建起來的硬體元件。 綜上所述,本發明將利用該函式呼叫表(method call table)把該暫時硬體元件圖HCG中連接到該函式呼叫節點 (method call node)的連接線,改成連接到該函式開始節點 (method start node),來表示該高階語言程式碼中函式呼叫 20 (methodca11)。而可將該暫時硬體元件圖HCG轉換成可與硬 體元件對應之硬體元件圖。 本發明係將一 Java程式語言中函式呼叫(method call)轉換成可與硬體元件對應之硬體元件圖。該硬體 元件圖能與VHDL元件一一對應之,如此即可輕易地轉換成 11 1297855 VHDL程式碼。可避免習知高階語言中的函式呼叫(Method calls)仍無法有效的以硬體元件表達的問題,而解決習知技 術無法正確地將硬體元件圖(HCG)轉換成傳統的硬體描述 語言的問題。 5 上述實施例僅係為了方便說明而舉例而已,本發明所 主張之權利範圍自應以申請專利範圍所述為準,而非僅限 於上述實施例。 【圖式簡單說明】 10 圖1係本發明高階語言的函式轉換硬體元件圖之流 程圖。 圖2係本發明之一加法之Java程式碼的示意圖。 圖3係依據圖2的爪哇程式碼所產生的一暫時硬體 元件圖的示意圖。 15 圖4係本發明之修改連接線的示意圖。 圖5係本發明之修改呼叫節點的示意圖。 圖6為圖2對應的VHDL程式碼合成後的電路圖的示意 圖。 圖7係本發明之另一 Java減法器的程式碼示意圖。 20 圖8及圖9係本發明之硬體元件圖修正過程之的示意 圖。 圖10為圖7對應的VHDL程式碼合成後的電路圖的示意 圖。 12 1297855 ’ 【主要元件符號說明】 公開類別Math test函式開始節點 公開類別Math 5 test函式開始節點 add函式開始節點 320 ”Call this add” 節點 340 sub函式開始節點 820 ”Call this sub”節點 840 13

Claims (1)

1297855 十、申請專利範圍: 1· 一種高階語言的函式轉換硬體元件圖之方法,該高 階浯吕包括至少一類別,該方法包括步驟·· (A)讀取一高階語言程式碼; ⑻分析該高产㈣言程式碼,以收㈣高階語言程式碼 的類別資訊,將之儲存於一類別資訊物件中,並產生 時硬體元件圖,其中,該類別資訊物件包含有函式物件、 參數物件及回傳值物件; (C)分析該類別資訊物件並從暫時硬體元件圖中 對應於暫時硬體元件圖中所有公開與私有的 = 回傳值; ,歎及 ⑼將步驟(C)所獲得之該公開函式、參數及回傳值連 接至该暫時硬體元件圖的一類別開始節點,而私有 參數及回傳值則不接到類別開始節點; 工 15 * (E)分析該類別資訊物件及暫時硬體元件圖,並 ::硬體70件圖中一函式啤叫節點的至少-輸出/輸入連接 線,及該類別資訊物件中的函式資 叫表;以及 座玍函式呼 『刚該函式呼叫表把該暫時硬體元件圖 =式啤叫節點的連接線,.改成連接_ = :表示該高階語言程式碼中函式呼叫,而將該暫時=元 件圖轉換成可與硬體元件對應之硬體元件圖。H 2_如申請專利範圍第i項所 硬體元件圖之方法,其中,於步_中;:^ 20 1297855 參數及回傳值連接至該類別開始節點時,係使用多工器及 解多工器控制連接至該類別開始節點的連接線。 5
10 3·如申請專利範圍第1項所述之高階語言的函式轉換 硬體7L件圖之方法,其中,於步驟(F)中係使用多工器及解 多工器控制連接至該函式呼叫節點的連接線。 4·如申請專利範圍第丨項所述之高階語言的函式轉換 :::件:之方法,其中該硬體元件圖係以表示硬體元件 與硬體70件之間的連接關係。 札田矛1項所述之咼階語言的函式 硬體元件圖之方法’其中該高階語言係爪唾程式語古。 6·如申料利_第5韻述之高階語 ° 硬體元件圖之方法,i中兮$丨 山式轉換 一7斗·、叫 ^中忒至少一類別並包含下列其中之 函式·么開函式、私有函式 飞保4函式、及一友情函式。
15
TW094147587A 2005-12-30 2005-12-30 Method for converting high-level programming language method into hardware component graph TW200725412A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW094147587A TW200725412A (en) 2005-12-30 2005-12-30 Method for converting high-level programming language method into hardware component graph
JP2006064311A JP2007183896A (ja) 2005-12-30 2006-03-09 ハイレベル言語のメソッドをハードウエア構成図に転換する方法
US11/407,940 US20070157186A1 (en) 2005-12-30 2006-04-21 High-level programming language to hardware component graph translation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW094147587A TW200725412A (en) 2005-12-30 2005-12-30 Method for converting high-level programming language method into hardware component graph

Publications (2)

Publication Number Publication Date
TW200725412A TW200725412A (en) 2007-07-01
TWI297855B true TWI297855B (zh) 2008-06-11

Family

ID=38226168

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094147587A TW200725412A (en) 2005-12-30 2005-12-30 Method for converting high-level programming language method into hardware component graph

Country Status (3)

Country Link
US (1) US20070157186A1 (zh)
JP (1) JP2007183896A (zh)
TW (1) TW200725412A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013011356A1 (en) * 2011-07-20 2013-01-24 Freescale Semiconductor, Inc. Method and apparatus for enabling an executed control flow path through computer program code to be determined

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5632034A (en) * 1993-06-01 1997-05-20 International Business Machines Corporation Controlling method invocation sequence through virtual functions in an object-oriented class library
EP0767544A3 (en) * 1995-10-04 2002-02-27 Interuniversitair Micro-Elektronica Centrum Vzw Programmable modem using spread spectrum communication
US6026237A (en) * 1997-11-03 2000-02-15 International Business Machines Corporation System and method for dynamic modification of class files
US6074432A (en) * 1998-03-19 2000-06-13 Xilinx, Inc. Method for generating a software class compatible with two or more interpreters
US6185730B1 (en) * 1998-07-23 2001-02-06 International Business Machines Corporation Method and apparatus for creating dippable beans in a java environment
US6205578B1 (en) * 1998-08-14 2001-03-20 Ati International Srl Interpreter for stack-based languages
US7089242B1 (en) * 2000-02-29 2006-08-08 International Business Machines Corporation Method, system, program, and data structure for controlling access to sensitive functions
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
AU2003272931A1 (en) * 2002-10-28 2004-05-13 Renesas Technology Corp. System development method and data processing system

Also Published As

Publication number Publication date
JP2007183896A (ja) 2007-07-19
US20070157186A1 (en) 2007-07-05
TW200725412A (en) 2007-07-01

Similar Documents

Publication Publication Date Title
US7685604B2 (en) Business process execution language (BPEL) application generator for legacy interfaces
TWI292874B (en) Merging a hardware design language source file with a separate assertion file
JP2008210213A (ja) プロセス動作表示装置及びプロセス動作表示方法並びにプログラム
US7890937B2 (en) Data processing system and method
US20080244541A1 (en) Code translator and method of automatically translating modeling language code to hardware language code
US20120036421A1 (en) Electronic template converting method, apparatus, and recording medium
Gogolla et al. Towards an integrated graph based semantics for UML
TWI297855B (zh)
US8352909B2 (en) Business process diagram (BPD) component analysis
CN100465884C (zh) 高级语言的函式转换为硬件组件图的方法
JP5223639B2 (ja) 回路設計補助方法、プログラム、及び記録媒体
JP2007011467A (ja) アサーション記述自動生成方法および装置
JP2551935B2 (ja) 図的言語処理方式
JP2004234405A (ja) プロトコル符号化/復号化装置
US7430727B2 (en) Hardware component graph to hardware description language translation method
JP2007164700A (ja) データ変換設計装置、データ変換システム及びこれらの方法並びにプログラム
Saul et al. Conceptual Framework for the Use of the Service-oriented Architecture-Approach in the Digital Preservation.
JP2868186B2 (ja) オブジェクト候補選定装置
JP2003288231A (ja) 故障診断システム
JP2005235061A (ja) 名前によるアクセス権制御方法ならびにその方法を用いる情報処理装置およびプログラム
JP5050905B2 (ja) 半導体回路設計プログラムおよび半導体回路設計装置
JPH07306879A (ja) ネットリスト・ハードウェア記述変換装置
JP2008002825A (ja) テストデータ編集装置
JP2003308235A (ja) データ変換方法及び装置、データ変換プログラム及びそのプログラムを記録した記録媒体
JPH11353167A (ja) 木構造データ変換方法及びその装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees