È possibile disegnare circuiti attraverso il codice?

user37421 10/29/2017. 5 answers, 4.448 views
circuit-design programming drawing

C'è un modo migliore non scrivendo file netlist. qualcosa di simile a:

Define Battery1 As a Battery
Define Resistor1 As a Resistor

Connect Battery1 First Terminal to Resistor1 Second Terminal
Connect Resistor1 First Terminal to Battery1 Second Terminal 

EDIT:

Trovo le risposte abbastanza utili. Sarà grande se esiste un modo per simulare il circuito prodotto dal codice.

5 Comments
5 The Photon 10/29/2017
FWIW, il tuo codice di esempio mi sembra una netlist. Definisce solo un paio di parti (con presumibilmente una libreria che racconta l'utensile quanti terminali ognuno ha) e poi dice quali terminali sono collegati tra di loro. Se l'hai usato un po 'puoi anche trovare che sia più facile essere in grado di nominare nodi e collegare i terminali ai nodi piuttosto che ad altri terminali.
3 whatsisname 10/29/2017
C'è un ampio margine tra "è possibile" e "è utile" per molti soggetti.
3 Maciej Piechotka 10/29/2017
Penso che tu possa guardare HDL. Mentre per lo più descrivono circuiti digitali non sono tecnicamente limitati a tali (credo che Verilog abbia un supporto per loro). Come notato da @ThePhoton ciò che hai mostrato sembra un netlist, che è quello che di solito compilano.
2 The Photon 10/30/2017
La ragione per cui ci vuole tempo per pensare al modo migliore per disegnare è che devi avere una buona comprensione del circuito e come rendere chiara la sua funzione alle persone che guardano il disegno. Nessuno di questi è roba che i computer sono buoni, quindi chiedere a un computer di farlo per te sta chiedendo problemi.
1 The Photon 10/30/2017
Se stai pensando di usare questa descrizione come input nello strumento di layout del pcb, quindi non deve essere utilizzato da un lettore umano, quindi cosa userai come documentazione per qualcuno (che) che guarda il circuito dopo è costruito o modifica il progetto in un secondo momento. Se si utilizza l'introduzione schematica, è essenzialmente la scrittura della documentazione e l'utilizzo come input nello strumento di layout. Ora sapete che il tuo layout veramente corrisponderà alla documentazione.

5 Answers


nidhin 10/29/2017.

Se hai familiarità con \ $ \ LaTeX \ $, puoi usare circuitikz per disegnare dei circuiti piacevoli scrivendo il codice.

immettere qui la descrizione dell'immagine

Esempio .
Altri esempi

5 comments
4 John 10/30/2017
Per aggiungere questo - come altri hanno detto disegnare un buon schema richiede qualche intuizione umana. Tuttavia, se si stanno progettando un sacco di circuiti simili, usando laTeX e circuitikz vi permetterà di costruire un layout di un modello e di personalizzarlo con specifiche. È un approccio che utilizzo per produrre materiali di corso.
2 Loong 10/30/2017
Lo spazio mancante tra il numero e l'unità sembra terribile.
nidhin 10/30/2017
@Loong Puoi sempre mettere lo spazio tra numeri e unità se vuoi. \ or \, può aggiungere spazio nell'ambiente di matematica del lattice
1 chrylis 10/31/2017
@Loong Questo è apparentemente un problema di localizzazione. Come americano, sembra sempre bizzarro avere spazio extra casuale tra numeri e unità.
1 awjlogan 10/31/2017
@chrylis Non è un problema di localizzazione, è ISO 80000 specificato e dovrebbe essere utilizzato esclusivamente.

The Photon 10/29/2017.

Molti programmi possono disegnare uno schema. Nessuno che conosco può disegnare un buon schema: quello che enfatizza le informazioni più importanti e disegna il circuito in modo chiaro e facile da capire.

Se stai solo cercando un linguaggio di descrizione hardware (nessun output grafico), VHDL e Verilog sono ampiamente utilizzati per definire i circuiti digitali da implementare negli ICs e possono essere utilizzati anche per il disegno a livello di scheda.

5 comments
Shamtam 10/30/2017
Verilog-A può essere utilizzato per descrivere e modellare / simulare circuiti analogici, anche se non sono a conoscenza di simulatori non commerciali.
supercat 10/30/2017
Ho progettato alcune schede in cui è stato più facile descrivere le interconnessioni in modo programmatico rispetto a uno schema; Ho usato un programma per generare un netlist e poi caricato nel software PCB. Se un editor schematico potrebbe importare una netlist e mostrare un ratsnest per connessioni che non avevano ancora fili "reali" o etichette nette esplicite, potrebbe essere utile in tali casi, almeno per le parti dello schema dove i fili reali fanno più senso di "fili d'aria".
The Photon 10/30/2017
@Shamtam, ho usato Veriolog A, ma solo come linguaggio di simulazione. Ci sono sistemi che possono sintetizzare un circuito da una descrizione di Verilog A?
Shamtam 10/30/2017
@ThePhoton Non quello che so. Suppongo che il mio uso del termine "descrivere" potrebbe essere fuorviante in questo senso.
The Photon 10/30/2017
@Shamtam, non mi preoccuperei della parola. Dopo tutto è un linguaggio di description hardware. Descrive solo la funzione anziché l'implementazione.

awjlogan 10/30/2017.

Check out SKiDL ( https://github.com/xesscorp/skidl ), questo è lungo le linee che stai pensando.

Modifica (come richiesto): SKiDL consente la descrizione procedurale di tutti i circuiti (piuttosto che digitale), invece di immettere graficamente il tuo schema. L'output netlist può quindi essere importato nel software di layout. Esegue anche controlli ERC ed è estensibile. Ciò significa, ad esempio, che si potrebbe scrivere un filtro una volta e poi riutilizzarlo in diversi progetti piuttosto che disegnare ogni volta. Scritto in Python, con tutto il supporto che viene accompagnato da quello.

1 comments
awjlogan 10/30/2017
Aggiunto un po 'di più informazioni.

Pete Kirkham 10/30/2017.

Il tuo esempio sembra molto simile a modelica , una lingua orientata agli oggetti per la simulazione basata sulla creazione di blocchi e connessioni tra i blocchi.

Un esempio che utilizza la libreria dei componenti elettrici (da maplesoft.com )

encapsulated model ChuaCircuit "Chua's circuit, ns, V, A"
  import Modelica.Electrical.Analog.Basic;
  import Modelica.Electrical.Analog.Examples.Utilities;
  import Modelica.Icons;
  extends Icons.Example;

  Basic.Inductor L(L=18);
  Basic.Resistor Ro(R=12.5e-3);
  Basic.Conductor G(G=0.565);
  Basic.Capacitor C1(C=10, v(start=4));
  Basic.Capacitor C2(C=100);
  Utilities.NonlinearResistor Nr(
    Ga(min=-1) = -0.757576,
    Gb(min=-1) = -0.409091,
    Ve=1);
  Basic.Ground Gnd;
equation 
  connect(L.p, G.p);
  connect(G.n, Nr.p);
  connect(Nr.n, Gnd.p);
  connect(C1.p, G.n);
  connect(L.n, Ro.p);
  connect(G.p, C2.p);
  connect(C1.n, Gnd.p);
  connect(C2.n, Gnd.p);
  connect(Ro.n, Gnd.p);
end ChuaCircuit; 

Anche se è possibile generare uno schema dal modello, normalmente questo viene fatto in una GUI che annota i componenti con informazioni di posizione e orientamento.


Jonas Stein 10/31/2017.

Cirkuit è un editor per convertire una semplice descrizione del testo in uno schema elettrico. Fornisce un insieme di macro M4 per simboli elettrici.

Può essere usato insieme a circuitikz suggerito da nidhin . circuitikz utilizza il più moderno sistema grafico pgf / TikZ . La comunità stackexchange ha utenti molto attivi di cirkuitikz , ma ci sono più soluzioni in TeX .

Fonte: https://ece.uwaterloo.ca/~aplevich/Circuit_macros/html/quick.png

Immagine da https://ece.uwaterloo.ca/~aplevich/Circuit_macros/html/examples.html .


HighResolutionMusic.com - Download Hi-Res Songs

1 BLACKPINK

Kiss And Make Up flac

BLACKPINK. 2018. Writer: Soke;Kny Factory;Billboard;Chelcee Grimes;Teddy Park;Marc Vincent;Dua Lipa.
2 Martin Garrix

Waiting For Tomorrow flac

Martin Garrix. 2018. Writer: Pierce Fulton;Mike Shinoda;Martijn Garritsen;Brad Delson.
3 Martin Garrix

Access flac

Martin Garrix. 2018. Writer: Martin Garrix.
4 John Legend

Written In The Stars flac

John Legend. 2018. Writer: Kiana Brown;Santoy;Kevin White;Mike Woods;MZMC;The Heavy Group;Rice N' Peas.
5 Martin Garrix

Yottabyte flac

Martin Garrix. 2018. Writer: Martin Garrix.
6 Alan Walker

Diamond Heart flac

Alan Walker. 2018. Writer: Alan Walker;Sophia Somajo;Mood Melodies;James Njie;Thomas Troelsen;Kristoffer Haugan;Edvard Normann;Anders Froen;Gunnar Greve;Yann Bargain;Victor Verpillat;Fredrik Borch Olsen.
7 Cardi B

Taki Taki flac

Cardi B. 2018. Writer: Bava;Juan Vasquez;Vicente Saavedra;Jordan Thorpe;DJ Snake;Ozuna;Cardi B;Selena Gomez.
8 Bradley Cooper

Shallow flac

Bradley Cooper. 2018. Writer: Andrew Wyatt;Anthony Rossomando;Mark Ronson;Lady Gaga.
9 Post Malone

Sunflower flac

Post Malone. 2018. Writer: Louis Bell;Billy Walsh;Carter Lang;Swae Lee;Post Malone.
10 Dyro

Latency flac

Dyro. 2018. Writer: Martin Garrix;Dyro.
11 Zara Larsson

Ruin My Life flac

Zara Larsson. 2018. Writer: Delacey;Michael Pollack;Stefan Johnson;Jordan Johnson;Sermstyle;Jackson Foote.
12 ZAYN

Fingers flac

ZAYN. 2018. Writer: Zayn Malik;Alex Oriet;David Phelan.
13 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
14 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.
15 Sia

I'm Still Here flac

Sia. 2018. Writer: Sia.
16 Dewain Whitmore

Burn Out flac

Dewain Whitmore. 2018. Writer: Dewain Whitmore;Ilsey Juber;Emilio Behr;Martijn Garritsen.
17 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
18 Mako

Rise flac

Mako. 2018. Writer: Riot Music Team;Mako;Justin Tranter.
19 Blinders

Breach (Walk Alone) flac

Blinders. 2018. Writer: Dewain Whitmore;Ilsey Juber;Blinders;Martin Garrix.
20 Rita Ora

Let You Love Me flac

Rita Ora. 2018. Writer: Rita Ora.

Related questions

Hot questions

Language

Popular Tags