デジタルICの一般的な筆記試験と面接の質問

デジタルICの検証を書かれており、デジタルIC設計は、多くの場合、ペンの質問に行われているので、デジタル設計経験の学生に比べ、学生が書かれた部分の検証を行うことは、まだ大きな欠点であるが、それは取り返しのつかないではありません。ペンの質問は、一般的に焦点を当てたが、最も一般的なテストに関連する最も一般的に使用される方法やアイデアに関連する基本的なデジタルIC設計は、以下のとおりです。

クロックドメインを横切って(1)信号が同期。最も便利な単一ビットレジスタの同期のためのシングルビットとマルチビット、2段階の性質を含みます。マルチビットの場合は、非同期FIFOは、多くの場合、調査し、ハンドシェーク方式。概念を理解し、準安定準安定方法を避けるために。

(2)それは準安定状態になると、私は、セットアップ時間とホールド時間を言わなければなりません。クロック制約を分析するための2つのクロック制約や方法を習得してください。クリティカルパスを見つける四のクリアするための方法(出力への入力、レジスタへの入力、レジスタ・ツー・レジスタ、レジスタへの出力)、および。これは、最大動作周波数を計算します。

(3)分析および修復セットアップ時間の検証(動作電圧を向上させるために、クロック周波数、解像度、又は論理最適化の組み合わせを減少)及び(修復がより困難挿入バッファ)保持時間検証

Dフリップフロップ、カウンタ、分周器(分割奇数倍、周波数分割の偶数倍、フラクショナル周波数(例えば、1.5))、FIFO同期、FIFO非同期、配列:(4)回路構成は、一般的になど、Verilogの記述することができます。検出器(FSM実装)

(5)擬似コードでの説明とのVerilogコード、又は

(6)このようなクロック信号として符号誤り、Verilogの識別は、クロスドメインの同期されず、望ましくない他の分岐は次のようにラッチしません。

(7)ブロッキング、非ブロッキング割り当て

(8)@signalトリガウェイト(信号)の差を含むSVベース、イベントトリガ、キュー操作、タスクの同期スケジュール(使用差フォーク...参加、フォーク... join_any、フォーク... join_none A)HTTPS://zhuanlan.zhihu .COM / P / 29642469https://zhuanlan.zhihu.com/p/29642469

(9)(プレゼンテーションのverilogを実現することができる)は、I2Cなどのいくつかの一般的なプロトコルを有し、SRAM協会、AMBA(AHB)、AXI

(10)に注意すべきで何を非同期リセットを使用していますか?

非同期リセット、同期解除

(11)同期、非同期リセット解除の回路構成をプロットします:

(12)検証環境では、Cどのようにアクセスすると、DUTを登録し、どのように接触しているのですか?

Verilogのは、外部のC / C ++コードに開くことができるDUTのVPIインタフェース階層を提供し、SystemVerilogのより良いインターフェースを提供する:DPI。

(13)は、クロックゲーティング(図は、回路構成を示すことができる)、DVFSが理解、マルチ閾値電圧技術、マルチ電圧技術として、いくつかの一般的な低電力方式を有します

グリッチをフィルタリングロジック出力レジスタの組み合わせ(14)被験者

デジタルICの顔の質問を確認します。

準備インタビュー:

完全に面接の前に自己紹介をするために準備、外国企業が英語の自己紹介のために準備することができ、それは英語で行われ、独自のプロジェクトやタスクを導入するのが最善です。そして、最も重要なことは、あなたが完全に理解を持っている必要があることをあなたの履歴書に、書き込みに何かを書いたものを再開することに完全に準備ができています。プロジェクトを持っている場合は、プロジェクトの最高の側面が質問を考えて求められることがあります。簡単に見落とさもう一つは、多くの人々が、私はこのために損失をたくさん食べて、非常によく準備された都市を理由に仕事を選択することです。インタビュアーを作ることは非常に合理的かつ説得力のある理由を与えることができるようにするには、あなたが本当に彼の誠意を示すように、仕事やライブにその街に行きたいと考えています。それ以外の場合は、あなただけのプランを享受しているインタビュアーの不思議を行います。

