Estoy tratando de traducir un programa verilog en vhdl y me he topado con una afirmación donde se utiliza un operador de signo de interrogación (?) En el programa verilog.Operador de interrogación Verilog (?)
El siguiente es el código 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
No entiendo la octava línea, ¿alguien podría por favor arrojar algo de luz sobre esto? He leído en el sitio web de asic-world que el signo de interrogación es el alterno de Verilog para el personaje Z. Pero no entiendo por qué se usa en este contexto.
Saludos cordiales
Esta es la razón por declaraciones son tan esenciales en las preguntas. Una condición debe evaluar a un valor booleano. La única forma en que el tono [23] cumplirá ese criterio es si el tono es un BOOLEAN_VECTOR. – user1155120