IC digitales esenciales o recomendados para un software

4

Estoy creando un programa en el que se pueden hacer circuitos utilizando (solo) circuitos integrados digitales. He preseleccionado alrededor de 25 CI de la familia 74xx. Algunos de ellos son

  • 7400 (Quad 2 input NAND)
  • 7402
  • 7404
  • 7408
  • 74161 etc.

He usado la mayoría de estos.

Ahora mis consultas son:

  1. ¿Cuántos circuitos integrados desea ver admitidos en dicho programa?
  2. Nombre algunos IC específicos, esenciales / recomendados que se incluirán.
  3. ¿Solo los circuitos integrados digitales pueden modelar una gran cantidad de circuitos o también se requieren elementos analógicos?
  4. ¿Es correcto nombrar un IC con la misma función (como XOR) pero con paquetes diferentes (como W, N, D, etc.), diferentes tipos (como LS, S) o diferentes fabricantes como un solo nombre, como 7486?
  5. IC 7400 & IC 7401 hace el mismo trabajo, ¿está bien si me salto 7401?

Sugerencias & críticas bienvenidas. Esto influirá enormemente en el diseño de mi software, como la extensibilidad.

Por cierto, el proyecto es gratuito y de código abierto, alojado aquí en Sourceforge si está interesado.

    
pregunta Vinayak Garg

4 respuestas

3

Suena como un proyecto genial.

Muchos circuitos pueden diseñarse completamente a partir de lógica digital pura (cosas que pueden implementarse a partir de puertas NAND ideales), como la mayoría de los componentes de un diseño de CPU .

Algunos de mis chips digitales favoritos son el 4: 1 mux 74AC153 y el 2: 1 mux 74HC157 (los multiplexores son el Juego nuclear táctico de Diseño Lógico ), y el registro de cambios 74HC595.

Si desea que las personas puedan simular CPU completas con su software, solo quedan unas pocas partes de una CPU que no pueden construirse a partir de puertas NAND ideales:

  • lógica de tres estados para interactuar con las líneas de "datos" bidireccionales de un chip RAM típico. Quizás un búfer de tres estados y un cierre de tres estados de 74HCT244, 74HCT245, 74AC253, 74HCT374, 74HC541, 74HC573 (un mejorado 74HCT373) y 74HC574.
  • lógica de colector abierto para interactuar con las líneas de "datos" bidireccionales de los chips I2C Flash EEPROM
  • un oscilador
  • algún tipo de entrada (pulsadores e interruptores; tal vez algo que pueda simular un teclado hexadecimal)
  • algún tipo de salida (LED, tal vez prefijados en pantallas de 7 segmentos; tal vez un controlador HD44780 LCD simulado; tal vez una pantalla de mapa de bits simulada como se usa en N & S Construyendo una computadora moderna desde los primeros principios ).

"Diseño jerárquico" es agradable. Sería bueno si los usuarios pudieran colocar un cuadro etiquetado como "sumador de 32 bits" en un esquema como si fuera un solo chip, luego abrir ese sumador para construir su implementación como varios chips ALU "74181", y luego abrir ese ALU para construir su implementación como varios chips más simples.

Tal vez podría tomar el enfoque extremo de N & S y construir todo a partir de las puertas NAND ideales (excepto las cosas mencionadas anteriormente que no se pueden construir a partir de las puertas NAND ideales). Si sus usuarios desean algún otro chip digital 74xxx, podrían construirlo ellos mismos a partir de puertas NAND y buffers de tres estados y buffers de colector abierto.

Sería bueno si su simulador pudiera advertir a las personas sobre los circuitos que podrían producir fallos o transiciones de estado inesperadas. En otras palabras, en lugar de simplemente asumir un retardo de entrada a salida en particular, Deseo que el simulador verifique que el diseño sea lo suficientemente robusto como para manejar el rango completo de posibles retardos de puerta de entrada a salida y demoras de línea de transmisión de salida a entrada (retraso cero a retraso máximo), incluso si hoy en día usamos un chip rápido aquí y un chip lento allí, y mañana usaremos un chip lento aquí y un chip rápido allí. Me parece mucho más útil que simular con precisión los retrasos exactos de un chip en particular a una temperatura en particular.

Creo que seguir con la lógica digital ideal, con las excepciones anteriores (ignorar temporalmente la disipación de energía, el diseño de PCB, etc.) ya será bastante útil, lo suficiente como para hacer un diseño de alto nivel de CPU completas.

    
respondido por el davidcary
3

