8

VHDLからのビット定義だけでなくレジスタオフセット用の適切な#defineを含むCヘッダーファイルの生成を支援するために利用できる優れた既存のソフトウェアツールはありますか?そのようなツールが存在する場合、それらにVHDLにどのような制限を課し、エクスポートする必要があるものをどのように指定しますか?

これまでのところ、これらのツールを見つけましたが、私が探しているものとは異なります。

これらのツールに基づいて、適切なワークフローがVHDL(おそらくコメントに追加のタグを含む)からCに直接移動しようとするのではなく、CとVHDLの両方を生成することであるかどうかにも興味があります。

4

7 に答える 7

5

あなたはdoxygenを見ることができます、それはVHDL言語をサポートします、そして中間ファイルを使うことによってあなたは多かれ少なかれ簡単に情報を抽出することができるかもしれません。副産物は、RTLコードのドキュメントになります。

もう1つのオプションは、Yacc / Lex定義からCパーサーを構築することです。ここで、いくつかのパーサーを見つけることができます。そこから、VHDLを解析し、情報を抽出し(レジスターの定義を取得する方法を決定する必要があります)、Cヘッダーファイルを生成できます。おそらくかなり複雑です。

しかし、私があなたなら、実際には別の方法でレジスタオフセットとフィールドを別のファイル(たとえば、XML)で定義し、CヘッダーとVHDLパッケージの両方を生成する小さなスクリプトを作成します。これにより、多くの時間とフローの観点からより堅牢になります。

これは、ドキュメントの作成にも役立ちます。

もちろん、makefileを使用して、またはシミュレーション/合成の前にデータベースを準備するスクリプトを使用して、プロセスを自動化することもできます。

于 2009-10-18T20:07:19.447 に答える
3

私はマーティに同意します。この種のことを行うための社内スクリプトを作成することは楽しいですが、長期的には問題になる可能性があります。

ドキュメント内のレジスタを指定し、Cヘッダー、VHDL、Verilog、OVM、VMM、IP-XACT、HTML、XML、SystemRDL、PDFなどを生成できるドキュメントエディタのプラグインとして実装されるIDesignSpecと呼ばれるツールを作成しました。 。 それから。

TCLAPIを使用してカスタム出力を生成できます。XML、IP-XACT、SystemRDLなどのさまざまな入力形式で読み取ることができます。

このアプローチの利点は、1つの仕様があり、すべてが自動的に同期されることです。

現在サポートされているエディターは、MS Word 2003および2007、OpenOffice、StarOffice、FrameMakerです。

詳細については、http://www.agnisys.comをご覧ください。

利用可能なソリューションの完全なリストは次のとおりです。

会社名:商用ツール(ソリューション提供)

  1. Agnisys:IDesignSpec(Word / Excel / OpenOffice用プラグイン、およびLinuxとWindowsのコマンドラインインターフェイス)
  2. Atrenta:1Team-Genesis-Registers(デスクトップアプリケーション)->Synopsysによって取得されました。ツールは利用できません。
  3. Duolog:BitWise(Eclipseベースのアプリケーション)-> ARMによって取得された、ツールは引き続き使用できます。
  4. PDTi:SpectaReg(Webベースのアプリケーション)->ツールは使用できなくなりました。
  5. Semifore:CSRCompiler(コマンドラインインターフェイス)

無料/オープンソースツール

  1. ベリプール:VRegs
  2. ParadigmWorks:Spec2Reg
于 2010-07-14T11:14:48.453 に答える
2

それはあなたを悩ませていましたが、最終的には正しい方向にあなたを送っていると思います。また、ワークフローを少し変更することを検討する必要があるという点で、RedGlyphに同意します。

制御レジスタ情報用に1つの「マスタードキュメント」を用意し、これからすべてを自動的に生成することを考えましたか?RTL、テストベンチコード、ドライバーソフトウェアヘッダーおよびドキュメント。

私は、制御情報が1つのマスタースプレッドシートに保持され、必要なすべてのものがこれから生成されるプロジェクトに取り組んできました。チップの1つのファミリで、スプレッドシートからエクスポートされたCSVファイルからこのようなものを生成するためのPythonスクリプトをいくつか作成しました。別のプロジェクトでは、スプレッドシートに、必要なRTLファイルなどを生成するためのマクロが含まれていました。

社内のスクリプトを作成することは、スクリプトを完全に制御し、スクリプトがどのように機能するかを詳細に理解しているため、すべて問題なく機能します。ただし、これらのスクリプトをサポートし、新しいことを行うためにスクリプトを更新するために時間を費やす必要があることを忘れないでください。そして、これらのスクリプトを書いた人が新しい仕事に就くことを決心した場合、どうなるか考えてみてください。スクリプトを変更するのに十分な知識を持っている人はいますか?上記の理由により、サードパーティのツールの購入を検討しています。

ドキュメントとヘッダーファイルがRTLからバックポートされたプロジェクトにも取り組んできました。これは悪夢でした。ドキュメントは通常、設計に遅れをとっており、多くの場合、コントロールフィールドは「欠落します」。私はそのようなプロジェクトに再び関与したくないです;)

于 2009-10-19T21:55:37.257 に答える
2

私たちの設計グループは、SystemRDLを使用して、ProgrammableSystem-on-Chipのレジスタ定義をキャプチャします。Denali Blueprintを使用して、さまざまなターゲット用にカスタマイズされたスクリプトを使用します。レジスタマップ、PDFドキュメント、検証、Cヘッダーファイルなどを生成します。

RTLソースの生成にはまだ使用していません。

http://www.spiritconsortium.org/releases/SystemRDL
http://www.google.com/search?q=SystemRDL

于 2009-12-16T09:44:09.153 に答える
1

答えは少し遅れるかもしれませんが、無料のnetppライブラリといくつかの変更されたXSLスタイルシートを使用して、1つのXMLソースからドキュメント、VHDL、およびCソースを生成します。VHDLおよびCライブラリがデータを交換してネットワーク対応の「仮想FPGA」を作成できるようにするVHDLシミュレータ拡張機能もあります。これはghdlexと呼ばれ、どこにあるかは正確には思い出せませんが、http: //section5.chWebサイトのnetppダウンロードエリアのどこかにあります。使用するのは少し難しいですが、まあ、それは無料です。

于 2013-02-03T15:03:20.623 に答える
0

共有情報の本当のソースはあなたのオリジナルデザインなので、私はオリジナルデザインを処理しやすい形で入力します。ここにいくつかのアイデアがあります...


  1. YAMLを使用します。(または、ため息、XML、または設計の非常に単純なDSLです。)元のデータを定義します。スクリプトを記述して、VHDLおよびCとしてダンプします。すべてのスクリプト言語はYAMLをサポートしており、シェルツールでも解析できるように設計されています。簡体字VHDLまたはCを使用して、単純なテキスト変換を介して対応するCまたはVHDLに変換するスクリプトを作成することもできます。

  2. すべてCプリプロセッサで実行します。レジスタレイアウトを指定する一連のマクロ呼び出しを作成できます。次に、定義マクロの2つの異なるバージョンを定義する1#ifつまたはおそらく2つの別個の.hファイルを作成できます。1つはVHDLに展開され、もう1つは同じ定義をCに展開します。

于 2009-10-18T20:38:42.993 に答える
0

Spectaregを使用すると、レジスタを1か所で指定し、さまざまな環境(VHDL、C、Verilogなど)用に複数の出力を作成できます。

于 2013-02-05T14:14:23.883 に答える