技術的には:プロジェクトの経験を持っている場合は、インタビュアーが最も懸念しているあなたは、自分のプロジェクトの徹底的な把握を行っていないということです。だから、それは非常に重要である面接の前に調製することが、当然のことながら、これはあなたの固体のプロジェクトの経験に基づいています。もちろん、いくつかの面接は、プロジェクトの経験に興味を持っていない場合は、彼/彼女はあなたにいくつかの基本的な知識を求めることができます。例えば、私はインタビュアーがスポット上の1つまたは2つの基本的な質問を検証理解遭遇(例えば関連COMSとして、小数カウンタ回路の構造を、唯一の2入力NANDゲートは、2入力ORゲートなどを達成します)。時間のほとんどは、最終的な技術的なインタビュアーは最高の一般的な問題は、それが何であるかを聞いてきます面接前に準備することが、いくつかは、キャリア開発、雇用やその他の問題に関連した準備します。それはHRセクションに責任があるので、通常の技術的な側面では、給与を言うまでもありません。

HR側:一般的に技術的な側面後のHR表面我々は食料、避難所、およびその他の問題を含む報酬および給付の問題や他の友人のすべての側面、の理解詳しく説明することができ、この時間は、質問をすることができ、通過。

  1. あなたが今やっている仕事について簡単に説明する話。

  2. プロジェクトについて話して学校で学ぶください。

  3. 科学UVMの検証方法のご理解ご相談ください。

UVMの検証方法は、高効率の検証方法のSystemVerilog言語形式に基づいています。その主な特徴は、スタッフがコードの再利用移植はすぐに特定のテストケースの準備に焦点を当てますビルド検証プラットフォームを、変更を確認することができますので、コードの再利用性を向上させることです。一方、UVMは、基礎となる実装にそんなに焦点を当て、および時間の検証プラットフォームをデバッグ軽減する必要はありません検証を行い有用な方法の多くを、カプセル化します。

  1. UVMコンポーネント間の関係について話してください。

  2. いくつかの一般的な方法の例としては、話にコンポーネントをUVM。

  3. 仮想シーケンサとシーケンサーとの違いについて話を、なぜ、仮想シーケンサを使用してください?

一つだけのドライブ側エージェントであれば、明らかに仮想シーケンサを使用せずに。

以上の駆動エージェントがありますが、複数の励起、仮想シーケンサも不要間の調整は行われません場合。

複数の駆動端エージェントは、と複数の励起間の調整がある場合、仮想シーケンサは非常に必要です。今回は、環境にもより多くの仮想シーケンサを含める必要があります。

どのような仮想シーケンスと「仮想」の仮想シーケンサ平均?

仮想シーケンサは、3つの属性があります。

他のシーケンサーを制御するために、(1)仮想シーケンサ

(2)仮想シーケンサとすべてのドライバに接続されていません

(3)仮想シーケンサは、アイテムを処理しません。

シーケンサは、シーケンサ・ポートを介してドライバに渡されるシーケンス項目として、正常ではありません。仮想シーケンサはsubsequencer目標ハンドルを指していることにより、シーケンサを指定します。subsequencerここで実際の接続で、ドライバとシーケンサーです。いわゆる仮想現実の配列をいうが生成され、仮想シーケンサ年に渡されていません。仮想シーケンサはそのsubsequencerを通じてtranctionの異なる種類の数を生成することができます。仮想シーケンサの役割は、異なる座標subsequencer順序の実行のシーケンスです。

  1. なぜシーケンス、シーケンサー、およびドライバー、そしてなぜあなたは離れてでしょうか?これの利点はしなければならない何ですか?

初期検証プラットフォームは、ドライバは、なぜ我々は、シーケンスメカニズムが必要行う必要がありますか?

トランザクションは、ドライバ内部で定義されている場合(1)、あなたが問題を持っています。例えば、事務の広い範囲が、あなたが取引を開始するたびにそれで、あなたは、ドライバのコードmain_phaseの一部を変更する必要があります。

(2)ドライバの複数の定義ならば、木構造UVMは、混乱を係合します。したがって、トランザクションを生成する際に運転者からの剥離コード部分(トランザクション定義は、具体的には、トランザクションを生成するステップを含んでいます)。ドライバは、業務を担当して駆動することができます。

(3)サプリメント、case_listを確認するには、シーケンスを実装する機構であり、UVMの団結、統一のツリー構造ことを確実にします。大幅に増強された能力の保守性を作ります。

上記の説明は、理由が順序であるとsequence_item uvm_componet属していません。ケース関連のコードの変更は、シーケンスとsequence_item年に実装されています。

  1. あなたは今までそれアサーション記述されたことがありますか?いくつかに分割して、アサーション?使い方のアサーションの下概要。

プロパティは、我々が期待するものでない場合、検証方法、アサーション(アサーション)に属するのSystemVerilogアサーションは設計の属性(プロパティの振る舞い)の説明で、その後、アサーションは失敗します。アサーションは、Verilogと比較して、Verilogのは、手続き型言語です。それがうまくタイミングを制御することができ、ハードウェアを記述するために設計されていますが、複雑なタイミング関係を説明し、コードをより冗長、アサーションは、シミュレーションのために設計記述言語、です、あなたはテストに内蔵された機能の多くを持つことができています特定のタイミングの関係と自動的に収集データカバレッジ。

SVAは、2種類のアサーション即時かつ同時アサーションに分かれています。コンカレントアサーションは、クロックサイクル、モジュール上に配置することができるクロック・エッジで計算式、(Module1の)、インタフェース(インタフェース)、又はブロック(プログラム)の定義に基づいて、キーワード「プロパティ」は、であると定義されます検証ツールで使用される静的および動的検証ツール。インスタントアサーションが変更イベントに基づいており、Verilogで組み合わせ論理割り当てのような式を評価、それはすぐに評価されるに関係なく、タイミングの、プロセスは、ブロック定義に配置する必要があります。

同時アサーション:

プロパティa2b_p; //説明属性

@(posedge SCLK)$ローズ()| - > [2:4] $の(b)に上昇しました。

endproperty

a2b_a:アサートプロパティ(a2b_p); //アサート財産SVAのキーワードは、同時アサーションを表します

a2b_c:カバープロパティ(a2b_p); //ステートメントカバー

  1. あなたが前に経験を持っている機能モジュールを説明してください。

  2. あなたはそれに慣れてFIFO?FIFOの状態を確認する方法の空の話の完全な?

(1)厳格な空いっぱいの判断:w_ptrr_ptrループバックフラグ書き込みフェーズとの両方空、w_ptrr_ptr書き込みループフラグが一杯になっていないながら。これは、通常は問題ありませんが、一般的に同期FIFOに悲観的な空いっぱいの判断、勝ったFIFO空の読み書きを避けるために、FIFO FIFO非同期ください。

(2)保存的空フル判定:と方向標識しきい値。75%のFIFO容量が25%FIFO容量が下限値として設定され、上限値として設定されています。方向フラグがしきい値意志出力フル/エンプティフラグを超えると、実際には、ときに出力空フルフラグFIFOは必ずしも本当に空/満杯ではありません。

  1. そこFIFOと非同期同期、違いは何ですか?

FIFOは読みと同じクロック同期、非同期FIFOの読み取りと書き込みの異なるクロックを書きます。

  1. スペースがいっぱいになったとき、非同期FIFOの場合、同期の問題に対処する方法?どのような方法も使用することができますか?

読み取りと書き込みポインタグレイコードにしてから同期します。

  1. 検証の考え方について話してください、検証の違いやデザイナーが考えます。

検証は常に、それはあなたがそれを確認するために、期限を設定している場合、私はそれが千年であると思い、同僚の言葉では、常に最高ではない、不十分になります。

現在、一般的な方法は、カバレッジを見ることです。

(1)外観・デザイン・スペック

(2)は、関連する契約を学び

(3)は、テスト計画と検証仕様を書きます

(4)ビルド検証プラットフォーム

(5)テストケースは、試験プランに基づいてテストケースを作成します

最も時間のかかる、環境やバグの設計を含む(6)シミュレーションとデバッグ、。ツールですVCS /ヴェルディ

デバッグツールは以下のとおりです。ログの表示、波形を見ます

(7)。回帰およびカバレッジ

(8)。コードレビュー

  1. どのような報道プロジェクトを検討しますか?

ラインカバレッジ、条件カバレッジ、分岐カバレッジ、トグルカバレッジ、ステートメントカバレッジ(FSM)

  1. あなたはどのようにそれを行う際の条件をカバーしないことがわかっていたときにカバレッジは、一般的に直接、100%に達していませんか?

方向性筆記テストケース(直接の場合)

16.なぜ私は絶対パスを使用しないでください?避けるためにどのように?

