4
SystemCとHDL
私は現在、既存の命令セットのプロセッサを実装する大学のプロジェクトに参加しています。プロジェクトの終わりまでに、このデザインを合成してFPGAで実行できるようになるはずです。これまでのところすべてが順調に進んでおり、数日前にVerilog HDLでデザインをインプリメントし始め、非常にシンプルなバージョンが機能しました。さて、問題:私は何年もハードウェア設計に携わってきた何人かの人々と連絡を取り、さらに先に進む前に、実装にSystemCの使用に移るべきだと提案しました。これが私の考えだったので、今、私は非常に混乱しました: Verilog-> HDL言語としては、ハードウェアデザインをターゲットにしています。構造的および動作的なVerilogのようないくつかのレベルの抽象化がありますが、デザインのRTLを指定する非常にきちんとした形式です。選択したFPGAに応じて、さまざまなツールを使用して確実に合成できます(私の場合、ザイリンクスVivado 2014およびZynqボードを使用しています)。欠点としては、プレーンなVerilogは検証に十分な抽象化を提供していないため、System Verilogのようなものがあります。 SystemC->これは、C ++で時間の概念を効果的に導入し、イベント駆動型シミュレーションを実行できるようにするC ++クラスライブラリです。明らかに、これはどのHDLよりもはるかに高レベルであり、ここにあるものははるかに迅速に実装できます。これにより、検証やシミュレーターの実装などに非常に適したツールになり、実際に製造する前にドライバーがチップ用のドライバーやモノの設計を開始できるようになります。どうやら、合成可能なSystemCのサブセットもあり(ザイリンクスVivadoでもこれが可能だと思います)、場合によっては、SystemCを使用して、より高度な抽象化が便利な非常に大規模なシステムを設計できます。 だから、私の質問は: systemCとVerilog(または必要に応じてHDL言語)の概念は正しいですか? SystemCとVerilogはいつ使用する必要がありますか? Verilogでも、基本的にコードの合成方法に関する制約を大幅に減らしているため、多くの動作コードを使用すると、実装の重要なセクションで少し問題が発生する可能性があると言われています。より高いレベルの抽象化では、これは問題ではないでしょうか?つまり、systemCを使用すると、非常に遅く、電力を消費し、大きなデザインになる可能性があります... SystemCを提案した人は、私が「アーキテクチャの調査」をしているように見えると述べ、それが彼がVerilogを好む理由です。どういう意味ですか?アーキテクチャは通常、命令セットとマイクロアーキテクチャを参照し、命令セットの実装を参照するという印象を受けました(マイクロアーキテクチャは、命令を実行する実際のRTLです)。それで、アーキテクチャの調査は、命令セットがどれほど実行可能かを確認するためにプロセッサを実装していると彼が考えていることを意味するのでしょうか? 彼は、SystemCを使用することについての議論は、HDLよりも高いレベルの抽象化であるため、はるかに簡単であると述べました。彼はまた、デザインのタイミングを正しくする方が簡単だと主張しました。これはどの程度本当ですか? 助けていただければ幸いです。私は少し混乱しており、これについてオンラインで明確な情報を得るのが難しいと感じています。ありがとう!