JP2003006255A - Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体 - Google Patents

Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体

Info

Publication number
JP2003006255A
JP2003006255A JP2001189337A JP2001189337A JP2003006255A JP 2003006255 A JP2003006255 A JP 2003006255A JP 2001189337 A JP2001189337 A JP 2001189337A JP 2001189337 A JP2001189337 A JP 2001189337A JP 2003006255 A JP2003006255 A JP 2003006255A
Authority
JP
Japan
Prior art keywords
hdl
description
correction
target item
violation
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
JP2001189337A
Other languages
English (en)
Inventor
美紀 ▲高▼木
Yoshinori Takagi
Koji Takeyama
広治 竹山
Hiroshi Noguchi
弘 野口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001189337A priority Critical patent/JP2003006255A/ja
Priority to US09/986,818 priority patent/US20030033595A1/en
Publication of JP2003006255A publication Critical patent/JP2003006255A/ja
Withdrawn legal-status Critical Current

Links

Classifications

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

Abstract

(57)【要約】 【課題】重度の意味論的文法違反を自動修正し且つその
修正箇所が明確になるようにして、設計者にかかる負担
を大幅に軽減するとともに、高品質のHDL記述が得ら
れるようにする。 【解決手段】HDL字句解析手段11やHDL構文解析
手段12のほか、代入文の右辺と左辺の変数の型が不一
致になっている部分を意味論的文法違反箇所として検出
する意味論的文法違反検出手段15と、代入文の右辺の
変数の型を左辺の変数の型に変換する型変換関数を定義
する型変換テンプレート40と、意味論的文法違反箇所
とみなされた代入文の右辺に対して前記型変換関数を適
用して意味論的文法違反箇所を正しい記述に修正する意
味論的文法違反修正手段16と、修正後のHDL記述の
逆構文解析を行なう逆構文解析手段19と、修正箇所に
修正に関するコメントを付与するコメント付与手段20
とをそなえて構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えばVHDL
〔VHSIC(Very High Speed Integrated Circuit)
HDL〕やVerilog-HDLなどのハードウェア記述言
語〔以下、HDL(Hardware Discription Language)
という〕によって記述された、電子システムや論理回路
の設計情報における、不適切な記述を自動修正するため
の装置およびプログラム並びに同プログラムを記録した
コンピュータ読取可能な記録媒体に関する。
【0002】
【従来の技術】LSI(Large Scale Integration)等
の半導体集積回路を設計する際、その半導体集積回路の
論理回路についての設計情報を、VHDLやVerilog-
HDL等のHDLによって記述することが行なわれてい
る。HDLは、一般的なソフトウェアプログラミング言
語とは異なるもので、電子システムや論理回路の機能や
構造を記述するのに適し、設計レベルを論理ゲートレベ
ルからマイクロアーキテクチャレベルに高め階層設計を
行なうのに適している。そして、上述のごとくHDLに
よって記述された設計情報(以下、HDL記述という場
合がある)に基づいて、論理回路(ネットリスト)が論
理合成ツールにより自動的に合成される。
【0003】このような論理合成を行なう前、つまり、
HDL記述を論理合成ツールに入力する前には、HDL
記述における文法違反のチェック(構文チェック)が行
なわれている。この文法違反のチェックに際しては、例
えば下記公報に開示された技術を用いることができる。
【0004】例えば特開平2−294736号公報で
は、ソフトウェアプログラミング言語で記述されたソー
スプログラムにおいて、例えば文末に記入されるべきセ
ミコロン“;”が抜けている等の、比較的軽度の構文的
文法違反を検出し、その文法違反を自動修正する技術が
開示されている。この技術を用いることにより、ソース
プログラム中の文末に“;”が抜けている場合、そ
の“;”が自動的に挿入される。
【0005】また、例えば特開平6−44081号公報
では、PASCAL言語で記述された入力ソースプログ
ラムについて、代入文の右辺と左辺における変数の型が
不一致である場合に、その旨を通知するエラーメッセー
ジを出力する技術が開示されている。
【0006】
【発明が解決しようとする課題】特開平2−29473
6号公報に開示された技術を用いてHDL記述の文法違
反チェックを行なった場合、上述のような構文的文法違
反(文法違反としては軽度なもの)については自動修正
することはできるが、代入文の右辺と左辺における変数
の型が一致しないといった、意味論的文法違反(文法違
反としては重度なもの)を自動修正することができな
い。
【0007】従って、意味論的文法違反については、設
計者(ユーザ)が、HDL処理系から出力されるエラー
メッセージを参照して手修正しなければならない。その
際、エラーメッセージは、具体的にどのような修正を行
なえば良いかを示すものではないため、1回の修正で意
味論的文法違反を解消できない場合が多く、設計者にか
かる負担が大きいという課題があった。特に、上述のよ
うな意味論的文法違反は、比較的高い頻度で発生するた
め、その文法違反を修正するために設計者にかかる負担
はかなり大きいものとなる。
【0008】また、HDL記述が自動修正された場合、
設計者は、自動修正結果が意図するものかどうか、即ち
適正な修正が行なわれたか否かを確認する必要がある
が、従来技術では、修正箇所を示す目印等が自動修正結
果に含まれていないので、HDL記述のどこをどのよう
に修正したかを確認するのに手間がかかり、設計者にか
かる負担が大きいという課題もあった。
【0009】特開平6−44081号公報に開示された
技術を用いてHDL記述の文法違反チェックを行なった
場合も、設計者は、代入文の右辺と左辺における変数の
型が不一致である意味論的文法違反の発生を、エラーメ
ッセージによって認識することはできるが、その文法違
反を自動的に修正することができない。また、設計者
は、エラーメッセージにより文法違反箇所および違反内
容を知ることができても、その文法違反にどのように対
処したらよいか分からず、文法書等を参照して文法違反
の解消手法を検討しながら手修正する必要があるため、
設計者にかかる負担は極めて大きい。
【0010】一方、従来技術では、文法違反をチェック
することができても、文法違反ではないが回路設計を行
なう上で考慮すべき箇所(不適切な記述)をチェックし
て自動的に適切な記述に修正することができなかった。
従来、文法違反ではないが回路設計を行なう上で考慮す
べき、名前の命名規則や論理合成記述規則(論理合成が
可能な記述に関する規則)などに違反する箇所を検出し
その違反内容を出力するスタイルチェッカも提案されて
いるが、このスタイルチェッカは、違反内容を出力する
だけで、その違反を回避するようにHDL記述を自動修
正することはできない。従って、設計者は、スタイルチ
ェッカからのエラーメッセージを参照して手修正でその
違反を解消しなければならず、設計者にかかる負担が大
きい。特に、複数の設計者によりHDLを用いて回路設
計を行なった場合などには、命名規則に違反する箇所が
多数出現する可能性が高く、違反箇所の名前を修正する
のに多大な労力を要することになる。
【0011】また、文法違反ではないが回路の階層設計
上考慮すべき規則や配線の接続関係の規則に違反するH
DL記述のいくつかは、従来、フロントエンド(言語処
理系)ではなく、バックエンド(論理合成ツールや検証
ツール)でないと検出できない。そのようなHDL記述
は、設計者の単純ミスによるものであるにもかかわらず
早期に発見できないため、当然、自動修正することもで
きず、設計工程の手戻りの発生要因となっている。例え
ば、HDL記述が複数の階層から構成されている場合、
各階層での端子定義記述とインスタンス部における端子
記述とが不一致になることが多々ある。このような不一
致は、ミスによって生じる場合もあるが、文法上あるい
は回路表現上において全く問題ない場合もある。しか
し、上記不一致は、後で回路設計上の問題を生じさせ上
述のような手戻りの発生要因となるおそれがあるため、
上記不一致を含まない記述にHDL記述を自動修正でき
るようにすることが望まれている。
【0012】さらに、HDLを用いて回路設計を行なっ
た場合、システム間の連係や設計フローの都合などによ
り、当初用いられていたHDLから異なる種類の他のH
DLにHDL記述を変換することがしばしばある。この
とき、当然、HDL記述が現在のHDLの言語規約を満
たしていても他のHDLの言語規約を満たさない場合が
あるため、上述のような変換の可能性がある場合、他の
HDLに変換した時に回路設計上の問題が生じないよう
に、予め他のHDLの言語規約も満たすようにHDL記
述を自動修正できるようにすることが望まれている。
【0013】また、論理合成したいHDL記述において
は、論理検証時に使用した論理合成不能な波形観測用シ
ミュレーション記述等がコメントアウトされずに残って
いる場合が多々ある。このような論理合成不能な記述に
ついても、自動修正(自動削除)する手立てがなく、従
来、設計者が、HDL記述を参照し論理合成不能な記述
を見つけた場合に手修正するか、論理合成ツールでその
記述によってエラーが発生してから何らかの対処をとる
しかなく、いずれにしても設計者にとって大きな負担と
なっていた。
【0014】本発明は、このような課題に鑑み創案され
たもので、重度の意味論的文法違反を自動修正し且つそ
の修正箇所が明確になるようにするほか、文法違反では
ないが回路設計上考慮すべき箇所を適切な記述に自動修
正し且つその修正箇所が明確になるようにして、設計者
にかかる負担を大幅に軽減するとともに、高品質のHD
L記述が得られるようにした、HDL自動修正装置およ
びHDL自動修正プログラム並びに同プログラムを記録
したコンピュータ読取可能な記録媒体を提供することを
目的とする。
【0015】
【課題を解決するための手段】上記目的を達成するため
に、本発明のHDL自動修正装置(請求項1)は、HD
Lで記述されたHDL記述(回路設計情報)を自動的に
修正する装置であって、修正対象のHDL記述の字句解
析を行なうHDL字句解析手段と、該HDL字句解析手
段による解析結果に基づいて該HDL記述の構文解析を
行ない該HDL記述を解析木形式の記述に変換するHD
L構文解析手段と、該HDL構文解析手段による解析結
果に基づいて該HDL記述の意味論解析を行ない該HD
L記述における代入文の右辺と左辺の変数の型が不一致
になっている部分を意味論的文法違反箇所として検出す
る意味論的文法違反検出手段と、前記代入文の右辺の変
数の型を左辺の変数の型に変換する型変換関数を型変換
規則として定義する型変換テンプレートと、該意味論的
文法違反検出手段によって該意味論的文法違反箇所とみ
なされた代入文の右辺に対して、該型変換テンプレート
に定義された該型変換関数を適用することにより該意味
論的文法違反箇所を正しい記述に修正する意味論的文法
違反修正手段と、該意味論的文法違反修正手段による修
正を施された該HDL記述の逆構文解析を行ない該HD
L記述を前記解析木形式の記述から通常の記述形式に変
換するHDL逆構文解析手段と、該意味論的文法違反修
正手段によって修正を施された箇所に該修正に関するコ
メントを付与するコメント付与手段とをそなえて構成さ
れたことを特徴としている。
【0016】このとき、文法違反ではないが回路設計上
考慮すべき修正対象事項および該修正対象事項に対応す
る箇所の修正規則を定義する制御情報テンプレートと、
該HDL構文解析手段による解析結果に基づき、該HD
L記述において該修正対象事項に対応する箇所を検出す
る修正対象事項検出手段と、該修正対象事項検出手段に
よって検出された箇所を該制御情報テンプレートに定義
された該修正規則に従って修正する修正対象事項修正手
段とをさらにそなえ、該HDL逆構文解析手段が、該意
味論的文法違反修正手段および該修正対象事項修正手段
による修正を施された該HDL記述の逆構文解析を行な
うとともに、該コメント付与手段が、該意味論的文法違
反修正手段および該修正対象事項修正手段によって修正
を施された箇所に、該コメントを付与するように構成し
てもよい(請求項2)。
【0017】また、本発明のHDL自動修正装置(請求
項3)は、HDLによって記述されたHDL記述を自動
的に修正する装置であって、上述したHDL字句解析手
段およびHDL構文解析手段をそなえるとともに、文法
違反ではないが回路設計上考慮すべき修正対象事項およ
び該修正対象事項に対応する箇所の修正規則を定義する
制御情報テンプレートと、該HDL構文解析手段による
解析結果に基づき該HDL記述において該修正対象事項
に対応する箇所を検出する修正対象事項検出手段と、該
修正対象事項検出手段によって検出された箇所を、該制
御情報テンプレートに定義された該修正規則に従って修
正する修正対象事項修正手段と、該修正対象事項修正手
段による修正を施された該HDL記述の逆構文解析を行
ない該HDL記述を前記解析木形式の記述から通常の記
述形式に変換するHDL逆構文解析手段と、該修正対象
事項修正手段によって修正を施された箇所に該修正に関
するコメントを付与するコメント付与手段とをそなえて
構成されたことを特徴としている。
【0018】さらに、本発明のHDL自動修正プログラ
ム(請求項4)は、HDLによって記述されたHDL記
述を、コンピュータに自動修正させるためのものであっ
て、上述したHDL字句解析手段,HDL構文解析手
段,意味論的文法違反検出手段,意味論的文法違反修正
手段,HDL逆構文解析手段およびコメント付与手段と
して、該コンピュータを機能させることを特徴としてい
る。そして、本発明のコンピュータ読取可能な記録媒体
(請求項5)は、上述したHDL自動修正プログラムを
記録したものである。
【0019】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。 〔1〕本発明の一実施形態の構成の説明 図1は本発明の一実施形態としてのHDL自動修正装置
の構成を示すブロック図であり、この図1に示すよう
に、本実施形態のHDL自動修正装置1は、HDLによ
って記述されたHDL記述(回路設計情報)を自動的に
修正するものであって、HDL字句解析手段11,HD
L構文解析手段12,構文的文法違反検出手段13,構
文的文法違反修正手段14,意味論的文法違反検出手段
15,意味論的文法違反修正手段16,修正対象事項検
出手段17,修正対象事項修正手段18,HDL逆構文
解析手段19,コメント付与手段20,データベース2
1〜24およびテンプレート30,40,51〜55を
そなえて構成されている。
【0020】HDL字句解析手段11は、修正対象のH
DL記述(初期HDL記述)2Aの字句解析を行なうも
ので、HDL記述2Aを文字列の基本単位(トークン)
に分解し、その基本単位を各基本単位の種別に関する情
報とともにトークンデータベース21に書き込むもので
ある。HDL構文解析手段12は、トークンデータベー
ス21のトークン(HDL字句解析手段11による解析
結果)に基づいて、HDL記述2Aの構文解析を行な
い、HDL記述2Aを解析木形式の記述に変換するもの
である。
【0021】文法解析テンプレート30は、予約語の使
用規則や、スペルについての規則や、構文規則などを定
義するものである。ここで、構文規則は、例えば文中に
“=”があった場合、その文末には“;”が記入される
といった構文的文法についての規則である。構文的文法
違反検出手段13は、HDL構文解析手段12による解
析結果と文法解析テンプレート30とに基づいて、HD
L記述2Aにおける構文的文法違反箇所(スペルの間違
っている箇所や、“=”を記述する文の文末に“;”が
抜けている箇所や、間違って予約語を使用している箇所
など)を検出するもので、構文的文法違反修正手段14
は、構文的文法違反検出手段13によって検出された構
文的文法違反箇所を、文法解析テンプレート30によっ
て定義された規則に従って、正しい記述に修正するもの
である。
【0022】この構文的文法違反修正手段14による修
正結果が、HDLデータベース22に書き込まれるよう
になっている。なお、構文的文法違反検出手段13によ
って構文的文法違反箇所が検出されなかった場合には、
構文的文法違反修正手段14による修正処理は実行され
ず、HDL構文解析手段12による解析結果がそのまま
HDLデータベース22に書き込まれることになる。
【0023】意味論的文法違反検出手段15は、HDL
データベース22のデータ(HDL構文解析手段12に
よる解析結果もしくは構文的文法違反修正手段14によ
る修正結果)に基づいてHDL記述2Aの意味論解析を
行ない、HDL記述2Aにおける代入文の右辺と左辺の
変数の型が不一致になっている部分を意味論的文法違反
箇所として検出するものである。
【0024】型変換テンプレート40は、各種代入文の
右辺の変数の型を左辺の変数の型に変換する型変換関数
を、型変換規則として定義するもので、その型変換関数
については、表1を参照しながら後述する。意味論的文
法違反修正手段16は、意味論的文法違反検出手段15
によって意味論的文法違反箇所とみなされた代入文の右
辺に対して、型変換テンプレート40に定義された型変
換関数を適用することにより、意味論的文法違反箇所を
正しい記述に修正するもので、その修正結果はHDLデ
ータベース23に書き込まれるようになっている。本実
施形態のHDL自動修正装置1による意味論的文法違反
箇所の具体的な修正動作については、図2を参照しなが
ら後述する。
【0025】なお、意味論的文法違反検出手段15によ
って意味論的文法違反箇所が検出されなかった場合に
は、意味論的文法違反修正手段16による修正処理は実
行されず、HDLデータベース22をそのままHDLデ
ータベース23として用いることになる。
【0026】テンプレート(制御情報テンプレート)5
1〜55は、それぞれ、文法違反ではないが回路設計上
考慮すべき修正対象事項、および、その修正対象事項に
対応する箇所の修正規則を定義するもので、その詳細に
ついては後述する。修正対象事項検出手段17は、HD
Lデータベース23のデータ(HDL構文解析手段12
による解析結果もしくは構文的文法違反修正手段14/
意味論的文法違反修正手段16による修正結果)に基づ
き、HDL記述2Aの中で、テンプレート51〜55の
それぞれで定義された修正対象事項に対応する箇所を検
出するものである。
【0027】修正対象事項修正手段18は、修正対象事
項検出手段17によって検出された箇所を、テンプレー
ト51〜55のそれぞれに定義された修正規則に従って
修正するもので、その修正結果はHDLデータベース2
4に書き込まれるようになっている。なお、修正対象事
項検出手段17によって修正対象事項に対応する箇所が
検出されなかった場合、修正対象事項修正手段18によ
る修正処理は実行されず、HDLデータベース23をそ
のままHDLデータベース24として用いることにな
る。
【0028】HDL逆構文解析手段19は、HDLデー
タベース24のデータ、つまり、構文的文法違反修正手
段14,意味論的文法違反修正手段16や修正対象事項
修正手段18による修正を施されたHDL記述(解析木
形式の記述)についての逆構文解析を行ない、そのHD
L記述を解析木形式の記述から通常の記述形式に変換
し、その変換結果を修正後のHDL記述2Bとして出力
するものである。
【0029】コメント付与手段20は、修正箇所(構文
的文法違反修正手段14,意味論的文法違反修正手段1
6や修正対象事項修正手段18によって修正を施された
箇所)に、その修正に関するコメントを付与するもので
ある。このコメント付与手段20によってHDL記述2
Bに付与される具体的なコメント等については、図2〜
図9を参照しながら後述する。なお、本実施形態のHD
L自動修正装置1によって初期HDL記述2Aに対する
修正が何ら施されなかった場合、コメント付与手段20
は、当然、HDL記述2Bに対し何らコメントを付与し
ない。また、コメント付与手段20は、HDL逆構文解
析手段19から出力されたHDL記述2B(ソース)に
コメントを付与する。
【0030】ここで、上述したテンプレート51〜55
について、より詳細に説明する。言語変換規則テンプレ
ート51における修正対象事項は、修正対象事項検出手
段17が、処理中のHDL(例えばVHDL)を異なる
種類の他のHDL(例えばVerilog-HDL)に変換し
た場合に他のHDLの言語規約を満たさない箇所を、修
正対象事項に対応する箇所として検出するように定義さ
れている。また、制御情報テンプレート51における修
正規則は、修正対象事項修正手段18が、修正対象事項
検出手段17によって検出された箇所を、他のHDLの
言語規約を満たす記述に変換・修正するように定義され
ている。
【0031】ここで、言語変換規則テンプレート51
は、図3に示すような予約語テンプレート51a,名前
テンプレート51b,名前生成ルール51cおよび大文
字小文字ルール51dを有している。予約語テンプレー
ト51aには、各種HDLごとに使用可能な予約語が登
録・定義され、名前テンプレート51bには、各種HD
Lごとに使用可能な端子名やネット名が登録・定義され
ている。また、名前生成ルール51cには、端子名やネ
ット名を修正する際に、HDL記述に存在する文字列と
重複しないユニークな文字列を新たな端子名やネット名
として生成するための規則が定義されている。さらに、
大文字小文字ルール51dには、各種HDLが、それぞ
れ、アルファベットの大文字と小文字を区別して使用す
るものであるか、もしくは、アルファベットの大文字と
小文字を区別しないで使用するものであるかが登録・定
義されている。
【0032】図3を参照しながら後述するごとく、例え
ば、予約語テンプレート51aおよび名前テンプレート
51bを用い、例えば、Verilog-HDLによるHDL
記述中に、Verilog-HDLでは端子名やネット名とし
て使用可能であるがVHDLでは予約語として使用され
る文字列が検出された場合、その文字列が、VHDLに
よる記述を行なった場合に予約語に該当しないような、
新たな文字列に変換・修正される。その際、名前生成ル
ール51cを用いて、HDL記述に存在する文字列と重
複しないユニークな文字列が、新たな文字列として生成
されるようになっている。
【0033】また、上述した大文字小文字ルール51d
(図3参照)によって処理中のHDLがアルファベット
の大文字と小文字を区別して使用するものであると認識
された場合(例えばVerilog-HDL)、処理中のHD
Lを、大文字と小文字を区別しないで使用する他のHD
Lに変換する可能性を考慮し、修正対象事項検出手段1
7が、大文字と小文字を区別して記述された同一綴りの
一対の文字列のうちの一方を、修正対象事項に対応する
箇所として検出するように、言語変換規則テンプレート
51における修正対象事項を定義してもよい。その際、
言語変換規則テンプレート51における修正規則は、修
正対象事項修正手段18が、上述の名前生成ルール51
cに従って、HDL記述中に存在する文字列の綴りと重
複しない綴りの新しい文字列を生成してから、修正対象
事項検出手段17によって検出された一方の文字列を新
しい文字列に置換するように定義される。
【0034】逆に、上述した大文字小文字ルール51d
(図3参照)によって処理中のHDLがアルファベット
の大文字と小文字を区別しないで使用するものであると
認識された場合(例えばVHDL)、処理中のHDL
を、大文字と小文字を区別して使用する他のHDLに変
換する可能性を考慮し、修正対象事項検出手段17が、
HDL記述の文字列における大文字および小文字のうち
の一方を、修正対象事項に対応する箇所として検出する
ように、言語変換規則テンプレート51における修正対
象事項を定義してもよい。その際、修正対象事項修正手
段18が、修正対象事項検出手段17によって検出され
た大文字または小文字をそれぞれ小文字または大文字に
変換するように、言語変換規則テンプレート51におけ
る修正規則が定義される。なお、上述した言語変換規則
テンプレート51を用いた具体的な修正動作について
は、図3を参照しながら後述する。
【0035】使用禁止文字情報テンプレート52におけ
る修正対象事項は、修正対象事項検出手段17が、所定
の使用禁止文字を含む文字列を、修正対象事項に対応す
る箇所として検出するように定義されている。また、使
用禁止文字情報テンプレート52における修正規則は、
修正対象事項修正手段18が、HDL記述に存在する文
字列と重複せず且つ所定の使用禁止文字を含まない新し
い文字列を生成してから、修正対象事項検出手段17に
よって検出された使用禁止文字を含む文字列を新しい文
字列に置換するように定義されている。
【0036】ここで、使用禁止文字情報テンプレート5
2は、図4に示すような使用禁止文字テンプレート52
aおよび名前生成ルール52bを有している。使用禁止
文字テンプレート52aには、使用を禁止されている文
字列が定義・登録されており、修正対象事項検出手段1
7は、使用禁止文字テンプレート52aを参照して使用
禁止文字を含む文字列を、修正対象事項に対応する箇所
として検出するようになっている。また、名前生成ルー
ル52bは、前述した名前生成ルール51cと同様のも
ので、HDL記述に存在する文字列と重複せず且つ所定
の使用禁止文字を含まないユニークな文字列を新たに生
成するための規則が定義されており、修正対象事項修正
手段18は、名前生成ルール52bに従って、上述した
新しい文字列を生成している。なお、上述した使用禁止
文字情報テンプレート52を用いた具体的な修正動作に
ついては、図4を参照しながら後述する。
【0037】階層情報テンプレート53における修正対
象事項は、修正対象事項検出手段17が、HDL記述を
成す複数の階層において端子記述が不一致もしくは不統
一である箇所を、修正対象事項に対応する箇所として検
出するように定義されている。また、階層情報テンプレ
ート53における修正規則は、修正対象事項修正手段1
8が、修正対象事項検出手段17によって検出された箇
所における端子記述を、複数の階層の全てにおいて一致
または統一した記述に修正するように定義されている。
【0038】なお、上述した階層情報テンプレート53
を用いた具体的な修正動作については、図5〜図8を参
照しながら後述する。また、階層情報テンプレート53
は、例えば、図5〜図8のそれぞれに示すような修正規
則53a〜53dを有している。これらの修正規則53
a〜53dの詳細については後述する。
【0039】接続情報テンプレート54の修正対象事項
は、修正対象事項検出手段17が、信号代入記述の左辺
と右辺との関係が誤っている箇所を、修正対象事項に対
応する箇所として検出するように定義されている。ま
た、接続情報テンプレート54の修正規則は、修正対象
事項修正手段18が、修正対象事項検出手段17によっ
て検出された箇所における信号代入記述の左辺と右辺と
の関係を修正するように定義されている。なお、上述し
た接続情報テンプレート54を用いた具体的な修正動作
については後述する。
【0040】非合成記述テンプレート55の修正対象事
項は、修正対象事項検出手段17が、論理合成ツールが
合成することのできない箇所(非合成記述箇所)を、修
正対象事項に対応する箇所として検出するように定義さ
れている。また、非合成記述テンプレート55の修正規
則は、修正対象事項修正手段18が修正対象事項検出手
段17によって検出された箇所を削除するように、もし
くは、修正対象事項修正手段18が、修正対象事項検出
手段17によって検出された箇所に、当該箇所における
記述を論理合成ツールに無視させるためのディレクティ
ブを追加・記入するように、定義される。設計者は、非
合成記述箇所を削除する修正規則とディレクティブを追
加・記入する修正規則とのいずれか一方を選択して採用
することができるようになっている。
【0041】なお、上述した非合成記述テンプレート5
5を用いた具体的な修正動作については、図9を参照し
ながら後述する。また、非合成記述テンプレート55
は、図9に示すような修正規則55aを有している。こ
の修正規則55aの詳細については後述するが、図9に
示す修正規則55aは、ディレクティブを追加・記入す
るように定義されたものである。
【0042】上述したHDL字句解析手段11,HDL
構文解析手段12,構文的文法違反検出手段13,構文
的文法違反修正手段14,意味論的文法違反検出手段1
5,意味論的文法違反修正手段16,修正対象事項検出
手段17,修正対象事項修正手段18,HDL逆構文解
析手段19およびコメント付与手段20は、専用ソフト
ウェア(HDL自動修正プログラム)によって実現され
る。
【0043】このHDL自動修正プログラムは、例えば
フレキシブルディスク,CD−ROM等のコンピュータ
読取可能な記録媒体に記録された形態で提供される。本
実施形態のHDL自動修正装置1は、CPU,ROM,
RAMなどから構成されたコンピュータ(図示省略)に
よって実現される。そして、ROM等にHDL自動修正
プログラムを予め格納しておき、このHDL自動修正プ
ログラムを、CPUによって読み出し実行することによ
り、上述した各手段11〜20としての機能が実現され
る。
【0044】なお、HDL自動修正プログラムは、例え
ば磁気ディスク,光ディスク,光磁気ディスク等の記憶
装置(記録媒体)に記録しておき、その記憶装置から通
信経路を介してコンピュータに提供されてもよい。ま
た、テンプレート30,40,51〜55についての情
報は、設計者の手によりキーボード,マウス等を通じて
入力してもよいし、別途、記録媒体を通じて入力しても
よいし、上述したHDL自動修正プログラムに予め含め
た形で提供されてもよい。さらに、上述したデータベー
ス21〜24としては、上記RAMを用いてもよいし、
例えばフレキシブルディスク,CD−R,CD−RW等
の記録媒体を用いてもよい。
【0045】〔2〕本発明の一実施形態の動作の説明 次に、上述のごとく構成された本実施形態のHDL自動
修正装置1の動作について、より具体的に説明する。ま
ず、本実施形態のHDL自動修正装置1による一連の自
動修正動作について簡単に説明する。
【0046】修正対象のHDL記述(初期HDL記述)
2Aは、HDL自動修正装置1に入力されると、まず、
HDL字句解析手段11によりトークンに分解され、ト
ークンデータベース21に書き込まれる。このトークン
に基づいて、HDL構文解析手段12により、HDL記
述2Aの構文解析が行なわれ、HDL記述2Aが解析木
形式の記述に変換される。得られた解析木と、文法解析
テンプレート30とに基づいて、構文的文法違反検出手
段13により、HDL記述2Aにおける構文的文法違反
箇所が検出される。構文的文法違反箇所が検出された場
合、その構文的文法違反箇所は、構文的文法違反修正手
段14により、文法解析テンプレート30で定義された
規則に従って、正しい記述に修正される。その修正結果
は、HDLデータベース22に書き込まれる。
【0047】ついで、意味論的文法違反検出手段15に
より、上述のごとく構文的文法違反箇所を修正されたH
DL記述2Aの意味論解析が、HDLデータベース22
のデータに基づいて行なわれ、HDL記述2Aにおける
代入文の右辺と左辺の変数の型が不一致になっている部
分が意味論的文法違反箇所として検出される。意味論的
文法違反箇所が検出された場合、意味論的文法違反修正
手段16により、その意味論的文法違反箇所における代
入文の右辺に対して、型変換テンプレート40に定義さ
れた型変換関数が適用される。これにより、意味論的文
法違反箇所が正しい記述に修正され、その修正結果がH
DLデータベース23に書き込まれる。
【0048】さらに、修正対象事項検出手段17によ
り、上述のごとく意味論的文法違反箇所を修正されたH
DL記述2Aの中において、テンプレート51〜55の
それぞれで定義された修正対象事項に対応する箇所が検
出される。そのような箇所が検出された場合、修正対象
事項修正手段18により、その箇所が、テンプレート5
1〜55のそれぞれに定義された修正規則に従って修正
され、その修正結果がHDLデータベース24に書き込
まれる。
【0049】以上のようにして各種修正を施されデータ
ベース24に保持された、解析木形式のHDL記述は、
HDL逆構文解析手段19により、通常の記述形式に変
換され、修正後のHDL記述2Bとして出力される。そ
して、そのHDL記述2Bの修正箇所には、コメント付
与手段20により、その修正に関するコメントが付与さ
れる。
【0050】さて、次に、図2〜図9を参照しながら、
VHDLやVerilog-HDLによって記述されたHDL
記述を修正対象として、本実施形態のHDL自動修正装
置1が実際に行なう自動修正動作について説明する。こ
こでは、本発明の特徴的な部分である、意味論的文法違
反や修正対象事項と、それらに対する修正動作と、修正
結果に付与されるコメントとについて、具体的に説明す
る。
【0051】〔2−1〕意味論的文法違反の修正動作に
ついて HDL記述2Aには、VHDLのように代入文の右辺と
左辺の型が不一致の場合に文法違反となるものがある。
本実施形態では、そのような意味論的文法違反箇所を、
意味論的文法違反検出手段15によって検出すると、型
変換テンプレート40を用いて意味論的文法違反修正手
段16により自動的に修正した上で、その修正内容が、
コメント付与手段20により、ソース(修正後HDL記
述2B)の修正箇所にコメントとして追加・記入され
る。
【0052】例えば図2に示す初期HDL記述(VHD
Lによる記述)2Aにおいては、入力変数“a”(右
辺)の型“std_ulogic”と、出力変数“b”(左辺)の
型“bit”とは異なるものであるため、初期HDL記述
2A中の“b<=a;”の箇所が、意味論的文法違反箇所
として検出される。上述のような型の不一致箇所は、意
味論的文法違反検出手段15がHDLデータベース22
を検索することによって検出される。
【0053】そして、意味論的文法違反修正手段16
は、その箇所を修正するために必要な型変換パターン
(型変換規則,型変換関数)が型変換テンプレート40
に存在するか否かをチェックする。ここで、型変換テン
プレート40においては、左辺の変数の型が“bit”で
右辺の変数の型が“std_ulogic”である場合の型変換パ
ターン(型変換規則)“To_bit”が、ライブラリ“std_
logic_1164”によって提供・定義されている。
【0054】従って、意味論的文法違反箇所“b<=
a;”は、意味論的文法違反修正手段16により、修正
後HDL記述2Bにおいて、“b<=To_bit(a);”に自
動的に変換され修正される。さらに、その修正箇所“b
<=To_bit(a);”の後には、コメント付与手段20によ
り、修正内容を示すコメント“--型変換”が付与され
る。なお、型変換テンプレート40には、典型的な型変
換パターン(型変換規則,型変換関数)が予め定義され
ている。その型変換パターンの代表的なものを下記表1
に示す。また、必要に応じ、型変換関数が格納されてい
るライブラリとパッケージとを参照するためのlibrary
文とuse文の追加を自動的に行なってもよい。
【0055】
【表1】
【0056】〔2−2〕言語変換規則テンプレートを用
いた修正動作について HDLを用いて回路設計を行なった場合、システム間の
連係や設計フローの都合などにより、当初用いられてい
たHDLから異なる種類の他のHDLにHDL記述を変
換することがしばしばある。このとき、当然、HDL記
述が現在のHDLの言語規約を満たしていても他のHD
Lの言語規約を満たさない場合がある。本実施形態のH
DL自動修正装置1では、上述のような変換の可能性を
考慮して(他言語に変換した場合に起こりうる文法エラ
ーを想定して)、他のHDLに変換した時にも回路設計
上の問題(他言語に変換した場合の文法エラー)が生じ
ないように、予め他のHDLの言語規約も満たすように
HDL記述を自動修正している。
【0057】つまり、実際に他言語へ変換するツールは
存在しているが、本実施形態では、他言語への変換処理
は行なわれないが、他言語へ変換されることを考慮した
他言語の言語規約チェックが行なわれ、そのチェック結
果に応じた自動修正が行なわれる。このように他言語で
の規約チェックを事前に行なうことで、設計者に負担を
かけることなく、複数種類のHDLにおいて回路設計上
の問題を生じさせることのないHDL記述2Bを得るこ
とができる。従って、いつでも他言語への変換が可能と
なり、また実際に他言語に変換した場合にエラー修正の
手間を省くことができる。
【0058】そこで、本実施形態のHDL自動修正装置
1における修正対象事項検出手段17では、図3に示す
ように、言語変換規則テンプレート51に含まれる予約
語テンプレート51a,名前テンプレート51bおよび
大文字小文字ルール51dを読み込み、これらのテンプ
レート51a,51bや大文字小文字ルール51dに違
反している箇所をチェックする。そして、違反箇所にお
ける記述は、名前生成ルール51cに従って自動的に生
成された新たな記述(文字列)に変換される。また、他
言語へ変換した場合の言語規約違反だけではなく、混乱
を招きやすい記述に対しても、チェックおよび自動修正
を行なう。
【0059】例えばVerilog-HDLで記述されたHD
L記述2Aに対しては、構文的文法違反検出手段13に
よってVerilog-HDLの予約語チェックを行なうほ
か、修正対象事項検出手段17によって、予約語テンプ
レート51aおよび名前テンプレート51bを用いて、
他のHDL、例えばVHDLの予約語チェックが行なわ
れる。このとき、予約語テンプレート51aには、変換
可能性のある言語(HDL)の予約語が全て定義・登録
されており、名前テンプレート51bには、変換可能性
のある言語(HDL)ごとに使用可能な端子名やネット
名が登録・定義されている。
【0060】図3に具体的に示すVerilog-HDLによ
るHDL記述2Aにおいて、“in”や“out”は、Veri
log-HDLでは端子名やネット名として使用可能である
が、VHDLでは予約語となっているため、VHDLで
は、“in”や“out”を端子名やネット名として使用す
ることは禁止されている。このように他言語に変換した
場合にエラーとなる記述“in”や“out”が、修正対象
事項検出手段17により修正対象の箇所として検出され
ると、修正対象事項修正手段18は、サフィックス,プ
レフィックス,連結子,追い番を記述した名前生成ルー
ル51cを読み込み、そのルール51cに従って、新た
な文字列(名前)として“in_1”や“out_1”をそれぞ
れ自動生成する。
【0061】ここで生成された新たな文字列“in_1”や
“out_1”は、いずれも、HDL記述2Aに存在する文
字列と重複しないユニークな文字列であり、且つ、Ver
ilog-HDLやVHDLのいずれにおいても端子名やネ
ット名として使用可能なものである。そして、“in”や
“out”は、修正後HDL記述2Bにおいて、それぞれ
“in_1”や“out_1”に自動的に置き換えられ、さら
に、その修正箇所の行末には、コメント付与手段20に
より、修正コメント“//修正”が付与される。
【0062】また、例えばVerilog-HDLによるHD
L記述2Aにおいて、ネット名中の文字として“a _ _
b”(図3参照)や“$”を使用することは、Verilog-
HDLの言語規約には違反していないが、VHDLの言
語規約に違反している。そのため、HDL記述2AをV
erilog-HDLからVHDLに変換した場合にエラーが
発生するものと予測されるので、修正対象事項修正手段
18は、名前生成ルール51aに従って、上述と同様の
ユニークな文字列(名前)を自動生成し、他言語に変換
した場合、違反するであろうと判断した箇所を自動発生
名に変更する。図3において、HDL記述2Aの文字列
“a_ _b”は、修正後HDL記述2Bでは、新たな文字
列“a_b”に自動的に置き換えられ、さらに、その修正
箇所の行末に、コメント付与手段20により、修正コメ
ント“//修正”が付与される。
【0063】さらに、Verilog-HDLでは、アルファ
ベットの大文字と小文字を区別して使用するが、VHD
Lでは、アルファベットの大文字と小文字を区別しない
で使用する。このため、Verilog-HDLによるHDL
記述2Aにおいて、大文字と小文字とが混在している場
合、そのHDL記述2AをVerilog-HDLからVHD
Lに変換した場合、混乱を招いてしまう。図3に示すH
DL記述2Aにおいて“a”と“A”とは区別して使用
されているが、VHDLでは、これらの文字“a”およ
び“A”を区別することができず混乱を招くことにな
る。
【0064】そこで、本実施形態のHDL自動修正装置
1では、Verilog-HDLをVHDLに変換する可能性
を考慮し、修正対象事項検出手段17によって、大文字
と小文字を区別して記述された同一綴りの一対の文字列
“A”と“a”のうちの一方(ここでは“A”)が、修
正対象事項に対応する箇所として検出され、さらに、修
正対象事項修正手段18が、名前生成ルール51cに従
って、上述と同様のユニークな文字列(名前)として例
えば“A_1”を自動生成する。ここで生成された新たな
文字列は、HDL記述中に存在する文字列の綴りと重複
しない綴りを有するものである。
【0065】そして、HDL記述2Aの文字“A”は、
修正後HDL記述2Bにおいて、新たな文字列“A_1”
に自動的に置き換えられ、さらに、その修正箇所の行末
に、コメント付与手段20により、修正コメント“//修
正”が付与される。このように“A”を“A_1”に置き
換えることにより、Verilog-HDLにおいてもVHD
Lにおいても、その名前を区別することが可能になる。
【0066】逆に、アルファベットの大文字と小文字を
区別しないVHDLで記述されたHDL記述をチェック
する場合には、大文字と小文字を区別して使用するVer
ilog-HDLに変換する可能性を考慮し、修正対象事項
検出手段17によって、HDL記述の文字列における大
文字および小文字のうちの一方が、修正対象事項に対応
する箇所として検出され、さらに、修正対象事項修正手
段18が、検出された大文字または小文字をそれぞれ小
文字または大文字に自動的に変換する。即ち、VHDL
で記述されたHDL記述中の全ての文字を、小文字もし
くは大文字に統一する修正が行なわれる。
【0067】VHDLでは、例えば端子名“b”と
“B”とを同一の端子名として取り扱うが、Verilog-
HDLでは、これらの端子名“b”と“B”とを異なる
端子名として取り扱うため、混乱を招くことになるが、
本実施形態のHDL自動修正装置1では、上述のごと
く、VHDLによるHDL記述2Aにおける文字が全て
小文字もしくは大文字に統一され、上述の端子名も全て
“b”もしくは“B”に置き換えられる。従って、上述
のような混乱を招くこともなくなる。
【0068】〔2−3〕使用禁止文字情報テンプレート
を用いた修正動作について HDLを用いて回路設計を行なう際には、複数人数で設
計を行なったり、ツールを使用して設計を行なったりす
る場合がある。このような場合、HDL記述中の名前ル
ールが統一されていないことがしばしばある。そのた
め、従来、ツール間でインターフェイスする場合や他言
語に変換する場合を考慮し、手作業により名前の記述の
統一をはかっていた。
【0069】これに対し、本実施形態のHDL自動修正
装置1の修正対象事項検出手段17では、図4に示すよ
うに、使用禁止文字情報テンプレート52に含まれる使
用禁止文字テンプレート52aを読み込み、使用禁止文
字テンプレート52aを用いて、HDL記述2Aの使用
禁止文字を使用している箇所をチェックする。そして、
モジュール名,外部端子名,インスタンス名,ネット
名,タイプ名,コンポーネント名,外部端子別名等にお
いて使用禁止文字が使用されていた場合、その使用禁止
文字を含む文字列(名前)は、名前生成ルール52bに
従って自動的に生成された新たな名前(文字列)に変換
される。
【0070】図4では、使用禁止文字として例えば
“$”,“&”を登録された使用禁止文字テンプレート
52aを用いることで、修正対象事項検出手段17によ
り、入力Verilog-HDLで記述されたHDL記述2A
中で“$”,“&”が使用されている箇所があるかどう
かがチェックされる。このとき、図4に示す例では、イ
ンスタンス名として“$”が修正対象箇所として検出さ
れ、修正対象事項修正手段18が、名前生成ルール52
b(ここでは“prefix:X;”)に従って、HDL記述2
Aに存在する文字列と重複せず且つ所定の使用禁止文字
を含まない新しい文字列(名前)として、例えば“X
1”を自動生成する。
【0071】そして、HDL記述2Aの文字“$”は、
修正後HDL記述2Bにおいて、新たな文字列“X1”
に自動的に置き換えられ、さらに、その修正箇所の行末
に、コメント付与手段20により、修正コメント“//修
正”が付与される。これにより、例えば複数の設計者に
よりHDL記述2Aを作成した場合に命名規則に違反す
る箇所が多数出現したとしても、設計者に負担をかける
ことなく、その違反箇所の名前(文字列)を容易かつ確
実に修正して命名規則に従ったHDL記述2Bを得るこ
とができる。
【0072】〔2−4〕階層情報テンプレートを用いた
修正動作について HDL記述2Aが複数の階層から構成されている場合
(例えば図5参照)、各階層の端子定義記述とインスタ
ンス部における端子記述とが不一致(不統一)であるこ
とが多々ある。このような端子記述の不一致は、設計者
が文法違反の記述を行なって生じる場合や、設計者が文
法的には違反していないが回路として不適切な記述をし
てしまって生じる場合があり、これらの場合は、いずれ
もその不一致を解消することが望ましい。
【0073】また、Verilog-HDLは、端子記述等の
省略が許容される言語であるため、Verilog-HDLに
よるHDL記述中には、上述のような端子記述の不一致
が多々ある。このような場合、上述のような不一致は回
路表現として間違いではないが、安全な運用のためにで
きるだけ不一致の無い明快な記述を行なった方が好まし
い。
【0074】そこで、本実施形態のHDL自動修正装置
1では、 (1)全てのモジュールポート名(端子名)をインスタン
ス部に記述する(図5参照)。 (2)上位階層におけるビット幅の記述を、下位階層にお
けるビット幅の記述に合わせる(図6参照)。 (3)上位階層におけるコンポーネントポートの記述を下
位階層の記述に合わせる(図7参照)。 (4)インスタンス部におけるポート名(端子名)を、名
前対応もしくは位置対応で統一的に記述する(図8参
照)。 というルールを、それぞれ階層情報テンプレート53に
おける修正規則53a〜53dとして定義する。
【0075】このような修正規則53a〜53dに従っ
て、修正対象事項検出手段17により、HDL記述を成
す複数の階層において端子記述(ポート名記述)が不一
致もしくは不統一である箇所が、修正対象事項に対応す
る箇所として検出される。そして、修正対象事項修正手
段18により、検出された箇所における端子記述が、言
語文法および修正規則53a〜53dを定義する制御情
報(階層情報テンプレート53)に基づき、複数の階層
の全てにおいて一致または統一した記述に自動的に修正
される。
【0076】階層構造をもつVerilog-HDLによるH
DL記述2Aでは、インスタンス部に、未使用の下位階
層端子名を記述する必要はない。しかし、Verilog-H
DLからVHDLへの変換を行なう場合や、端子が未使
用であることを明示したい場合には、下位階層の全ての
端子名を記述した方が都合が良いので、全ての端子名
(ポート名)をインスタンス部に記述するという修正規
則53a(verilog instance port:adjust to module p
ort;)を、階層情報テンプレート53に制御情報として
定義・登録する。
【0077】図5に示すHDL記述2Aでは、下位階層
において端子名としてs,t,u,vの4つが記述されている
が、上位階層では端子名vをもつ端子が使用されていな
いので、インスタンス部においてその端子名vの記述が
省略されている。このようなHDL記述2AをHDL自
動修正装置1に入力すると、HDL記述2Aのインスタ
ンス部における省略記述“ins(.s(a),.t(b),.u(c))”
が、修正後HDL記述2Bにおいて、全端子名を有する
記述“ins(.s(a),.t(b),.u(c),.v())”に自動的に修正
され、さらに、その修正箇所の行末に、コメント付与手
段20により、修正コメント“//修正”が付与される。
これにより、HDL記述2A中のインスタンス部の記述
が全端子名を有する記述に変更されるので、未使用の端
子を明示することができるほか、Verilog-HDLから
VHDLへの変換にも対応することができるようにな
る。
【0078】図6に示すVerilog-HDLによるHDL
記述2Aでは、下位階層において出力uは2ビット[0:
1]であることが記述されているが、上位階層では出力
uに対応する出力cが1ビットであり、インスタンス部
において出力uのうちの未使用の1ビットの記述が省略
されている。
【0079】このとき、ビット幅が不一致であった場合
に上位階層のインスタンス部を下位モジュールのビット
幅に合わせるという修正規則53b(bundle port:adju
st to lower module)を、階層情報テンプレート53に
制御情報として定義・登録しておけば、図6に示すHD
L記述2Aは、インスタンス部における上位階層のビッ
ト幅の記述を下位階層のビット幅の記述に一致させたH
DL記述2Bに、自動的に修正され、さらに、その修正
箇所の行末に、コメント付与手段20により修正コメン
ト“//修正”が付与される。これにより、上位階層にお
いて、出力uの2ビットのうち1ビットが空いているこ
とが明確化される。
【0080】なお、図6に示す修正後HDL記述2Bで
は、2ビットの信号dが新たに定義され〔wire[0:1]
d;〕、信号dの2ビットのうちの一方が信号cに割り当
てられるとともに〔assign c = d[0];〕、信号dと出
力uとが対応付けられている〔ins(.s(a),.t(b),.u
(d))〕。
【0081】階層構造をもつVHDLによるHDL記述
2Aにおいては、上位階層のコンポーネントポートの記
述と下位階層のエンティティポートの記述とが不一致で
あるため、上下階層を一括して処理することが不可能に
なる場合がある。例えば図7に示すHDL記述2Aで
は、下位階層においてエンティティポート名Vが記述さ
れているが、上位階層においてそのポート名Vをもつポ
ートが空き状態であるため、そのポート名Vの記述が省
略されている。
【0082】このとき、上位階層のコンポーネントポー
トの記述を下位階層におけるエンティティポートの記述
に合わせるという修正規則53c(component port:com
plement to entity)を、階層情報テンプレート53に
制御情報として定義・登録しておけば、図7に示すHD
L記述2Aにおける省略記述“port(S,T:in std_logic;
U:out std_logic”や“port map(S=>A,T=>B,U=>C)”
が、修正後HDL記述2Bにおいて、それぞれ、下位階
層のエンティティポートの記述に一致させた記述“port
(S,T:in std_logic;U,V:out std_logic”や“port map
(S=>A,T=>B,U=>C,V=>OPEN)”に自動的に修正され、さら
に、その修正箇所の行末に、コメント付与手段20によ
り修正コメント“//修正”が付与される。これにより、
上位階層において、ポート名Vをもつポートの存在とそ
のポートが空き状態であることとが明確化される。
【0083】図8に示すHDL記述2Aにおいて、Ver
ilog-HDL(もしくはVHDL)のポート位置対応記
述やポート名対応記述はいずれも文法的に適している
が、その記述を統一する必要性がある場合などには、イ
ンスタンス部におけるポート名(端子名)を名前対応も
しくは位置対応で統一的に記述するという修正規則53
d(port connection:name;)を、階層情報テンプレー
ト53に制御情報として定義・登録する。
【0084】例えば、初期HDL記述2Aが図8に示す
ごとくポート位置対応記述されており、修正規則53d
がポート名対応記述への修正を指示していた場合、HD
L記述2Aにおける記述“test1 test1_ins(p,q);”
は、“test1 test1_ins(.a(p),.b(q));”に自動的に修
正され、さらに、その修正箇所の行末に、コメント付与
手段20により修正コメント“//修正”が付与される。
これにより、インスタンス部におけるポート名(端子
名)が名前対応もしくは位置対応で統一的に記述され
る。
【0085】以上のように、階層情報テンプレート53
における修正対象事項や修正規則を適当に定義すること
により、HDL記述2Aを成す複数の階層において端子
記述が不一致もしくは不統一である箇所が、一致または
統一した記述になるように自動修正される。従って、従
来、フロントエンド(言語処理系)ではなくバックエン
ド(論理合成ツールや検証ツール)でないと検出できな
かった不適切な記述箇所が早期に発見されて自動修正さ
れるので、設計工程での手戻りの発生を確実に抑止する
ことができる。
【0086】〔2−5〕接続情報テンプレートを用いた
修正動作について HDLにおける信号代入記述は、RTL(Register Tra
nsfer Level)記述では動作仕様の基本であるので、左
辺と右辺とを間違う可能性は低い。しかし、構造記述部
分では、単純であるが大量の記述が行なわれる場合があ
るので、左辺と右辺とを間違って記述することも有りう
る。一般に、HDLではポート(端子)と信号代入とに
関する文法が存在しており、特に、VHDLでは、5種
類のポートin,out,inout,buffer,linkageに対して
以下のように使用法が規定されているので、規則を、信
号代入記述の左辺と右辺とへの記述可能性として表記す
ることが可能である。
【0087】 in かならず右辺でなければならない out かならず左辺でなければならない inout 左辺,右辺のどちらでもよい buffer 左辺,右辺のどちらでもよい linkage 左辺,右辺のどちらでもよい
【0088】同様に、Verilog-HDLでは、3種類の
ポートinput,output,inoutに対して以下のように使用
法が規定されている。 input かならず右辺でなければならない output かならず左辺でなければならない inout 左辺,右辺のどちらでもよい
【0089】本実施形態のHDL自動修正装置1では、
上述のような使用規則を、接続情報テンプレート54に
含まれる修正規則として適用することで、修正対象事項
検出手段17により、信号代入記述の左辺と右辺との関
係が誤っている箇所が、修正対象事項に対応する箇所と
して検出され、さらに、修正対象事項修正手段18によ
り、検出された箇所における信号代入記述の左辺と右辺
との関係が、上記修正規則(使用規則)に従って自動的
に修正される。
【0090】例えば、VHDLによる初期HDL記述2
Aに、以下のような信号代入記述があった場合、文法違
反ではないが、出力端子の信号bが入力端子aに代入さ
れるのは不適切である。 module test(a,b); input a; output b; assign a=b; endmodule
【0091】このとき、以下のような修正規則を接続情
報テンプレート54に定義・登録する。 input : right #input端子は右辺でなければならない output: left #output端子は左辺でなければならない inout: both #inout端子は両辺どちらでもよい
【0092】これにより、HDL記述2A内に存在する
信号代入記述の各々について左辺と右辺との妥当性を確
認し、逆の記述があった場合、HDL記述2Aを自動的
に修正し、修正済みのHDL記述2Bを生成・出力する
ことができる。なお、その修正箇所の行末には、コメン
ト付与手段20により修正コメント“//修正”が付与さ
れる。
【0093】修正後のHDL記述2Bは以下のようにな
る。 module test(a,b); input a; output b; assign b=a;//修正 endmodule
【0094】以上のように接続情報テンプレート54に
おける修正対象事項や修正規則を適当に定義することに
より、信号代入記述の左辺と右辺との関係が誤っている
箇所を正しい関係に自動修正することができる。また、
HDLの言語種類によって修正規則を使い分けること
で、それぞれの言語仕様に応じた修正を自動的に行なう
ことが可能になる。
【0095】〔2−6〕非合成記述テンプレートを用い
た修正動作について 論理合成したいHDL記述においては、論理検証時に使
用した論理合成不能な波形観測用シミュレーション記述
等がコメントアウトされずに残っている場合が多々あ
る。
【0096】そこで、本実施形態のHDL自動修正装置
1では、非合成記述テンプレート55に含まれる修正規
則55a(図9参照)において、論理合成不能な波形観
測用シミュレーション記述文を全て列挙するとともに、
その記述文を削除するか、もしくは、その記述文を論理
合成ツールに無視させるためのディレクティブを追加・
記入するかを指定する。なお、ディレクティブは、該当
記述文の前後を囲むように記述され、このようにディレ
クティブで囲まれた記述文は、論理合成ツールによって
無視され論理合成対象外の記述として取り扱われる。な
お、該当記述文を削除するかディレクティブで囲むかは
設計者によって適宜選択される。
【0097】例えば図9では、非合成記述テンプレート
55に含まれる修正規則55aにおいて、論理合成不能
な波形観測用シミュレーション記述文として“initial
文”と“$monitor()”とが列挙され、これらの記述文を
“synthesis on/off directive”で囲むように指定され
ている。
【0098】図9に具体的に示すHDL記述2Aにおい
て、“initial o = 1’b0;”と“$monitor(o);”とが論
理合成不能な波形観測用シミュレーション記述文であ
り、これらの記述文が修正対象事項検出手段17により
検出される。そして、修正対象事項修正手段18によ
り、その記述文の前後に“synthesis on/off directiv
e”が自動的に追加・記入され(図9の修正後HDL記
述2B参照)、さらに、その追加・記入箇所(修正箇
所)の行末に、コメント付与手段20により修正コメン
ト“//修正”が付与される。
【0099】これにより、HDL記述2Aにおいて、例
えば、論理検証時に使用した論理合成不能な波形観測用
シミュレーション記述文“initial o = 1’b0;”や“$m
onitor(o);”がコメントアウトされずに残っていたとし
ても、このような記述文が論理合成ツールにおいて問題
(エラー)を引き起こすことがなくなる。従って、上述
のような記述文を設計者が手作業により削除するといっ
た作業が不要になり、設計者にかかる負担を大幅に削減
することができる。
【0100】〔3〕本発明の一実施形態の効果の説明 このように、本発明の一実施形態としてのHDL自動修
正装置1によれば、初期HDL記述2Aに存在する不適
切な記述を検査することが可能となり、さらに修正を施
されたHDL記述2Bが生成されるので、高品質のHD
L記述2Bを得ることができる。
【0101】特に、本実施形態では、重度の意味論的文
法違反が自動修正され且つその修正箇所が明確化される
ので、設計者にかかる負担が大幅に軽減されるととも
に、高品質のHDL記述2Bを得ることができる。ま
た、文法違反ではないが回路設計上考慮すべき箇所(修
正対象事項に対応する箇所)が適切な記述に自動修正さ
れ且つその修正箇所が明確化されるので、設計者にかか
る負担が大幅に軽減されるとともに、より高品質のHD
L記述2Bを得ることができる。
【0102】さらに、テンプレート51〜55における
修正対象事項や修正規則を適当に定義することにより、
回路設計上考慮すべき箇所(不適切な記述)や設計者の
単純ミスを早期に発見して確実に自動修正することがで
きるので、設計工程での手戻りの発生を確実に抑止する
ことが可能になる。不適切な記述は多くの場合、設計者
の設計意図とは異なる回路の機能や構造を表現している
ので、後続の論理検証や回路実装の工程になって誤りが
発見され修正作業が発生するが、本実施形態のHDL自
動修正装置1を用いて、不適切な記述をHDL記述の作
成時に修正することにより、無駄な修正作業を発生させ
ずに済む。
【0103】一方、修正に関するコメント(注意書き)
を修正箇所に付与することにより、修正箇所が明確化さ
れ、設計者は、HDL記述2Bのどこをどのように修正
したかを容易に視認することができる。従って、設計者
は、自動修正結果が意図するものかどうか、即ち適正な
修正が行なわれたか否かの確認作業を容易かつ確実に行
なえ、設計者にかかる負担が大幅に削減される。
【0104】また、修正後HDL記述2Bに付与された
修正コメントにより、HDLによって回路設計情報を記
述する際に、どのような箇所において、修正が必要な記
述をする可能性があるかを設計者に把握させることがで
きるので、設計者に対する教育的効果も得られる。
【0105】〔4〕その他 なお、本発明は上述した実施形態に限定されるものでは
なく、本発明の趣旨を逸脱しない範囲で種々変形して実
施することができる。例えば、上述した実施形態では、
HDLがVHDLやVerilog-HDLである場合につい
て説明したが、本発明は、これらのVerilog-HDLや
VHDL以外の言語にも適用可能であり、その場合も上
述と同様の作用効果が得られ、回路設計分野やソフトウ
ェア開発分野における効率化・負担削減に大きく寄与す
るものである。
【0106】〔5〕付記 (付記1) ハードウェア記述言語(以下、HDLとい
う)によって記述された回路設計情報(以下、HDL記
述という)を自動的に修正する装置であって、修正対象
のHDL記述の字句解析を行なうHDL字句解析手段
と、該HDL字句解析手段による解析結果に基づいて該
HDL記述の構文解析を行ない、該HDL記述を解析木
形式の記述に変換するHDL構文解析手段と、該HDL
構文解析手段による解析結果に基づいて該HDL記述の
意味論解析を行ない、該HDL記述における代入文の右
辺と左辺の変数の型が不一致になっている部分を意味論
的文法違反箇所として検出する意味論的文法違反検出手
段と、前記代入文の右辺の変数の型を左辺の変数の型に
変換する型変換関数を、型変換規則として定義する型変
換テンプレートと、該意味論的文法違反検出手段によっ
て該意味論的文法違反箇所とみなされた代入文の右辺に
対して、該型変換テンプレートに定義された該型変換関
数を適用することにより、該意味論的文法違反箇所を正
しい記述に修正する意味論的文法違反修正手段と、該意
味論的文法違反修正手段による修正を施された該HDL
記述の逆構文解析を行ない、該HDL記述を前記解析木
形式の記述から通常の記述形式に変換するHDL逆構文
解析手段と、該意味論的文法違反修正手段によって修正
を施された箇所に、該修正に関するコメントを付与する
コメント付与手段とをそなえて構成されたことを特徴と
する、HDL自動修正装置。
【0107】(付記2) 文法違反ではないが回路設計
上考慮すべき修正対象事項、および、該修正対象事項に
対応する箇所の修正規則を定義する制御情報テンプレー
トと、該HDL構文解析手段による解析結果に基づき、
該HDL記述において、該修正対象事項に対応する箇所
を検出する修正対象事項検出手段と、該修正対象事項検
出手段によって検出された箇所を、該制御情報テンプレ
ートに定義された該修正規則に従って修正する修正対象
事項修正手段とをさらにそなえ、該HDL逆構文解析手
段が、該意味論的文法違反修正手段および該修正対象事
項修正手段による修正を施された該HDL記述の逆構文
解析を行なうとともに、該コメント付与手段が、該意味
論的文法違反修正手段および該修正対象事項修正手段に
よって修正を施された箇所に、該コメントを付与するこ
とを特徴とする、付記1記載のHDL自動修正装置。
【0108】(付記3) ハードウェア記述言語(以
下、HDLという)によって記述された回路設計情報
(以下、HDL記述という)を自動的に修正する装置で
あって、修正対象のHDL記述の字句解析を行なうHD
L字句解析手段と、該HDL字句解析手段による解析結
果に基づいて該HDL記述の構文解析を行ない、該HD
L記述を解析木形式の記述に変換するHDL構文解析手
段と、文法違反ではないが回路設計上考慮すべき修正対
象事項、および、該修正対象事項に対応する箇所の修正
規則を定義する制御情報テンプレートと、該HDL構文
解析手段による解析結果に基づき、該HDL記述におい
て、該修正対象事項に対応する箇所を検出する修正対象
事項検出手段と、該修正対象事項検出手段によって検出
された箇所を、該制御情報テンプレートに定義された該
修正規則に従って修正する修正対象事項修正手段と、該
修正対象事項修正手段による修正を施された該HDL記
述の逆構文解析を行ない、該HDL記述を前記解析木形
式の記述から通常の記述形式に変換するHDL逆構文解
析手段と、該修正対象事項修正手段によって修正を施さ
れた箇所に、該修正に関するコメントを付与するコメン
ト付与手段とをそなえて構成されたことを特徴とする、
HDL自動修正装置。
【0109】(付記4) 該修正対象事項検出手段が、
処理中の該HDLを異なる種類の他のHDLに変換した
場合に該他のHDLの言語規約を満たさない箇所を、該
修正対象事項に対応する箇所として検出するように、該
制御情報テンプレートにおける該修正対象事項が定義さ
れるとともに、該修正対象事項修正手段が、該修正対象
事項検出手段によって検出された箇所を、該他のHDL
の言語規約を満たす記述に変換・修正するように、該制
御情報テンプレートにおける該修正規則が定義されるこ
とを特徴とする、付記2または付記3に記載のHDL自
動修正装置。
【0110】(付記5) 処理中の該HDLがアルファ
ベットの大文字と小文字を区別して使用するものである
場合、処理中の該HDLを、大文字と小文字を区別しな
いで使用する他のHDLに変換する可能性を考慮し、該
修正対象事項検出手段が、大文字と小文字を区別して記
述された同一綴りの一対の文字列のうちの一方を、該修
正対象事項に対応する箇所として検出するように、該制
御情報テンプレートにおける該修正対象事項が定義され
るとともに、該修正対象事項修正手段が、該HDL記述
中に存在する文字列の綴りと重複しない綴りの新しい文
字列を生成してから、該修正対象事項検出手段によって
検出された該一方の文字列を該新しい文字列に置換する
ように、該制御情報テンプレートにおける該修正規則が
定義されることを特徴とする、付記4記載のHDL自動
修正装置。
【0111】(付記6) 処理中の該HDLがアルファ
ベットの大文字と小文字を区別しないで使用するもので
ある場合、処理中の該HDLを、大文字と小文字を区別
して使用する他のHDLに変換する可能性を考慮し、該
修正対象事項検出手段が、該HDL記述の文字列におけ
る大文字および小文字のうちの一方を、該修正対象事項
に対応する箇所として検出するように、該制御情報テン
プレートにおける該修正対象事項が定義されるととも
に、該修正対象事項修正手段が、該修正対象事項検出手
段によって検出された大文字または小文字をそれぞれ小
文字または大文字に変換するように、該制御情報テンプ
レートにおける該修正規則が定義されることを特徴とす
る、付記4記載のHDL自動修正装置。
【0112】(付記7) 該修正対象事項検出手段が、
所定の使用禁止文字を含む文字列を、該修正対象事項に
対応する箇所として検出するように、該制御情報テンプ
レートにおける該修正対象事項が定義されるとともに、
該修正対象事項修正手段が、該HDL記述に存在する文
字列と重複せず且つ該所定の使用禁止文字を含まない新
しい文字列を生成してから、該修正対象事項検出手段に
よって検出された該使用禁止文字を含む文字列を該新し
い文字列に置換するように、該制御情報テンプレートに
おける該修正規則が定義されることを特徴とする、付記
2〜付記6のいずれか一つに記載のHDL自動修正装
置。
【0113】(付記8) 該修正対象事項検出手段が、
該HDL記述を成す複数の階層において端子記述が不一
致もしくは不統一である箇所を、該修正対象事項に対応
する箇所として検出するように、該制御情報テンプレー
トにおける該修正対象事項が定義されるとともに、該修
正対象事項修正手段が、該修正対象事項検出手段によっ
て検出された箇所における該端子記述を、該複数の階層
の全てにおいて一致または統一した記述に修正するよう
に、該制御情報テンプレートにおける該修正規則が定義
されることを特徴とする、付記2〜付記7のいずれか一
つに記載のHDL自動修正装置。
【0114】(付記9) 該修正対象事項検出手段が、
信号代入記述の左辺と右辺との関係が誤っている箇所
を、該修正対象事項に対応する箇所として検出するよう
に、該制御情報テンプレートにおける該修正対象事項が
定義されるとともに、該修正対象事項修正手段が、該修
正対象事項検出手段によって検出された箇所における該
信号代入記述の左辺と右辺との関係を修正するように、
該制御情報テンプレートにおける該修正規則が定義され
ることを特徴とする、付記2〜付記8のいずれか一つに
記載のHDL自動修正装置。
【0115】(付記10) 該修正対象事項検出手段
が、論理合成ツールが合成することのできない箇所を、
該修正対象事項に対応する箇所として検出するように、
該制御情報テンプレートにおける該修正対象事項が定義
されるとともに、該修正対象事項修正手段が、該修正対
象事項検出手段によって検出された箇所を削除するよう
に、該制御情報テンプレートにおける該修正規則が定義
されることを特徴とする、付記2〜付記9のいずれか一
つに記載のHDL自動修正装置。
【0116】(付記11) 該修正対象事項検出手段
が、論理合成ツールが合成することのできない箇所を、
該修正対象事項に対応する箇所として検出するように、
該制御情報テンプレートにおける該修正対象事項が定義
されるとともに、該修正対象事項修正手段が、該修正対
象事項検出手段によって検出された箇所に、当該箇所に
おける記述を該論理合成ツールに無視させるためのディ
レクティブを追加・記入するように、該制御情報テンプ
レートにおける該修正規則が定義されることを特徴とす
る、付記2〜付記9のいずれか一つに記載のHDL自動
修正装置。
【0117】(付記12) ハードウェア記述言語(以
下、HDLという)によって記述された回路設計情報
(以下、HDL記述という)を、コンピュータに自動修
正させるためのHDL自動修正プログラムであって、修
正対象のHDL記述の字句解析を行なうHDL字句解析
手段、該HDL字句解析手段による解析結果に基づいて
該HDL記述の構文解析を行ない、該HDL記述を解析
木形式の記述に変換するHDL構文解析手段、該HDL
構文解析手段による解析結果に基づいて該HDL記述の
意味論解析を行ない、該HDL記述における代入文の右
辺と左辺の変数の型が不一致になっている部分を意味論
的文法違反箇所として検出する意味論的文法違反検出手
段、該意味論的文法違反検出手段によって該意味論的文
法違反箇所とみなされた代入文の右辺に対して、前記代
入文の右辺の変数の型を左辺の変数の型に変換する型変
換関数を適用することにより、該意味論的文法違反箇所
を正しい記述に修正する意味論的文法違反修正手段、該
意味論的文法違反修正手段による修正を施された該HD
L記述の逆構文解析を行ない、該HDL記述を前記解析
木形式の記述から通常の記述形式に変換するHDL逆構
文解析手段、および、該意味論的文法違反修正手段によ
って修正を施された箇所に、該修正に関するコメントを
付与するコメント付与手段として、該コンピュータを機
能させることを特徴とする、HDL自動修正プログラ
ム。
【0118】(付記13) 該HDL構文解析手段によ
る解析結果に基づき、該HDL記述において、文法違反
ではないが回路設計上考慮すべき修正対象事項に対応す
る箇所を検出する修正対象事項検出手段、および、該修
正対象事項検出手段によって検出された箇所を、予め定
義された該修正対象事項に対応する箇所の修正規則に従
って修正する修正対象事項修正手段として、該コンピュ
ータをさらに機能させ、該HDL逆構文解析手段に、該
意味論的文法違反修正手段および該修正対象事項修正手
段による修正を施された該HDL記述の逆構文解析を行
なわせるとともに、該コメント付与手段に、該意味論的
文法違反修正手段および該修正対象事項修正手段によっ
て修正を施された箇所に、該コメントを付与させること
を特徴とする、付記12記載のHDL自動修正プログラ
ム。
【0119】(付記14) ハードウェア記述言語(以
下、HDLという)によって記述された回路設計情報
(以下、HDL記述という)を、コンピュータに自動修
正させるためのHDL自動修正プログラムであって、修
正対象のHDL記述の字句解析を行なうHDL字句解析
手段、該HDL字句解析手段による解析結果に基づいて
該HDL記述の構文解析を行ない、該HDL記述を解析
木形式の記述に変換するHDL構文解析手段、該HDL
構文解析手段による解析結果に基づき、該HDL記述に
おいて、文法違反ではないが回路設計上考慮すべき修正
対象事項に対応する箇所を検出する修正対象事項検出手
段、該修正対象事項検出手段によって検出された箇所
を、予め定義された該修正対象事項に対応する箇所の修
正規則に従って修正する修正対象事項修正手段、該修正
対象事項修正手段による修正を施された該HDL記述の
逆構文解析を行ない、該HDL記述を前記解析木形式の
記述から通常の記述形式に変換するHDL逆構文解析手
段、および、該修正対象事項修正手段によって修正を施
された箇所に、該修正に関するコメントを付与するコメ
ント付与手段として、該コンピュータを機能させること
を特徴とする、HDL自動修正プログラム。
【0120】(付記15) ハードウェア記述言語(以
下、HDLという)によって記述された回路設計情報
(以下、HDL記述という)を、コンピュータに自動修
正させるためのHDL自動修正プログラムを記録したコ
ンピュータ読取可能な記録媒体であって、該HDL自動
修正プログラムが、修正対象のHDL記述の字句解析を
行なうHDL字句解析手段、該HDL字句解析手段によ
る解析結果に基づいて該HDL記述の構文解析を行な
い、該HDL記述を解析木形式の記述に変換するHDL
構文解析手段、該HDL構文解析手段による解析結果に
基づいて該HDL記述の意味論解析を行ない、該HDL
記述における代入文の右辺と左辺の変数の型が不一致に
なっている部分を意味論的文法違反箇所として検出する
意味論的文法違反検出手段、を、型変換規則として定義
する型変換テンプレート、該意味論的文法違反検出手段
によって該意味論的文法違反箇所とみなされた代入文の
右辺に対して、前記代入文の右辺の変数の型を左辺の変
数の型に変換する型変換関数を適用することにより、該
意味論的文法違反箇所を正しい記述に修正する意味論的
文法違反修正手段、該意味論的文法違反修正手段による
修正を施された該HDL記述の逆構文解析を行ない、該
HDL記述を前記解析木形式の記述から通常の記述形式
に変換するHDL逆構文解析手段、および、該意味論的
文法違反修正手段によって修正を施された箇所に、該修
正に関するコメントを付与するコメント付与手段とし
て、該コンピュータを機能させることを特徴とする、H
DL自動修正プログラムを記録したコンピュータ読取可
能な記録媒体。
【0121】(付記16) 該HDL自動修正プログラ
ムが、該HDL構文解析手段による解析結果に基づき、
該HDL記述において、文法違反ではないが回路設計上
考慮すべき修正対象事項に対応する箇所を検出する修正
対象事項検出手段、および、該修正対象事項検出手段に
よって検出された箇所を、予め定義された該修正対象事
項に対応する箇所の修正規則に従って修正する修正対象
事項修正手段として、該コンピュータをさらに機能さ
せ、該HDL逆構文解析手段に、該意味論的文法違反修
正手段および該修正対象事項修正手段による修正を施さ
れた該HDL記述の逆構文解析を行なわせるとともに、
該コメント付与手段に、該意味論的文法違反修正手段お
よび該修正対象事項修正手段によって修正を施された箇
所に、該コメントを付与させることを特徴とする、付記
15記載のHDL自動修正プログラムを記録したコンピ
ュータ読取可能な記録媒体。
【0122】(付記17) ハードウェア記述言語(以
下、HDLという)によって記述された回路設計情報
(以下、HDL記述という)を、コンピュータに自動修
正させるためのHDL自動修正プログラムを記録したコ
ンピュータ読取可能な記録媒体であって、該HDL自動
修正プログラムが、修正対象のHDL記述の字句解析を
行なうHDL字句解析手段、該HDL字句解析手段によ
る解析結果に基づいて該HDL記述の構文解析を行な
い、該HDL記述を解析木形式の記述に変換するHDL
構文解析手段、該HDL構文解析手段による解析結果に
基づき、該HDL記述において、文法違反ではないが回
路設計上考慮すべき修正対象事項に対応する箇所を検出
する修正対象事項検出手段、該修正対象事項検出手段に
よって検出された箇所を、予め定義された該修正対象事
項に対応する箇所の修正規則に従って修正する修正対象
事項修正手段、該修正対象事項修正手段による修正を施
された該HDL記述の逆構文解析を行ない、該HDL記
述を前記解析木形式の記述から通常の記述形式に変換す
るHDL逆構文解析手段、および、該修正対象事項修正
手段によって修正を施された箇所に、該修正に関するコ
メントを付与するコメント付与手段として、該コンピュ
ータを機能させることを特徴とする、HDL自動修正プ
ログラムを記録したコンピュータ読取可能な記録媒体。
【0123】
【発明の効果】以上詳述したように、本発明のHDL自
動修正装置(請求項1〜3)およびHDL自動修正プロ
グラム(請求項4)並びに同プログラムを記録したコン
ピュータ読取可能な記録媒体(請求項5)によれば、以
下のような効果ないし利点を得ることができる。 (1)重度の意味論的文法違反が自動修正され且つその
修正箇所が明確化されるので、設計者にかかる負担が大
幅に軽減されるとともに、高品質のHDL記述を得るこ
とができる(請求項1,4,5)。
【0124】(2)文法違反ではないが回路設計上考慮
すべき箇所が適切な記述に自動修正され且つその修正箇
所が明確化されるので、設計者にかかる負担が大幅に軽
減されるとともに、高品質のHDL記述を得ることがで
きる(請求項2,3)。 (3)制御情報テンプレートにおける修正対象事項や修
正規則を適当に定義することにより、回路設計上考慮す
べき箇所(不適切な記述)や設計者の単純ミスを早期に
発見して確実に自動修正することができるので、設計工
程での手戻りの発生を確実に抑止することが可能になる
(請求項2,3)。
【0125】(4)修正に関するコメントを修正箇所に
付与することにより、設計者は、HDL記述のどこをど
のように修正したかを容易に視認することができる。従
って、設計者は、自動修正結果が意図するものかどう
か、即ち適正な修正が行なわれたか否かの確認作業を容
易かつ確実に行なえ、設計者にかかる負担が大幅に削減
される(請求項1〜5)。
【0126】(5)修正に関するコメントを修正箇所に
付与することにより、HDLによって回路設計情報を記
述する際に、どのような箇所において、修正が必要な記
述をする可能性があるかを設計者に把握させることがで
き、設計者に対する教育的効果も得られる(請求項1〜
5)。
【0127】(6)制御情報テンプレートにおける修正
対象事項や修正規則を適当に定義することにより、HD
L記述を処理中のHDLから他のHDLに変換する可能
性がある場合、他のHDLに変換した時に回路設計上の
問題が生じないように、予め他のHDLの言語規約も満
たすようにHDL記述を自動修正することができる。従
って、設計者に負担をかけることなく、複数種類のHD
Lにおいて回路設計上の問題を生じさせることのないH
DL記述を得ることができる。
【0128】(7)制御情報テンプレートにおける修正
対象事項や修正規則を適当に定義することにより、使用
禁止文字を含む文字列が、HDL記述に存在する文字列
と重複せず且つ使用禁止文字を含まない新しい文字列に
自動修正される。従って、例えば複数の設計者によりH
DL記述を作成した場合に命名規則に違反する箇所が多
数出現したとしても、設計者に負担をかけることなく、
その違反箇所の名前(文字列)を容易かつ確実に修正し
て命名規則に従ったHDL記述を得ることができる。
【0129】(8)制御情報テンプレートにおける修正
対象事項や修正規則を適当に定義することにより、HD
L記述を成す複数の階層において端子記述が不一致もし
くは不統一である箇所が、一致または統一した記述にな
るように自動修正される。従って、従来、フロントエン
ド(言語処理系)ではなくバックエンド(論理合成ツー
ルや検証ツール)でないと検出できなかった不適切な記
述箇所が早期に発見されて自動修正されるので、設計工
程での手戻りの発生を確実に抑止することができる。
【0130】(9)制御情報テンプレートにおける修正
対象事項や修正規則を適当に定義することにより、信号
代入記述の左辺と右辺との関係が誤っている箇所を正し
い関係に自動修正することができる。
【0131】(10)制御情報テンプレートにおける修
正対象事項や修正規則を適当に定義することにより、論
理合成ツールが合成することのできない箇所を自動的に
削除したり、その箇所における記述を論理合成ツールに
無視させるためのディレクティブを自動的に追加・記入
したりすることができる。これにより、HDL記述にお
いて、例えば、論理検証時に使用した論理合成不能な波
形観測用シミュレーション記述等がコメントアウトされ
ずに残っていたとしても、このような記述が論理合成ツ
ールにおいて問題を引き起こすことがなくなる。従っ
て、上述のような記述を設計者が手作業により削除する
といった作業が不要になり、設計者にかかる負担を大幅
に削減することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態としてのHDL自動修正装
置の構成を示すブロック図である。
【図2】本実施形態の動作を説明するための図である。
【図3】本実施形態の動作を説明するための図である。
【図4】本実施形態の動作を説明するための図である。
【図5】本実施形態の動作を説明するための図である。
【図6】本実施形態の動作を説明するための図である。
【図7】本実施形態の動作を説明するための図である。
【図8】本実施形態の動作を説明するための図である。
【図9】本実施形態の動作を説明するための図である。
【符号の説明】
1 HDL自動修正装置 2A 修正対象のHDL記述(初期HDL記述) 2B 修正後のHDL記述 11 HDL字句解析手段 12 HDL構文解析手段 13 構文的文法違反検出手段 14 構文的文法違反修正手段 15 意味論的文法違反検出手段 16 意味論的文法違反修正手段 17 修正対象事項検出手段 18 修正対象事項修正手段 19 HDL逆構文解析手段 20 コメント付与手段 21 トークンデータベース 22〜24 HDLデータベース 30 文法解析テンプレート 40 型変換テンプレート 51 言語変換規則テンプレート(制御情報テンプレー
ト) 51a 予約語テンプレート 51b 名前テンプレート 51c 名前生成ルール 51d 大文字小文字ルール 52 使用禁止文字情報テンプレート(制御情報テンプ
レート) 52a 使用禁止文字テンプレート 52b 名前生成ルール 53 階層情報テンプレート(制御情報テンプレート) 53a〜53d 修正規則 54 接続情報テンプレート(制御情報テンプレート) 55 非合成記述テンプレート(制御情報テンプレー
ト) 55a 修正規則
───────────────────────────────────────────────────── フロントページの続き (72)発明者 野口 弘 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B046 AA08 BA02 JA01 KA05

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ハードウェア記述言語(以下、HDLと
    いう)によって記述された回路設計情報(以下、HDL
    記述という)を自動的に修正する装置であって、 修正対象のHDL記述の字句解析を行なうHDL字句解
    析手段と、 該HDL字句解析手段による解析結果に基づいて該HD
    L記述の構文解析を行ない、該HDL記述を解析木形式
    の記述に変換するHDL構文解析手段と、 該HDL構文解析手段による解析結果に基づいて該HD
    L記述の意味論解析を行ない、該HDL記述における代
    入文の右辺と左辺の変数の型が不一致になっている部分
    を意味論的文法違反箇所として検出する意味論的文法違
    反検出手段と、 前記代入文の右辺の変数の型を左辺の変数の型に変換す
    る型変換関数を、型変換規則として定義する型変換テン
    プレートと、 該意味論的文法違反検出手段によって該意味論的文法違
    反箇所とみなされた代入文の右辺に対して、該型変換テ
    ンプレートに定義された該型変換関数を適用することに
    より、該意味論的文法違反箇所を正しい記述に修正する
    意味論的文法違反修正手段と、 該意味論的文法違反修正手段による修正を施された該H
    DL記述の逆構文解析を行ない、該HDL記述を前記解
    析木形式の記述から通常の記述形式に変換するHDL逆
    構文解析手段と、 該意味論的文法違反修正手段によって修正を施された箇
    所に、該修正に関するコメントを付与するコメント付与
    手段とをそなえて構成されたことを特徴とする、HDL
    自動修正装置。
  2. 【請求項2】 文法違反ではないが回路設計上考慮すべ
    き修正対象事項、および、該修正対象事項に対応する箇
    所の修正規則を定義する制御情報テンプレートと、 該HDL構文解析手段による解析結果に基づき、該HD
    L記述において、該修正対象事項に対応する箇所を検出
    する修正対象事項検出手段と、 該修正対象事項検出手段によって検出された箇所を、該
    制御情報テンプレートに定義された該修正規則に従って
    修正する修正対象事項修正手段とをさらにそなえ、 該HDL逆構文解析手段が、該意味論的文法違反修正手
    段および該修正対象事項修正手段による修正を施された
    該HDL記述の逆構文解析を行なうとともに、該コメン
    ト付与手段が、該意味論的文法違反修正手段および該修
    正対象事項修正手段によって修正を施された箇所に、該
    コメントを付与することを特徴とする、請求項1記載の
    HDL自動修正装置。
  3. 【請求項3】 ハードウェア記述言語(以下、HDLと
    いう)によって記述された回路設計情報(以下、HDL
    記述という)を自動的に修正する装置であって、 修正対象のHDL記述の字句解析を行なうHDL字句解
    析手段と、 該HDL字句解析手段による解析結果に基づいて該HD
    L記述の構文解析を行ない、該HDL記述を解析木形式
    の記述に変換するHDL構文解析手段と、 文法違反ではないが回路設計上考慮すべき修正対象事
    項、および、該修正対象事項に対応する箇所の修正規則
    を定義する制御情報テンプレートと、 該HDL構文解析手段による解析結果に基づき、該HD
    L記述において、該修正対象事項に対応する箇所を検出
    する修正対象事項検出手段と、 該修正対象事項検出手段によって検出された箇所を、該
    制御情報テンプレートに定義された該修正規則に従って
    修正する修正対象事項修正手段と、 該修正対象事項修正手段による修正を施された該HDL
    記述の逆構文解析を行ない、該HDL記述を前記解析木
    形式の記述から通常の記述形式に変換するHDL逆構文
    解析手段と、 該修正対象事項修正手段によって修正を施された箇所
    に、該修正に関するコメントを付与するコメント付与手
    段とをそなえて構成されたことを特徴とする、HDL自
    動修正装置。
  4. 【請求項4】 ハードウェア記述言語(以下、HDLと
    いう)によって記述された回路設計情報(以下、HDL
    記述という)を、コンピュータに自動修正させるための
    HDL自動修正プログラムであって、 修正対象のHDL記述の字句解析を行なうHDL字句解
    析手段、 該HDL字句解析手段による解析結果に基づいて該HD
    L記述の構文解析を行ない、該HDL記述を解析木形式
    の記述に変換するHDL構文解析手段、 該HDL構文解析手段による解析結果に基づいて該HD
    L記述の意味論解析を行ない、該HDL記述における代
    入文の右辺と左辺の変数の型が不一致になっている部分
    を意味論的文法違反箇所として検出する意味論的文法違
    反検出手段、 該意味論的文法違反検出手段によって該意味論的文法違
    反箇所とみなされた代入文の右辺に対して、前記代入文
    の右辺の変数の型を左辺の変数の型に変換する型変換関
    数を適用することにより、該意味論的文法違反箇所を正
    しい記述に修正する意味論的文法違反修正手段、 該意味論的文法違反修正手段による修正を施された該H
    DL記述の逆構文解析を行ない、該HDL記述を前記解
    析木形式の記述から通常の記述形式に変換するHDL逆
    構文解析手段、および、 該意味論的文法違反修正手段によって修正を施された箇
    所に、該修正に関するコメントを付与するコメント付与
    手段として、該コンピュータを機能させることを特徴と
    する、HDL自動修正プログラム。
  5. 【請求項5】 ハードウェア記述言語(以下、HDLと
    いう)によって記述された回路設計情報(以下、HDL
    記述という)を、コンピュータに自動修正させるための
    HDL自動修正プログラムを記録したコンピュータ読取
    可能な記録媒体であって、 該HDL自動修正プログラムが、 修正対象のHDL記述の字句解析を行なうHDL字句解
    析手段、 該HDL字句解析手段による解析結果に基づいて該HD
    L記述の構文解析を行ない、該HDL記述を解析木形式
    の記述に変換するHDL構文解析手段、 該HDL構文解析手段による解析結果に基づいて該HD
    L記述の意味論解析を行ない、該HDL記述における代
    入文の右辺と左辺の変数の型が不一致になっている部分
    を意味論的文法違反箇所として検出する意味論的文法違
    反検出手段、 該意味論的文法違反検出手段によって該意味論的文法違
    反箇所とみなされた代入文の右辺に対して、前記代入文
    の右辺の変数の型を左辺の変数の型に変換する型変換関
    数を適用することにより、該意味論的文法違反箇所を正
    しい記述に修正する意味論的文法違反修正手段、 該意味論的文法違反修正手段による修正を施された該H
    DL記述の逆構文解析を行ない、該HDL記述を前記解
    析木形式の記述から通常の記述形式に変換するHDL逆
    構文解析手段、および、 該意味論的文法違反修正手段によって修正を施された箇
    所に、該修正に関するコメントを付与するコメント付与
    手段として、該コンピュータを機能させることを特徴と
    する、HDL自動修正プログラムを記録したコンピュー
    タ読取可能な記録媒体。
JP2001189337A 2001-06-22 2001-06-22 Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体 Withdrawn JP2003006255A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001189337A JP2003006255A (ja) 2001-06-22 2001-06-22 Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体
US09/986,818 US20030033595A1 (en) 2001-06-22 2001-11-13 Automated HDL modifying apparatus and computer-readable recording medium in which program for automatically modifying HDL is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001189337A JP2003006255A (ja) 2001-06-22 2001-06-22 Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2003006255A true JP2003006255A (ja) 2003-01-10

Family

ID=19028279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001189337A Withdrawn JP2003006255A (ja) 2001-06-22 2001-06-22 Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体

Country Status (2)

Country Link
US (1) US20030033595A1 (ja)
JP (1) JP2003006255A (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206730B2 (en) * 2001-04-11 2007-04-17 Oleandr Pochayevets HDL preprocessor
US7062427B2 (en) * 2001-12-27 2006-06-13 John Stephen Walther Batch editor for netlists described in a hardware description language
JP4183182B2 (ja) * 2003-08-22 2008-11-19 株式会社リコー 設計支援装置および設計支援方法
JP4652090B2 (ja) * 2005-03-15 2011-03-16 富士通株式会社 事象通知管理プログラム、事象通知管理装置及び事象通知管理方法
US7363610B2 (en) * 2005-06-21 2008-04-22 Nvidia Corporation Building integrated circuits using a common database
US7483823B2 (en) * 2005-06-21 2009-01-27 Nvidia Corporation Building integrated circuits using logical units
US20070168741A1 (en) * 2005-11-17 2007-07-19 International Business Machines Corporation Method, system and program product for facilitating debugging of simulation results obtained for an optimized simulation model of a device design having hierarchically-connected components
JP4679442B2 (ja) * 2006-06-09 2011-04-27 Necエンジニアリング株式会社 論理合成装置
US8856700B1 (en) * 2007-03-17 2014-10-07 Cadence Design Systems, Inc. Methods, systems, and apparatus for reliability synthesis
US7587386B2 (en) * 2007-05-14 2009-09-08 Sap Ag Translating case-sensitive technical identfiers
EP2175387A1 (en) * 2008-10-10 2010-04-14 Sigasi B.V.B.A. Device and method for refactoring hardware code
US8667434B1 (en) * 2009-06-04 2014-03-04 Calypto Design Systems, Inc. System, method, and computer program product for altering a hardware description based on an instruction file
TW201301135A (zh) * 2011-06-16 2013-01-01 Hon Hai Prec Ind Co Ltd 零件資料轉檔系統及方法
US9231898B2 (en) 2013-02-08 2016-01-05 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US9298703B2 (en) 2013-02-08 2016-03-29 Machine Zone, Inc. Systems and methods for incentivizing user feedback for translation processing
US8996352B2 (en) 2013-02-08 2015-03-31 Machine Zone, Inc. Systems and methods for correcting translations in multi-user multi-lingual communications
US10650103B2 (en) 2013-02-08 2020-05-12 Mz Ip Holdings, Llc Systems and methods for incentivizing user feedback for translation processing
US9600473B2 (en) 2013-02-08 2017-03-21 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US9031829B2 (en) 2013-02-08 2015-05-12 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US8954904B1 (en) 2013-04-30 2015-02-10 Jasper Design Automation, Inc. Veryifing low power functionality through RTL transformation
US9104824B1 (en) 2013-04-30 2015-08-11 Jasper Design Automation, Inc. Power aware retention flop list analysis and modification
US9141741B1 (en) * 2013-10-29 2015-09-22 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing mixed-signal electronic circuit designs with power data in standardized power formats
KR101623174B1 (ko) * 2014-08-27 2016-05-20 주식회사 파수닷컴 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
US10162811B2 (en) 2014-10-17 2018-12-25 Mz Ip Holdings, Llc Systems and methods for language detection
US10765956B2 (en) * 2016-01-07 2020-09-08 Machine Zone Inc. Named entity recognition on chat data
CN107229616B (zh) * 2016-03-25 2020-10-16 阿里巴巴集团控股有限公司 语言识别方法、装置及系统
US10769387B2 (en) 2017-09-21 2020-09-08 Mz Ip Holdings, Llc System and method for translating chat messages
CN109144848B (zh) * 2018-06-30 2021-06-29 南京理工大学 一种Verilog HDL代码白盒测试辅助平台及其工作过程
US11907634B2 (en) 2021-09-01 2024-02-20 International Business Machines Corporation Automating addition of power supply rails, fences, and level translators to a modular circuit design
US20230072735A1 (en) * 2021-09-07 2023-03-09 International Business Machines Corporation Refinement of an integrated circuit design
US11663381B2 (en) * 2021-09-07 2023-05-30 International Business Machines Corporation Clock mapping in an integrated circuit design

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488714A (en) * 1990-05-23 1996-01-30 Unisys Corporation Computer program analyzer for adapting computer programs to different architectures
US5905892A (en) * 1996-04-01 1999-05-18 Sun Microsystems, Inc. Error correcting compiler
US6453464B1 (en) * 1998-09-03 2002-09-17 Legacyj. Corp., Inc. Method and apparatus for converting COBOL to Java
JP3430252B2 (ja) * 2000-01-24 2003-07-28 独立行政法人産業技術総合研究所 ソースコード変換方法、ソースコード変換プログラムを記録した記録媒体及びソースコード変換装置
US6591403B1 (en) * 2000-10-02 2003-07-08 Hewlett-Packard Development Company, L.P. System and method for specifying hardware description language assertions targeting a diverse set of verification tools

Also Published As

Publication number Publication date
US20030033595A1 (en) 2003-02-13

Similar Documents

Publication Publication Date Title
JP2003006255A (ja) Hdl自動修正装置およびhdl自動修正プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体
Bhatnagar Advanced ASIC Chip Synthesis: Using Synopsys® Design CompilerTM Physical CompilerTM and PrimeTime®
US6026226A (en) Local compilation in context within a design hierarchy
US5870309A (en) HDL design entry with annotated timing
US8578322B2 (en) Method and apparatus for AMS simulation of integrated circuit design
US7062427B2 (en) Batch editor for netlists described in a hardware description language
US6148436A (en) System and method for automatic generation of gate-level descriptions from table-based descriptions for electronic design automation
US20050198611A1 (en) Method and apparatus for decomposing and verifying configurable hardware
US7231627B2 (en) Merging a hardware design language source file with a separate assertion file
US6553514B1 (en) Digital circuit verification
US6954915B2 (en) System and methods for pre-artwork signal-timing verification of an integrated circuit design
US7769569B2 (en) Method and system for designing a structural level description of an electronic circuit
US5727187A (en) Method of using logical names in post-synthesis electronic design automation systems
JP2002149730A (ja) 回路設計装置,回路設計方法及びタイミング配分装置
US7617085B2 (en) Program product supporting specification of signals for simulation result viewing
US5761079A (en) Engineering change management system employing a smart editor
US7340697B2 (en) Integrated computer-aided circuit design kit facilitating verification of designs across different process technologies
US6836874B2 (en) Systems and methods for time-budgeting a complex hierarchical integrated circuit
US7979262B1 (en) Method for verifying connectivity of electrical circuit components
US6405351B1 (en) System for verifying leaf-cell circuit properties
US6272665B1 (en) Method and tool for automatically generating engineering change order
US20020066068A1 (en) Printed circuit board design, testing, and manufacturing process
US6618840B2 (en) Method and system for analyzing a VLSI circuit design
JP3941336B2 (ja) 論理回路検証装置
JP2006190085A (ja) デジタル回路のモデリング方法及び設計方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902