Make/Day

毎日なにか作ります

24日目 ~Register~

こんにちは!今日はデジタル回路の話題で更新します。

今回は、19日目に更新した内容の続きで順序回路を作っていきます。
その名も、Nbitレジスタです。
レジスタは、前回紹介したDFFから作られる記憶素子の一つになります。(というか、前回の最後に紹介したDFF回路は1bitレジスタそのものですね)
in-reality.hatenablog.com

データ保持回路改め、1bitレジスタ

Nbitと言っても、折角16bitのALUなどを設計してきたので、レジスタも16bitに統一しようと思います。
複数bitのレジスタは、前回作ったモジュールを並列に並べればよいだけなので、以下のようなコードになります。

module Bit (
    input in, load, clk,
    output out
);
    reg d;
    assign out = d;
    always @(posedge clk) begin
        if (load) begin
            d = in;
        end
    end
endmodule

module Register (
    input [15:0] in,
    input load,clk
    output [15:0] out
);
    Bit U0(in[0], load, clk, out[0]);
    Bit U1(in[1], load, clk, out[1]);
    Bit U2(in[2], load, clk, out[2]);
    .....
    Bit U2(in[N], load, clk, out[N]);
endmodule

ちなみに、前回紹介したモジュールは名を改めBitという名前にしました。後は、Registerモジュールにあるようにそのまま並列に並べていって16bitレジスタの完成です。