私はVerilogプログラムをvhdlに変換しようとしていますが、Verilogプログラムで疑問符(?)演算子が使用されているステートメントを見つけました。Verilogの疑問符(?)演算子
以下は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文字の代替語であることを読んだ。しかし、私はこの文脈でなぜそれが使われているのか理解していません。
種類はternary operatorだ
宣言が質問にとても必要不可欠である理由です。条件はブール値に評価する必要があります。トーン[23]がその基準を満たす唯一の方法は、トーンがBOOLEAN_VECTORであるかどうかです。 – user1155120