絶対パスを使用して大幅に低減移植検証プラットフォーム。この方法は、マクロとインターフェイスの使用を避けることができます。

  1. どのようにドライバのインターフェイスを使用するには?なぜ?

ドライバがクラスであるので、インタフェースはクラスで直接使用することはできません、それはクラスの仮想インタフェースで使用されています。そして、uvm_config_dbの#(仮想)でtop_tb ::セット()...方法を設定した場合のvifドライバーに。

  1. あなたは、コールバックメカニズムUVMは何を知っていますか?

最大使用のコールバックメカニズムは、検証プラットフォームの再利用性を向上させることです。それは何をする地元のコールバック関数で二つの異なるプロジェクトを使用することによってこれを行い、そのような再利用、限り、コールバック関数に関連した変化として、ENVは、完全な再利用を実現することができ、完全なENVの同じ部分に書かれました。

また、コールバックはまた、これを達成することができ、工場のメカニズムをオーバーライドすることによって、テストの異常を構築するために使用されます。

18.OVMとUVMの違いは何ですか?

UVM = + OVM、VMM(RAL)?

cadanceはRGMはショートボードを構成して立ち上げた後OVMは、しかし、工場のメカニズムがあり、解決策を登録しませんが、使用してRGMは、OVMの一部にはなりませんでした、追加のダウンロードが必要です。OVMは現在、更新を停止しました。

VMMの最良の実装の一部を吸収しながらUVMはほぼ完全に、RALレジスタ溶液はsynopsysVMMを採用し、同時に、OVMを継承します。そして、メンターとcandence2008年联合发布。

組織がどのように動作するか、シリアルまたはパラレルの各成分と19.UVM?シリアルた場合、私は、スケジューリングのコンポーネント間の操作を達成するためにどのようなメカニズムでお願いしますか!

UVMための操作機構は、UVMは非常に明確であるべきで学んだ、その構成要素間の関係、ならびに位相機構などがあります。UVMは、ソフトウェアの本質である、およびソフトウェアは、基本的に、DUTのハードウェアが並列に実行されて、順番に実行されています。コンポーネント間の操作のスケジュールについて、唯一の「UVMの戦闘」から、この本は答えではない、と私はSVグリーンペーパー、答えを見つけるために気持ちを見ているとき。スケジューリングテストプラットフォームは、イベント駆動型(例えば、@などによってトリガされ、

- >イベント)

データを暗号化するかどうかを確認するための暗号化および復号化モジュールの20 Aモジュールが直ちに復号化され、それが同一の入力データと出力データを発見された場合、何の問題暗号化および復号化モジュールの機能の姉妹の両方を説明することはできませんか?なぜ?

この質問は、反応時に、見ている最初の問題がない場合は、その後、一緒に確認し、それぞれ、暗号化モジュール検証する必要があります。しかし、この問題に関するインタビュアー一見満たさないが、なぜ私の直接の経験を聞いていませんか?私は突然のすべてが、なぜ言うことができませんでした。

21.とき発見のシミュレーションのためのモジュール:あなたはアドレスaddrを入力した場合、出力はDUT同じアドレスaddrですが、参照モデルの出力がADDR1であることが判明し、問題の原因である可能性がありますどのように分析してください。?あなたはどのように解決するのだろうか?

私が最初に考えたのは、DUTの設計誤差、または参照モデル誤差のどちらかということです。我々は問題がない私達の参照モデルに基づいた仕様のチェックを定義する必要がまず、問題がなければ、シミュレーションにより設計のデバッグ、問題を特定し、デザイナーの修理を見つけます。インタビュアーがまだ満たされていない。しかし、彼女は私がコンフィギュレーション・レジスタによって考慮されていないと結論づけ異なるモードで動作することがあり、DUTを聞かせて、DUTは、バイパスモード、および他のモードでの参照モデルの仕事で働いていませんか?その時点では何もあなたがそれを所有する必要がどのように考えていますか?、その後に反映し、彼女は自分自身に疑問を見つけることができますが問題で少し恥ずかしい質問をするとき、ない答えは合理的である、十分な情報とガイダンスを与えませんでした。また、発見の議論に参加した学生を下にしてインタビューすると、ほとんどの人は、同じ質問をしました。

より転載:

[1] https://zhuanlan.zhihu.com/p/29642469

公開された52元の記事 ウォンの賞賛5 ビュー3086

おすすめ

転載: blog.csdn.net/qq_43042339/article/details/104015165