Personalmente, me resultaría más útil trabajar con puertas en lugar de chips específicos. A menos que vaya a modelar las características eléctricas exactas de los chips (y eso significa trabajar como analógico), entonces no tiene sentido especificar chips específicos.

Simplemente emule las puertas y los bloques lógicos de la puerta principal combinados sin preocuparse por nombres y números de chips específicos.

    
respondido por el Majenko
2

De la pregunta no queda claro qué comportamiento simulará su programa: ¿simples ecuaciones de lógica combinatoria? ¿Lógica combinatoria y registrada? ¿Sincronización? ¿Requerimientos de energía? ¿Márgenes de ruido? ¿Gestión del árbol del reloj?

  

¿Cuál es una estimación aproximada del no total? de ICs admitidos en un software (Sourcforge Project Home) gratuito y de código abierto, esperado por usted?

Para el trabajo de diseño profesional, espero tener una selección de miles de partes y la opción de ampliar la biblioteca con nuevas partes según sea necesario. Recuerde que cada parte vendida por cada proveedor de circuitos integrados tiene algún mercado, un espacio de diseño donde fue diseñado para ser el mejor IC para ese propósito, por lo que quienquiera que esté haciendo el diseño que necesita ese IC es un usuario potencial para su herramienta de simulador, pero no si la herramienta no es compatible con ese IC.

Obviamente, a los estudiantes les puede servir mejor una selección mucho más limitada, correspondiente a lo que han aprendido en clase (pero también, diferentes cursos cubrirán material diferente).

  

Nombre alguno específico, IC (esencial / recomendado)

Para diseños lógicos simples, incluiría todas las puertas básicas (y, o, nand, ni, xor, xnor), flip-flops básicos (D, T, JK), más funciones comunes comunes (mux, demux, shift shift, counter, ram, ALU, ...)

Al ir más allá de las puertas discretas, ampliaría mucho su audiencia si incluyera las funciones equivalentes a medida que se implementan en varios CPLD y FPGA.

Además, recuerde que para la mayoría de los circuitos que usan flip-flops, necesitará tener algún tipo de fuente de reloj disponible. Muchos sistemas necesitarán varios relojes, y los diseñadores de esos

  

¿Solo el IC digital puede modelar un gran no. de circuito, o se requieren elementos analógicos junto?

Sus usuarios seguramente necesitarán algún tipo de circuito de fuente de reloj. Los circuitos de gestión de reloj PLL también son muy importantes en muchos sistemas digitales.

Para simular circuitos que utilizan la lógica de AND Y de drenaje abierto, deberá incluir resistencias pull-up de valores arbitrarios y (para simular el tiempo) diferentes cargas capacitivas.

Para simular la sincronización del circuito, sería muy útil tener componentes que representen los retrasos de la línea de transmisión entre chips, así como los efectos de las cargas capacitivas (parásitas o intencionales).

  

Es correcto nombrar IC con la misma función (como XOR) pero diferentes paquetes (como W, N, D, etc.), diferentes tipos (como LS, S), diferentes fabricantes como un solo nombre (como IC 7486)

     

IC 7400 & IC 7401 hace el mismo trabajo, así que está bien si me salto 7401

Para responder 4 & 5 juntos, realmente depende de tus metas. Para simular una funcionalidad lógica, puede omitir algunos IC o paquetes, o simplemente hacer que un modelo se pueda usar con varios nombres.

Si desea que los números de pines en el dibujo de su programa coincidan con lo que el usuario colocará en una placa de pruebas o PCB, deberá tener diferentes símbolos de dibujo para diferentes paquetes y tal vez para diferentes fabricantes (lo recuerdo) que en su época Motorola tenía una serie lógica 74xx que era totalmente compatible funcionalmente pero que usaba asignaciones de pin totalmente diferentes, por ejemplo).

Si incluye un comportamiento de tiempo, deseará que cada chip tenga un retraso de propagación distinto, tiempo de subida y bajada, tiempo de configuración y de espera, etc.

    
respondido por el The Photon
1

Tengo que admitir que no puedo entender tu pregunta. Sin embargo, me pregunto por qué tienes que usar IC como 74XX. Ya que dice que su programa es solo digital, creo que un CPLD / FPGA a pequeña escala es más adecuado.

    
respondido por el user1012014

Lea otras preguntas en las etiquetas