5 votos

¿Debe cada diseño FPGA incluyen una señal de reset?

Yo estoy diseñando una víbora en VHDL, y me he topado con varios diseños VHDL (no necesariamente TDAH) que incluyen un puerto de reset. Mi serpiente tiene entrada y salida de registros. ¿Deben incluir todos los diseños de una señal de reset? ¿Cuál es el uso de este reinicio?

Editar:

Restablecer la carry_out tiene sentido para mi, ya que algunos sistemas manejaría como una excepción. ¿Qué registros de la entrada y la salida de suma?

7voto

Tom Carpenter Puntos 7192

Casi todos los de diseño que cuenta con un registro o un pestillo debe tener un reset. Ahora si, o no, el reset es nada más que el power-on-reset de la FPGA, es otra cuestión.

La siguiente no es una lista completa de los sitios que siempre debe tener un determinado reset (encendido o diseño específicos, tales como push button), y los lugares donde es probable que no importa mucho.

Restablecer debe:

  • Las Señales de Control - cualquier señal que controla el flujo de datos a través de un sistema debe tener una señal de reset para asegurarse de que están en un estado conocido. Por ejemplo, si usted tiene un registro que cuando termina el mundo, usted probablemente querrá saber que no va a ser alta cuando se encienda.

  • Datos Válidos Señales - cualquier señal que indica que los datos en un bus es válido. Si restablece el circuito, usted quiere saber que no hay bus de datos está marcado válido de forma inesperada (por ejemplo, carga de datos en FIFO).

  • Contadores - cosas que contar probablemente debería tener un reset para que usted sepa qué valor se comenzó a contar. Por ejemplo, si usted tiene un contador para un divisor de reloj, usted probablemente desea que se inicie siempre en el mismo punto después de reiniciar, para garantizar determinista de la conducta.

  • Máquinas de estado - la mayoría en un estado de INACTIVIDAD a la que se ingresa después de encender o reiniciar a la espera de algún evento que se produzca. Estos deben tener un reset

Reset es opcional:

  • Algunos Buses de Datos - me dicen algunos. Cualquier cuales están calificados por una señal válida (ver arriba) no es realmente necesario restablecer las señales, y no la adición de ellos puede guardar el enrutamiento de las presiones y los problemas de sincronización con el restablecimiento de las señales, especialmente en las grandes buses de datos. La razón por la que no es necesario debido a que la señal válida debe tener un reset. Siempre que la validez de la señal indica que el autobús no es válido, cualquier aguas abajo de la lógica debe ser diseñado para que no se basan en el valor de los datos - los datos es, efectivamente, no me importa. Se supone que usted va a cambiar el valor del registro de todas formas antes de afirmar válido.

  • Puro Combinacionales Circuitos - Cualquier apátridas combinacional del circuito. No tiene sentido tener un reset, ya que la salida del circuito depende sólo de las entradas - que no hay forma de tener un inválido/valor desconocido después del encendido.

  • No Crítico de los Registros que Por falta de un término mejor. Básicamente cualquier cosa donde se han verificado en su diseño que funciona bien independientemente del valor en el registro, es decir, no importa de cuál es el valor. Por ejemplo, si usted desea probar un circuito sumador como en su caso y son, simplemente, almacenamiento y salida de las señales de entrada, luego de un reinicio no es realmente necesario.

Hay probablemente más por cada lista, pero que es un buen punto de partida. Si hay cualquier tecla lugares he echado de menos, hágamelo saber en los comentarios.

3voto

user110971 Puntos 141

Recientemente tuve una discusión con Altera sobre el mismo tema. Curiosamente, dicen que en realidad no necesita una señal de reset en FPGAs, siempre que como establecer un estado predeterminado para sus registros. Esto es debido a que la FPGA puede garantizar su estado interno cuando se aplica la alimentación.

En un sentido, es el uso de la FPGA POR circuitos como su restablecimiento. Usted puede apenas ciclo de alimentación para restablecer la FPGA. Por otro lado, tener un reset siempre es una buena práctica. Especialmente si usted está planeando migrar a ASICs o diferentes fabricantes de FPGA.

1voto

dwestbrook Puntos 1754

Edit: aclarar que no es individual estado de las máquinas de estado que no es válido, sino de la totalidad del sistema.

Restablecer las señales son necesarias para los sistemas que contienen máquinas de estado cuando no son válidos los estados del sistema. Posibles ejemplos serían

  • protocolo de motores que cuentan bits: el emisor y el receptor deben ponerse de acuerdo en los que el bit 0 es.
  • un ordenador se reinicia, ahora sus controladores de interrupción no son capaces de solicitudes de interrupción de servicio, así que no hay más solicitudes deben ser generados.

Estados no válidos se introducen debido a que los registros se establecen en valores aleatorios durante el encendido, o debido a errores o influencia externa (e.g rayos cósmicos voltear bits).

El restablecimiento de la lógica sólo se necesita cambiar los registros que tienen una real influencia en el comportamiento externo, por lo que, normalmente, no hay necesidad de definir restablecimiento de estados para cada registro (aunque varios modernas arquitecturas FPGA han dedicado restablecimiento de la red de distribución así que no hay recursos adicionales que se consumen aquí).

Por ejemplo, un procesador de diseño de la garantía sólo que el contador de programa se podría establecer el vector de reset, y el modo de ejecución establecido a modo supervisor. El registro de usuario no necesita ser reajustado, porque el código de inicio está previsto para sobrescribir ellos de todos modos.

Si tu serpiente necesita un reset de la señal depende de la forma en que está diseñado. Puramente combinatoria serpiente no tiene ningún estado, así que no hay nada para restablecer.

Si la salida está registrado, puede agregar un reset que borra a cero, pero me gustaría normalmente transparente a 'U' a causa de un error en la simulación el caso de que el valor se propaga a un puerto de salida.

Si la serpiente ha estado adicional (por ejemplo, hay adder diseños que sólo tiene un único puerto de entrada, y agregar el valor que hay a su acumulador), entonces usted necesita un reinicio para borrar el acumulador. Ya sea que restablecer está conectado a un chip amplia reset, o generado por la siguiente adjuntando entidad depende del diseño.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X