重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

写真の論理回路を自分の手で作成したのですがVerilog HDLを用いてこの回路を作成出来ると聞き試したいのですがどう入力すれば出来るのかが分からなくて困ってます。どなたか教えてください。写真の左のプログラムを参考にしてください。3入力1マルチプレクサです。お願いいたします。青色で書いたのが自分でこうではないかと思ったプログラムです。エラーが出てしまい作れませんでした。違うところを教えてください。

「写真の論理回路を自分の手で作成したのです」の質問画像

A 回答 (4件)

私ならこう書きます。


マルチプレクサならcase文の方が可読性が良いからです。

module mux (S0,S1,A,B,C,Z);
input S0,S1,A,B,C;
output Z;

wire [1:0] sel;
reg pre_z;

assign sel = {S1, S0};

always@(S0,S1,A,B,C) begin
case(sel)
2'b00 : pre_z = A;
2'b01 : pre_z = B;
default : pre_z = C;
endcase
end

assign Z = pre_z;

endmodule
    • good
    • 0

誤: X=not_S1 & not_S0 & A;a


正: X=not_S1 & not_S0 & A;
    • good
    • 0

識別子の最初の文字は英字またはアンダースコア。

出力の2はダメ。
assign X=~S1 & …はダメ
wire not_S1;
wire not_S0;
assign not_S1=~S1;
assign not_S0=~S0;
を追加

X=not_S1 & not_S0 & A;a
とする。Yも同様。

ORは"||"ではなく"|"

IntelのFPGA Lite Editionをインストールしていれば自分で検証できるので自分でやってみてください。

画像はVerilog HDLファイルをRTL Viewerで確認したもの
「写真の論理回路を自分の手で作成したのです」の回答画像2
    • good
    • 0

QiitaやZennであれば、経験者からのアドバイスをもらえるかもしれないので、そこで自分で記事を書いてヘルプを頼んでみましょう。


ここで聞いてもまともな回答は期待できません。
https://qiita.com/rikitoro@github/items/ab3a734b …

https://zenn.dev/nekoallergy/articles/fpga-basic …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A