Diseño de contador síncrono de 3 bits

Soy nuevo en toda la escena de los circuitos electrónicos, he estado tratando de resolver durante horas cómo diseñar un contador síncrono de 3 bits usando D-Flip Flops para contar en una secuencia determinada.

Entonces, digamos que, por ejemplo, la secuencia de contadores es 111-> 010-> 011-> 001, ¿cuál es el mejor enfoque para este problema?

cualquier ayuda muy apreciada.

Respuestas (3)

Puede crear un circuito de 3 entradas y 3 salidas que asigne un estado en la secuencia de conteo al siguiente. Luego alimente las salidas 3 Q de los FF en este circuito combinatorio y conecte la salida del circuito combinatorio a las entradas 3 D de los FF. Conecte las 3 líneas de reloj del FF juntas, y luego, cada vez que aparece un borde activo, los flip flops actúan como un registro de 3 bits y simplemente cargan el siguiente valor.

La forma oficial en la que te enseñarán en la escuela es aprender Karnaugh Maps y usar uno por para calcular la lógica para calcular el siguiente valor de cada bit. Luego, determina qué conjunto de puertas implementará dicha lógica y lo conectará todo.

No me molestaré en decírtelo. Te diré dos formas en que un hacker de hardware lo hace: la forma fácil y la forma inteligente.

La manera fácil

Obtenga tres chips multiplexores uno de ocho (MUX), como el TI SN74LS151 . Este chip usa tres líneas (A, B, C) para elegir una de ocho entradas (D0 a D7) para enrutar a su salida (Y).

Conecte las tres salidas D flip-flop (DFF) a los tres pines seleccionados de cada chip, con el bit menos significativo yendo a A y el bit más significativo yendo a C. Conecte la salida Y de cada MUX a la entrada D de su respectivo DFF.

El pin W es una versión invertida de Y; no lo necesitas, así que no lo conectes. El pin G es una habilitación baja activa; conéctelo a la lógica 0 (GND).

En este punto, todo lo que tiene que hacer es conectar cada pin D en cada multiplexor a VCC o GND para establecer el siguiente estado para los DFF, donde el número de entrada D es el estado actual . Para su ejemplo (111->010->011->001), el primer estado es 7 y avanza a 2, por lo que los pines D7 en los bits 2 y 0 MUX están vinculados a GND, y el bit 1 MUX está vinculado a VCC. El siguiente estado es 3, por lo que los pines D2 en los MUX del bit 0 y 1 están conectados a VCC y el del MUX del bit 2 está conectado a GND.

Cualquier pin D no utilizado en los MUX debe vincularse a algún nivel; en este caso, recomendaría vincularlos todos a VCC ya que su primer estado es 111.

Lo mejor de este circuito es que puede cambiar completamente el orden de conteo simplemente volviendo a cablear los pines D. Además, así es como los FPGA modernos implementan la lógica combinacional, con tablas de búsqueda efectivas.

El camino inteligente

Puede obtener un bit de entrada más para su función al darse cuenta de que puede conectar los pines D a Q o Q-bar desde el LSB DFF, y no solo VCC o GND. En su ejemplo, podría usar un multiplexor dual 4 a 1 como el SN74LS153 y eliminar un chip MUX (uno de ellos puede manejar dos entradas DFF).

Para cada bit, identifique cuál de los ocho estados debe hacer que sea "1" en el siguiente estado y cuáles deben hacer que sea cero. Luego escribe una función que sea alta o baja para la combinación apropiada de entradas.