質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

Q&A

解決済

1回答

2840閲覧

Verilog, エラーがわかりません:複数のドライバ ネット: ネットに複数のドライバがあります

iface

総合スコア42

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

0グッド

0クリップ

投稿2022/06/06 04:58

編集2022/06/06 05:54

実現したいこと

FPGAのPL部分の動作周波数が100MHzであることを考慮して、0.1秒間隔でLEDにカウントを出力させる4bitカウンタを作成しています。

クロック同期4ビットバイナリカウンタの動作

秒カウンタの動作

回路構成

イメージ説明
誤:100MHz 正:10MHz

発生している問題・エラーメッセージ

ネットに複数のドライバがあるということですが、どのように改善すればよいでしょうか。
ご教授お願いします。

[DRC MDRV-1] Multiple Driver Nets: Net EN_IBUF has multiple drivers: COUNT_reg[3]_i_1/O, and EN_IBUF_inst/O.

該当のソースコード

Verilog

1module counter ( 2 input wire CLK, RES, EN, 3 output reg [3:0]Q); 4 5 reg [23:0] scale; 6 7 always @(posedge CLK or negedge RES) begin 8 if (RES == 1'b0) 9 scale <= 24'h0; 10 else if (scale == 24'd99999999) 11 scale <=24'd0; 12 else 13 scale <=scale + 24'd1; 14 end 15 16 assign EN = scale == 24'd99999999; 17 18 always @(posedge CLK or negedge RES) begin 19 if (RES == 1'b0) 20 Q <= 4'd0; 21 else if (EN == 1'b1) 22 Q <= Q + 4'd1; 23 end 24endmodule

変更後

Verilog

1module counter ( 2 input wire CLK, RES, 3 output reg [3:0]COUNT); 4 5 reg [23:0] scale; 6 7 always @(posedge CLK or negedge RES) begin 8 if (RES == 1'b0) 9 scale <= 24'h0; 10 else if (scale == 24'd9999999) 11 scale <=24'd0; 12 else 13 scale <=scale + 24'd1; 14 end 15 16 assign wire EN = scale == 24'd9999999; 17 18 always @(posedge CLK or negedge RES) begin 19 if (RES == 1'b0) 20 COUNT <= 4'd0; 21 else if(EN == 1'b1) 22 COUNT <= COUNT + 4'd1; 23 end 24endmodule

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

Windows11

Vivodo 2020.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

input の ENを消してassign しているENをwire宣言する

投稿2022/06/06 05:01

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

iface

2022/06/06 05:57

コメントありがとうございます。 プログラム追加したのですが、こういうことでしょうか? このままだとエラーが出ると思うのですが...
ozwk

2022/06/06 06:17

assign は消します
iface

2022/06/07 03:11

ありがとうございます。できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問