SystemVerilogの基本的な構文の要約(下)

解決するために2018 IC設計会社Tの質問 - (検証方向)
1、ください簡単:固定幅、動的配列、連想配列、それらのそれぞれの特性にキューのデータ型の配列
分析:
(1)固定幅の配列:幅がコンパイル時に決定されるように宣言時に、その幅が、指定します。
(2)動的配列:スペースを割り当てる、またはメモリの最小量は、シミュレーションに使用することができるように、シミュレーションの幅を調整することができます。スペースを割り当てるために新しい[]演算子を使って添字がnullの場合は声明、[]、。
(3)連想配列:SystemVerilogのスパース行列の要素を保持する連想配列を提供します。一般的に空間を節約することができるように、非常に大きなアドレス空間は、唯一実際に書き込まれたSystemVerilogの要素を割り当て、アクセスされたときに、非常に大きなスペースをアドレス指定するために使用されます。
(4)キュー:リストと配列の利点を組み合わせます。動的配列は新しい配列とすべての要素のコピーを割り当てる必要があるため、動的配列は、はるかに小さいよりも、このような操作で、正面の位置でパフォーマンスの低下を任意のキュー要素を追加または削除することができます。キューは、インデックスによって任意の要素へのアクセスを有効にすることができます。
インターフェイスとクロッキングブロックTB使用することの利点の説明
分析を:
(1)設計は、多くの場合、信号ポート数百、ポート信号を宣言するために必要なページ数を含んでいるので。これらのすべての接続は、エラーを起こしやすいです。信号は、いくつかの設計レベルを流れることができるので、何度も何度も宣言してインターネットしなければならないあなたが新しい信号を追加したい場合は、すべての最悪のは、それが複数のファイルで定義され、接続する必要があります。インターフェースを介して、あればインターフェイスポートと、他のモジュールを共有することができ、信号の中で宣言されるように、2つ以上のブロック間の接続、同期、あるいは通信を含むインタフェースを、これらの問題を解決することができます。
(2)ブロックを計時使用し、試験プラットフォーム信号と相互作用する時に正しい時点で保証することができるだけでなく、検証と同期したサンプリングクロックとして、クロック・ブロックは、クロックドメインに対応することができます。
図3に示すように、次のコードを、xの各値を取る確率は数ですか?
X DIST {0:= 1、 [1:3] = 1};
分析:
0、1 1/4の確率のX。
4、SV OOPプログラミングは、仮想メソッド(仮想関数/仮想タスクに必要なものの下で使用する必要があります )
:分析
あなたがオブジェクトのメソッド(目的球またはタスク)を呼び出す必要がある場合には、実際のオブジェクトの種類によって異なることがなく、メソッドハンドルを選択することをメソッドを呼び出すために入力するには、仮想メソッドとして宣言されたクラスメソッドでなければなりません。
5、達成するための3つの手順を含め、工場?工場出荷時に何か良いを使用しますか?
解析:
ファクトリーの実装は3つのステップを含む
(1)登録:クラス定義を、そのタイプに登録する必要があります。
(2)オブジェクトの例:オブジェクトコンポーネントまたはオブジェクトの種類は、静的メソッドを使用してインスタンス化するインスタンス化する()新しいを使用していない、()を作成します。すなわち、以下の実施例は、形式を使用します
; OBJECT_NAME = CLASS_TYPE TYPE_ID :: ::作成(「OBJECT_NAME」、これを)
(3)オーバーロードオーバーライド:必要な場合、元のオブジェクトの種類または名前に応じてオーバーライドするオーバーライド。
利点工場は使用モジュラー、再利用可能なテスト・プラットフォームを作成するのは簡単です。過負荷クラスファクトリことながら、多重化が容易。
6、あなたも複数のimpportに接続できるかどうかを分析ポート?
分析:
できる
最初、デフォルトでは、分析ポート(分析輸出)は、複数のIMPを接続することができますつまり、分析ポート(分析エクスポート)とIMPとの間の通信は、対多通信の一種であり、そしてIMPとの通信EXPORTポートは一つの通信の一つです。放送のような分析ポート(分析エクスポート)。
以前に示されているが第二に、入れているPORTおよびEXPORTなど、いずれかのPORT put_port、どちらかget_port、どちらかtransport_port、、、搬送動作を取得し、両方が3することはできませんが、3つのすべての後に、そこにあります動作モード。しかし、分析ポート(分析輸出)のために、それだけで一つの動作の書き込みです。彼はそれとは何の関係もない、物事の残りの部分についての放送手段を記述します。
第三に、PORTおよびEXPORTとして、ブロックしているとの区別を非ブロック。プット対応、搬送動作もブロックし、非ブロックに分けられます。しかし、分析ポートと分析輸出のため、ブロッキングとノンブロッキングの概念はありません。別のポートに対応して、それ自体が接続を待つことなく、放送されているため。だから、ブロッキングと非ブロッキングがありません。
スレーブVIPデータフロー7.説明
解決:
要求にドライバシーケンサーアプリケーションは次いで、励起信号は、その後、体内生成されたシーケンスドライバを介してシーケンサに送信され、発生し、ドライバへの励起信号は、DUVのタイミング信号を駆動することができます。
8.runphaseとmainphaseが同時に存在することはできませんか?なぜ?
分析:
、共存することができ
UVMと分割は実行順序の面で、小さなこれら12のそれぞれの相相の12の小さなrun_phaseになったとまったく同じにrun_phase、それは同時に実行、ボトムアップのスタートです。
これらの12の動的相ランニングとrun_phaseとの関係はどのようなものです。このセクションの図から分かるように、位相の間、これらの12の動的動作をrun_phase関係を結ばされ、これはまた、彼らはまた、それを並置間で実行されることを意味しないのですか?答えが決定されます。
9. APBによってモジュールのレジスタインタフェースを変更するために何をすべきかのレジスタモデルを使用して、AXILiteになりますか?
分析:
読み書きチャネルデータにAXI-LITE相対がAPBの観点で分離されているので、操作の完了に至るまで別々の制御及びデータチャネルは、フィールドのプロパティから次の動作、パイプラインのフィールドを発行する必要があるかもしれません、およびRALは、対応するアダプタを作成、属性、および3つの修飾されたレジスタファイルを登録し、
信号を追加するように:
(1)ARVALID、ARADDR、ARREADY信号を含む、アドレスチャネルを読み取る
(2)RVALID、RDATAを含む、データ・チャネルを読み取ります、RREADY、RRESP信号;
(3)AWVALID、AWADDR、AWREADY信号を含む書き込みアドレスチャネル、;
WVALID、WDATA、WSTRB、WREADY信号を含む、データチャネルを書き込む(4)、
(5)ライト応答チャネル、BVALID、BRESP含みます、 BREADY信号;
(6)チャネルシステムであって、ACLK、ARESETN信号。
10、実行時に使用するどのようなパラメータ、マクロ定義を使用しているもの?
分析:
Verilogの
1)マクロ。
グローバルスコープ、タイプまたはビットセグメントを定義するために使用することができます。あなたは地元の定数が必要な場合、それは競合が発生することがあります。
2)パラメータ
単一のモジュールに限定範囲
12:CPUチップの主な役割は何を持っていますか?
分析:
CPUがノードである中央プロセッサ、ソフトウェアとハードウェアの相互作用と呼ばれる回路がCコードを書くことにより、ハードウェアの制御を可能にする、この中のCPUは、Cコードでは、特定の制御回路を得るために、マシンコードにコンパイルされ、そして論理演算。例えば:、読み出しを完了するか、レジスタSOCチップに書き込むために、Cコードでは、チップ、制御バス上のバス・マスタとして一般にCPU、読み出し及びバスへの書き込み動作を、次にバス上のスレーブを制御します制御モジュールを記述します。
13:配列をやり取りする方法の腕とUVMに実行するCプログラム。
解析:
SystemVerilogのは、DPI、およびC / C ++言語を介して相互作用することができます。インタフェース、完全な相互作用の内側にDPIを呼び出すことによって、UVMの順序で。アームにおけるc手順は、ハードウェアで、バイナリコードの実装である、DUV部が属し、内部のDUV UVM相互作用、C取得プログラム(実際バイナリプログラム)の実行の中間結果に相当します。

おすすめ

転載: www.cnblogs.com/zhangxianhe/p/11797645.html