Me pregunto cómo es posible construir un circuito verilog secuencial con un disparador de reinicio. El problema que tengo es que necesito un bloque siempre específico para cuando se activa el restablecimiento. He creado este ejemplo de un contador para demostrar lo que quiero decir:
'timescale 1ns / 1ps
module Counter(input CLK, reset, output reg[2:0] val);
always@(posedge CLK)
val = val+1;
always@(negedge reset)
val = 0;
endmodule
El error que obtengo al sintetizar esto es
"ERROR:Xst:528 - Multi-source in Unit <Counter> on signal <Mcount_val_cy<0>>; this signal is connected to multiple drivers.
Drivers are:
Output signal of FD instance <val_0>
Signal <val<0>> in Unit <Counter> is assigned to GND"
Esto se debe a que val se actualiza en 2 declaraciones siempre.
¿Cómo puedo solucionar esto y tener un circuito secuencial con un activador de reinicio?