我试图将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世界的网站,问号是Z字符的Verilog替代品。但我不明白为什么在这种情况下使用它。
亲切的问候
这就是为什么声明在问题如此重要。条件必须评估为布尔值。如果音调是BOOLEAN_VECTOR,音调[23]将符合该标准的唯一方法。 – user1155120