Verilog-HDLを使用した同期D-FFの表し方

大学レポート

始めに

同期セットリセットを用いたD-FFをVerilog-HDLを学んだので説明していきます。

同期したセットとリセットを有するD-FFの回路シンボル

同期セットリセットのD-FFの回路シンボルを以下に示します。

同期セットリセットのD-FFの回路シンボル

同期セットリセットD-FFの真理値表

以下に同期セットリセットD-FFの真理値表を示します。

同期セットリセットD-FFの真理値表

注意

RBは、リセットが0の時にQが0になるというような意味があり、SBは、セットが0の時にQが1になるという意味があるので意味を考えて作る必要があります。

タイミングチャートの例

以下にタイミングチャートの例を示します。

タイミングチャートの例

上の真理値表を参考にして、タイミングチャートを作成しました。

D-FF のシミュレーション用 VerilogHDL メインのソースコード

以下に、同期セットリセットのD-FFのメインソースコードを示します。

© 2017, Xilinx, Inc. All rights reserved. Vivado 2021.1
メイン ソースコード
--------------------------------------------------------------

`timescale 1ns / 1ps
module study_1(CLK,D,Q,SB,RB,QB);
input CLK,D,SB,RB;
output Q,QB;
reg Q,QB; 

always @(posedge CLK )begin  //CKが↑に上がった時
    //Qの時
    if(RB==1'b0&&SB==1'b1)
    Q <= 1'b0;    //RBが0ならば、Qに0代入
    else if(SB==1'b0&&RB==1'b1)
    Q<= 1'b1;    //SBが0ならば、Qに1代入
    else if(SB==1'b1==RB)
    Q <= D;       //CKがうえにあがったら、QにD代入
    
    //QBの時
    if(RB==1'b0&&SB==1'b1)
    QB<=1'b1;    //RBが0ならば、QBに1代入
    else if(SB==1'b0&&RB==1'b1)
    QB<=1'b0;    //SBが0ならば、QBに0代入
    else if(SB==1'b1==RB)
    QB<=~D;      //QBにDの反転代入  
end
endmodule

D-FF のシミュレーション用 VerilogHDL テストベンチのソースコード

以下に、同期セットリセットのD-FFのテストベンチソースコードを示します。

© 2017, Xilinx, Inc. All rights reserved. Vivado 2021.1
テストベンチ ソースコード
--------------------------------------------------------------
`timescale 1ns / 1ps

module study_1_test(
    ); 
    //inputs
    reg CLK;
    reg SB;
    reg RB;
    reg D;
    //output
    wire Q;
    wire QB;
    //回路とテストフィクスチャの接続
    study_1 uut(
        .CLK(CLK),
        .SB(SB),
        .RB(RB),
        .D(D),
        .Q(Q),
        .QB(QB)
    );
    //Sb,Rb,D,CLK時間間隔
    initial begin
    #100
    SB <= 1'b1;
    RB <= 1'b1;
    D <= 1'b0;
    CLK =1;
    #7 SB<=1'b0;
    #10 SB<=1'b1;
    #10 RB<=1'b0;
    #10 RB<=1'b1;
    #15 D<=1'b1;
    #20 RB<=1'b0; 
    #6 D<=1'b0;
    #4 RB<=1'b1;
    end
    //クロック間隔 
   always 
    #5
    CLK=~CLK;
endmodule   

シュミレーション結果

シュミレーション結果 © 2017, Xilinx, Inc. Vivado 2021.1

上記のシュミレーション結果が、タイミングチャートと同じになっていれば大丈夫です。

終わりに

この説明が、参考になれば幸いです。

コメント

タイトルとURLをコピーしました