Langage para declarar una placa de circuito

3

Estoy buscando un idioma que pueda declarar una placa de circuito y luego dibujarlo en forma esquemática o lo que sea. ¿Puedes decirme si tal cosa existe?

El "lenguaje" que la gente usa para diseñar tableros de circuitos es una herramienta gráfica como Eagle, KiCad, Altium o cualquiera de los paquetes de EDA plétora enlace . Estoy buscando crear un archivo de texto, que se procesará y generará como salida uno de los formatos de archivo EDA.

Explicación detallada:

Por ejemplo, en el mundo de la infraestructura de la nube de computadoras, hay varios lenguajes declarativos que se utilizan para definir recursos y crearlos. HashiCorp Terraform, AWS CloudFormation, OpenStack HOT, Azure ARM Templates, y más.

Por ejemplo, si necesito crear un circuito que tenga una batería, un receptor IR, un IR transmitido y un Arduino. Usando este lenguaje, solo definiría qué pin de cada dispositivo debe estar conectado a qué otro pin, y la salida del lenguaje puede ser una representación gráfica del circuito. Como si lo hubiera diseñado en KiCad o en algún otro EDA.

Un ejemplo para la resolución automática de dependencias es Graphviz. Por ejemplo, al utilizar Graphviz puedo crear un archivo de texto donde se enumeran todos los componentes, junto con todas las dependencias y crea una representación gráfica de esto en algún formato de gráficos (svg, png, ...).

Ejemplo de archivo de notación de puntos de Graphviz enlace

Cuando se renderiza se ve así enlace

    
pregunta Evgeny

2 respuestas

6

Hay un montón (docenas) de formatos comunes para listas de red.

Las listas de red describen las conexiones lógicas entre los pines de los componentes y son lógicamente equivalentes a un esquema (menos las notas y otra información, como las reglas que se comunican en el esquema, muchas de las cuales son realmente necesarias para crear un PCB óptimo a partir del esquema). ).

Dibujar un buen esquema de lectura humana es una forma de arte. Por lo que sé, nadie se ha esforzado en intentar crear excelentes esquemas de forma automática. No veo que sea imposible; hay una serie de reglas generales, y el aprendizaje automático podría absorber todos los muchos ejemplos (suponiendo que supiera cuáles eran atroces) y aprender de ellos.

Es posible crear una PCB sin un esquema. El esquema es solo para que los humanos lo entiendan, pero la lista de conexiones no necesariamente contiene información sobre cómo manejar las conexiones de alimentación, los pares diferenciales, los conductores de impedancia controlada, los anillos de protección, los protectores, las piezas. que necesitan estar cerca y así sucesivamente. Si alguna vez ha visto una PCB colocada por un martillo que no entiende los componentes eléctricos, entenderá: los conductores de 150 mm (6 ") corren hacia un cristal de reloj, etc. Cuando comienza a diseñar una PCB, generalmente ve las partes (que tienen que ser 'colocadas') y las siguientes conexiones de una rata que representan gráficamente la lista de redes.

En general, la colocación automática y los esquemas (he visto algunos ejemplos de esquemas generados por máquina) son los más difíciles para la automatización. La autorouting es útil en algunos casos, aunque los humanos todavía tienden a hacerlo mejor, hasta ahora, con la asistencia de la máquina que impone reglas predeterminadas, tales como espacios por red, ancho de traza por red, etc.

    
respondido por el Spehro Pefhany
2

Comencé a trabajar en algo en esta línea para hacer proyectos con muchos LED en grillas: permitir diferencias sensibles para el control de versiones, permitiendo la inclusión de módulos y macros para generar múltiplos y repeticiones. Esto no se basó en la lista de redes, sino en la especificación de pistas directamente de pin a pin similar al logotipo. Lo tenía cuando se cambiaba el texto, pero para cualquier cosa no trivial, necesitarías tener una interacción bidireccional entre la representación y el texto, lo que se convierte en mucho más trabajo de lo que la herramienta me salvaría, y no lo hice. desea iniciar aún otro proyecto de editor de EDI de código abierto.

    
respondido por el Pete Kirkham

Lea otras preguntas en las etiquetas