Verilog: Advertencia (13410): El pin “pin_name2” está atascado en la GND

1

No puedo entender por qué g y b están atascados. Tengo entendido que always@(posedge clock) se ejecutará en cualquier momento en que la entrada del reloj pase de 0 a 1. Tengo el pin del reloj conectado a un pll que está controlado por el reloj del FPGA. Mi variable count debería incrementarse con cada reloj, y luego color debería incrementarse cada vez que count se ajusta. ¿Puede alguien ayudarme a explicar lo que me falta?

module state_machine ( clock, r, g, b );
input clock;
output reg r;
output reg g;
output reg b;

reg count;

reg color;

always@(posedge clock)
begin

if(count == 50000000) count = 0;
else count = count + 1;

if(count == 0) color = color + 1;

if(color > 1'o7) color = 1'o0;

r = color & 1'o1;
g = color & 1'o2;
b = color & 1'o4;

end
endmodule

Aquí está el mensaje de error de Quartus:

Warning (10230): Verilog HDL assignment warning at state_machine.v(15): truncated value with size 32 to match size of target (1)
Warning (10230): Verilog HDL assignment warning at state_machine.v(17): truncated value with size 32 to match size of target (1)
Warning (13024): Output pins are stuck at VCC or GND
    Warning (13410): Pin "pin_name2" is stuck at GND
    Warning (13410): Pin "pin_name3" is stuck at GND

EDITAR: Gracias por la ayuda. Ahora tengo esto y funciona.

module state_machine ( clock, rgb );
input clock;
output reg[2:0] rgb;

reg[31:0] count;
reg[2:0] color;

always@(posedge clock)
begin

if(count == 50000000) count = 0;
else count = count + 1;

if(count == 0) rgb = rgb + 1'o1;

end
endmodule
    
pregunta NeilMonday

1 respuesta

0

Ver mi edición. Gracias a los que respondieron.

    
respondido por el NeilMonday

Lea otras preguntas en las etiquetas