[解決済み] Verilogクエスチョンマーク(?)演算子
2022-02-19 08:05:24
質問
VerilogのプログラムをVHDLに変換しようとしているのですが、ある文にクエスチョンマーク(
?
) 演算子が使用されています。
以下は、Verilogのコードです。
1 module music(clk, speaker);
2 input clk;
3 output speaker;
4 parameter clkdivider = 25000000/440/2;
5 reg [23:0] tone;
6 always @(posedge clk) tone <= tone+1;
7 reg [14:0] counter;
8 always @(posedge clk) if(counter==0) counter <= (tone[23] ? clkdivider-1 : clkdivider/2-1); else counter <= counter-1;
9 reg speaker;
10 always @(posedge clk) if(counter==0) speaker <= ~speaker;
11 endmodule
8行目がよくわからないのですが、どなたか解説していただけませんか?
asic-worldのサイトでは、クエスチョンマークはVerilogの代替で
Z
という文字があります。しかし、なぜこの文脈で使われているのか理解できません。
よろしくお願いします。
解決方法は?
それは 三項演算子 . これは、if文の省略形です。
形式です。
condition ? if true : if false
例
tone[23] ? clkdivider-1 : clkdivider/2-1
のようなものに翻訳されます(正しい構文ではありませんが、理解できると思います)。
if tone[23] is 1, counter = clkdivider-1
else counter = clkdivider/2-1
以下は、2つの例です。 if文と三項演算子を用いた2対1MUX .
asic-worldのサイトでは、以下のように取り上げられています。 条件付き演算子
関連
-
[解決済み] Verilogクエスチョンマーク(?)演算子
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] JavaScriptに「NULL合体」演算子はありますか?
-
[解決済み] C# 6.0のクエスチョンマークとドット演算子「?」の意味は?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】ビット単位の補数演算子(~チルダ)はどのように機能しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン