004. uvm_code_helper.rb
3rd release版説明
UVMソースコード記述のヘルパーツールを暫定リリースします。コードはこちらから探してください。
一応出力コードを張り付けて検証はしています(抜けがなければいいのですが)。
- 概要
- create instance/sequence選択時、indentの調整モードを入れました(idt_swを書き換えてください)(3rd)
- phasingコードのひな形生成(2nd)
- コンポーネントの生成記述を標準出力へ出します
- 複数行(1行1インスタンス)をサポートしています
- 一応、パラメタライズもサポートしています。周辺のスペースの有無もカバーしているつもり…
- 使い方
- コードの最初の方に、idtという変数があります。ここに、インデント用charを入れる(初期値はスペース4つ)と、ひな形生成はこれに従ってインデントしたソースが出ます。create instance/sequenceの方は入れ忘れてリリースしてしまったので、後日修正するつもりです…
- ツールを起動すると、プロンプトが出ます。
- 最初の選択肢で、
- phasing template
- create instance …①
- のどちらかを選択します。
- 最初の選択肢で、
- ①の選択後
- 文字列入力待ちなので、ご自分のソースコードのUVMクラスのインスタンス記述を貼り付けます
- 最後に「e (enter)」すると、入力を完了します
- インスタンス生成なのか、シーケンス生成なのか聞いてきます
が、現在はインスタンス生成しか組み込んでいません - シーケンスのインスタンスは、UVMクラスライブラリを参考に、2パタン出力します。都合のいい方を使ってください
- 仕様
- idt変数は、phasingひな形生成時のみ適用します
- idt_sw変数は、create instance/sequence機能選択時のみ適用します。trueだと
- aaa = xxx
- bbbbbb = yyy
- のように、=を揃えます。falseだと、
- aaa = xxx
- bbbbbb = yyy
- となります。
実行例
太字:ツールからの問い合わせ
青字:ユーザー入力(例はubusサンプルより)
白黒反転:ツール出力(これをbuild_phaseに貼り付ける)
uvm_code_helper > Please select mode
1. phasing template
2. create instance/sequence
2
uvm_code_helper > Please input UVM instance line(s), then 'e' + enter.
ubus_master_driver driver;
uvm_sequencer#(ubus_transfer) sequencer;
ubus_master_monitor monitor;
e
uvm_code_helper > What kind of code do you want to generate ?
1. create instance
2. create sequence
uvm_code_helper > 1
driver = ubus_master_driver::type_id::create("driver", this);
sequencer = uvm_sequencer#(ubus_transfer)::type_id::create("sequencer", this);
monitor = ubus_master_monitor::type_id::create("monitor", this);