quartus call&designDフリップフロップ-シミュレーションとタイミング波の検証
目次
1. Quartus-IIでゲート回路を備えたDフリップフロップを設計し、シミュレーションとタイミング波形の検証を実行します
。2。シミュレーションとタイミング波形の検証のためにQuartus-IIでDフリップフロップ回路を直接呼び出し、2で実行します。 。比較;
3。シミュレーション検証のためにQuartus-IIでVerilog言語でDフリップフロップを作成します
1つは、Dフリップフロップを認識します
Dフリップフロップは、メモリ機能と2つの安定状態を備えた情報記憶装置であり、さまざまな構成
时序电路的最基本逻辑单元
があり、デジタル論理回路の重要なユニット回路でもあります。
Dフリップフロップ时钟脉冲CP的前沿(正跳变0→1)发生翻转
、フリップフロップの2番目の状態は、CPパルスの立ち上がりエッジの前のD端子の状態に依存し次态=D
ます。したがって、設定0と設定1の2つの機能があります。回路はCP = 1の間にブロッキング効果があるため、CP = 1の間に、D端子のデータ状態が変化します。これはフリップフロップの出力状態には影響しません。
Dフリップフロップは広く使用されており、デジタル信号レジスタ、シフトレジスタ、周波数分割、波形発生器などとして使用できます。
1.構造
Dフリップフロップ(データフリップフロップまたは遅延フリップフロップ)は4つのNANDゲートで構成され、そのうちG1とG2が基本的なRSフリップフロップを構成します。レベルトリガーのマスタースレーブトリガーが機能する場合、入力信号を立ち上がりエッジの前に追加する必要があります。CPのハイレベル中に入力に干渉信号があると、フリップフロップの状態が間違っている可能性があります。エッジトリガーを使用すると、CPトリガーエッジの直前に入力信号を追加できます。このようにして、入力端子が妨害される時間が大幅に短縮され、妨害される可能性が低減される。エッジDフリップフロップは、サステインブロッキングエッジDフリップフロップとも呼ばれます。エッジDフリップフロップは、2つのDフリップフロップを直列に接続することで形成できますが、最初のDフリップフロップのCPはNOTゲートで反転する必要があります。
2.機能
機能表の
タイミング図
Dフリップフロップの簡単な紹介です。Dフリップフロップの詳細については、以下のリンクを参照してください
。Dフリップフロップ。
2.デザインDフリップフロップとタイミング検証
1.プロジェクトを作成します
ファイル->新しいプロジェクトウィザード
でプロジェクト名を編集し、[次へ]をクリック
して適切なチップとそのシリーズを選択します
次の
プロジェクトが直接作成されたら、[完了]をクリックします
2.ボックスファイルを作成します
[新規]をクリックして、
赤いボックスの署名を選択します。nand2、2つの入力NANDゲートを選択し、4つのnand2と1つのnotゲートを順番に追加します。追加後、接続ツールを選択すると、接続効果は図のようになります(double-マウスをクリック)ピン名を変更可能)回路図を保存
3.回路図ファイルをコンパイルします
回路図を
コンパイルするインターフェイス
RTLビューアをコンパイルし、ハードウェア回路
図を表示する回路図
4.vwmウェーブファイルを作成します
図
に示すように、アイコンvwm操作を選択します。ノードまたはバス
エフェクト表示の追加
入力信号clkの編集、クロック信号の生成
マウスでD、Q信号Q_nを選択し、編集します(マウスの左ボタンを選択してダブルクリックすると、値)
5.タイミング波形シミュレーション
コンパイル
エラーが発生しました
。modelsim
エラーレポートソリューションを接続します。
結果を図に示します。
シミュレーション結果
3つ目は、Dフリップフロップとタイミング検証を呼び出す
1.ボックスファイルを作成します
プロジェクトの作成方法は上記と同じです
。Dトリガーを呼び出して
ピンを接続すると、図のようになります(Ctrl +マウスホイールでトリガーピンをズームできます)。
2.回路図をコンパイルします
ハードウェア図を表示
コンパイル
3.vwm波形ファイルとシミュレーションを作成します
波形
タイミングシミュレーション結果
第4に、Dフリップフロップとタイミング検証を実現するためのVerilog言語
1.Verilogファイルを書き込む
最初にプロジェクトを
作成します。方法は上記と同じです。Verilogファイルを作成し、file-newをクリックして
、次のコードを貼り付けます。
//demo是文件名
module demo(d,clk,q);
input d;
input clk;
output q;
reg q;
always @ (posedge clk)//我们用正的时钟沿做它的敏感信号
begin
q <= d;//上升沿有效的时候,把d捕获到q
end
endmodule
保存してコンパイルします
2.生成された回路図を表示します
3.タイミングシミュレーションをテストします
コードは以下のように表示されます
//测试代码
`timescale 1ns / 1ns
module demo_tb;
reg clk,d;
wire q;
demo u1(.d(d),.clk(clk),.q(q));
initial
begin
clk = 1;
d <= 0;
forever
begin
#60 d <= 1;//人为生成毛刺
#22 d <= 0;
#2 d <= 1;
#2 d <= 0;
#16 d <= 0;//维持16ns的低电平,然后让它做周期性的循环
end
end
always #20 clk <= ~clk;//半周期为20ns,全周期为40ns的一个信号
endmodule
シミュレーションレンダリングを保存してコンパイルします
5、要約および参考資料
1.まとめ
Dフリップフロップとタイミングシミュレーションのプロセス中、Dフリップフロップの基本的な機能は、リセット信号が1の場合、CLKの立ち上がりエッジによってQ値が変化することです。このことから、サブステート方程式はQ n + 1 = Dであると結論付けることができます。
2.参考資料
Quartus IIのシミュレーションツールを使用しています。
のQuartus II-入力回路図とシミュレーション
steps.docx。のQuartus-II13.1 Dフリップフロップおよびタイミングシミュレーションを達成するための3つの方法。