5

Java やその他の言語に固有ではない依存関係管理ツールを探しています。

ハードウェア記述言語である SystemVerilog を使用して、スタンドアロン モジュールを作成します。これらのモジュールのリリースには、さまざまなマイルストーンでタグを付けます。高レベルの設計では、Subversion タグを使用して他のモジュールを頻繁に取り込みます。

モジュールをチェックアウトすると、その依存関係も取得できるように、Subversion 外部を使用して物事を自動化しようとしました。しかし、システム レベルに到達するまでには、入れ子になった外部が非常に多いため、svn update を実行するのに 1 時間かかります。明らかに、そのアプローチは機能していません。

基本的には、「私のモジュールは、このバージョンのモジュール A、このバージョンのモジュール B、およびこのバージョンのモジュール C に依存している」と言えます。このツールは、依存関係をチェックアウトし、依存関係の依存関係をチェックアウトし、競合する依存関係 (同じモジュールの 2 つのバージョンなど) がないことを確認する作業を行います。

任意の言語と Subversion でうまく動作するツールはありますか?

4

2 に答える 2

0

2 つの場所でソース ファイルを検索するツール フローを作成したことがあります。まず、ローカル ディレクトリを調べました。次に、共有された読み取り専用ディレクトリである「マスター」領域を調べ、すべてのコードがチェックアウトされて全員が使用できるようにしました。コードを変更する必要がある場合は、必要なモジュールのみをチェックアウトしました。次に、スクリプトはローカル ワークスペースからそのモジュールを取得します。マスター領域から読み取った残りのコード。これはすべてカスタム スクリプトであり、市販のツールは使用しませんでしたが、それほど難しくはありませんでした。

これが機能するようになれば、さらに進んで、マスター エリア コー​​ドを共有マスター ライブラリにコンパイルできる可能性があります。これにより、コンパイル時間が大幅に短縮されます。

于 2012-10-11T10:48:21.357 に答える
0

あなたが説明している依存関係の追跡の苦痛を感じていません。つまり、あなたの問題を完全には理解していない可能性があります。

1 つの方法は、モジュールのすべてのバージョンを同じライブラリ内の個別のファイルに保持することです。たとえばadder_0_0.sv、全加算器の HDL モジュールの最初のバージョンとして、 というモジュールを記述することができますadder_0adder_0_1.svモジュールにバグが見つかった場合は、説明とも呼ばれるファイルを作成できますadder_0adder_0_1.svの代わりに使えるようになりますadder_0_0.sv。ポートを追加または削除するか、ポートのセマンティクスを変更してインターフェースを変更する場合は、adder_1_0.svというモジュールを記述する というファイルを作成できますadder_1adder_0とを同じ意味で使用adder_1 することはできません。

このアプローチの背後にある哲学は、これらのファイルはすべて一度だけ書き込むということです。ライブラリに新しいファイルを追加し続けるだけです。このライブラリを使用するプロジェクトは、ライブラリ全体をチェックアウトし、必要なファイルを使用するだけです。依存関係の管理は、使用するシミュレーションまたは合成ツールに関係なく、適切なプロジェクト記述ファイルに適切なファイル名を配置するのと同じくらい複雑です。特別な依存関係管理ツールは必要ありません。個別のライブラリが少ないほど、管理が容易になります。

于 2012-03-06T08:59:28.693 に答える