क्या कोड के माध्यम से सर्किट खींचना संभव है?


17

वहाँ एक बेहतर तरीका है netlist फ़ाइलें लिखने से नहीं है। कुछ इस तरह:

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

संपादित करें:

मुझे उत्तर काफी मददगार लगे। यदि कोड द्वारा निर्मित सर्किट को अनुकरण करने का एक तरीका है तो यह बहुत अच्छा होगा।


5
FWIW, आपका उदाहरण कोड मुझे एक netlist की तरह लगता है। यह बस कुछ हिस्सों को परिभाषित करता है (संभवतः एक पुस्तकालय उपकरण को बताता है कि प्रत्येक के पास कितने टर्मिनल हैं) और फिर कहते हैं कि कौन से टर्मिनल एक दूसरे से जुड़े हुए हैं। यदि आप इसे थोड़ा सा उपयोग करते हैं, तो आप यह भी पा सकते हैं कि नोड्स को नाम देना और टर्मिनलों को अन्य टर्मिनलों के बजाय नोड्स से कनेक्ट करना आसान है।
फोटॉन

3
कई विषयों के लिए "क्या यह संभव है" और "क्या यह उपयोगी है" के बीच एक विस्तृत खाई है।
whatsisname 18

3
मुझे लगता है कि आप एचडीएल को देख रहे होंगे। जबकि वे ज्यादातर डिजिटल सर्किट का वर्णन करते हैं, वे तकनीकी रूप से इस तरह तक सीमित नहीं हैं (मुझे लगता है कि वेरिलॉग को उनके लिए कुछ समर्थन है)। जैसा कि @ThePhoton ने बताया है कि आपने जो दिखाया है वह एक नेटलिस्ट की तरह दिखता है, जो कि वे आमतौर पर संकलन करते हैं।
मैकिज पीचोटका

2
इसे खींचने के सबसे अच्छे तरीके के बारे में सोचने में समय लगने का कारण यह है कि आपको सर्किट की अच्छी समझ होनी चाहिए, और ड्राइंग को देखने वाले लोगों को इसके कार्य को कैसे स्पष्ट किया जाए। इनमें से कोई भी ऐसा सामान नहीं है जो कंप्यूटर में अच्छा है, इसलिए कंप्यूटर को आपके लिए ऐसा करने के लिए कहना मुसीबत के लिए पूछ रहा है।
फोटॉन

1
यदि आप सोच रहे हैं कि आप इस विवरण का उपयोग पीसीबी लेआउट टूल के इनपुट के रूप में करेंगे, तो इसका मानव पाठक द्वारा उपयोग नहीं किया जाना है, तो आप सर्किट के बाद समस्या निवारण के लिए किसी के लिए प्रलेखन के रूप में क्या उपयोग करेंगे? यह बनाया गया है, या बाद में डिजाइन को संशोधित कर रहा है। यदि आप योजनाबद्ध प्रविष्टि का उपयोग करते हैं, तो आप अनिवार्य रूप से प्रलेखन लिख रहे हैं और लेआउट टूल के इनपुट के रूप में उपयोग कर रहे हैं। अब आप जानते हैं कि आपका लेआउट वास्तव में प्रलेखन से मेल खाएगा।
फोटॉन

जवाबों:


28

यदि आप L से परिचित हैं , आपकोड लिखकर अच्छे सर्किट बनाने केलिएसर्किटिकज़काउपयोग कर सकते हैं।एलटीएक्स

यहाँ छवि विवरण दर्ज करें

उदाहरण है
और ज्यादा उदाहरण


4
इसे जोड़ने के लिए - जैसा कि दूसरों ने कहा है कि एक अच्छी योजनाबद्ध ड्राइंग में कुछ मानव अंतर्ज्ञान की आवश्यकता होती है। हालाँकि, यदि आप बहुत सारे समान सर्किट बना रहे हैं, तो laTeX और सर्किटिकज़ का उपयोग करने से आप टेम्पलेट लेआउट का निर्माण कर सकते हैं और इसे बारीकियों के साथ अनुकूलित कर सकते हैं। यह एक दृष्टिकोण है जिसका उपयोग मैं पाठ्यक्रम सामग्री के उत्पादन में करता हूं।
जॉन

2
संख्या और इकाई के बीच लापता स्थान भयानक लग रहा है।
लूंग

@Long आप चाहें तो हमेशा संख्या और इकाइयों के बीच स्थान रख सकते हैं। \ या \,लेटेक्स गणित के वातावरण में स्थान जोड़ सकते हैं
nidhin

1
@Long यह स्पष्ट रूप से एक स्थानीयकरण मुद्दा है। एक अमेरिकी के रूप में, यह हमेशा संख्या और इकाइयों के बीच यादृच्छिक अतिरिक्त स्थान रखने के लिए विचित्र लगता है।
चिरलीस

1
@chrylis यह एक स्थानीयकरण मुद्दा नहीं है, यह आईएसओ 80000 निर्दिष्ट है और इसे विशेष रूप से उपयोग किया जाना चाहिए।
awjlogan

15

SKiDL ( https://github.com/xesscorp/skidl ) देखें, यह उन पंक्तियों के साथ है जो आप सोच रहे हैं।

संपादित करें (जैसा कि req'd): SKiDL ग्राफिकल रूप से आपके योजनाबद्ध में प्रवेश करने के बजाय सभी सर्किटों (केवल डिजिटल के बजाय) के प्रक्रियात्मक विवरण की अनुमति देता है। नेटलिस्ट आउटपुट को तब लेआउट सॉफ्टवेयर में आयात किया जा सकता है। यह ईआरसी चेक भी करेगा, और एक्स्टेंसिबल है। इसका मतलब है, उदाहरण के लिए, कि आप एक बार एक फिल्टर लिख सकते हैं और फिर इसे हर बार खींचने के बजाय विभिन्न परियोजनाओं में पुन: उपयोग कर सकते हैं। पायथन में लिखा गया, उस के साथ आने वाले सभी समर्थन के साथ।


थोड़ी और जानकारी जोड़ी।
ओजलोगन

अन्य पायथन योजनाबद्ध ड्राइंग विकल्प स्कीम्सड्रा और एलसीपी हैं
फोनिक्स

13

कई कार्यक्रम एक योजनाबद्ध आकर्षित कर सकते हैं। कोई भी जिसे मैं जानता हूं वह एक अच्छा योजनाबद्ध आकर्षित कर सकता है: एक जो सबसे महत्वपूर्ण जानकारी पर जोर देता है, और एक स्पष्ट और आसान तरीके से सर्किट को व्यवस्थित करता है।

यदि आप केवल हार्डवेयर विवरण भाषा (कोई आलेखीय योजनाबद्ध आउटपुट) नहीं खोज रहे हैं, तो VHDL और वेरिलॉग को ICs में कार्यान्वित होने के लिए (डिजिटल) सर्किट को परिभाषित करने के लिए व्यापक रूप से उपयोग किया जाता है और बोर्ड-स्तर के डिज़ाइन के लिए भी उपयोग किया जा सकता है।


वेरिलॉग-ए का उपयोग एनालॉग सर्किट का वर्णन और मॉडल / अनुकरण करने के लिए किया जा सकता है, साथ ही, हालांकि मुझे किसी भी गैर-वाणिज्यिक सिमुलेटर के बारे में पता नहीं है।
शामत

मैंने कुछ बोर्डों को डिज़ाइन किया है जहां एक योजनाबद्ध के साथ प्रोग्राम से इंटरकनेक्ट का वर्णन करना आसान था; मैंने एक नेटलिस्ट उत्पन्न करने के लिए एक कार्यक्रम का उपयोग किया और फिर इसे पीसीबी सॉफ्टवेयर में लोड किया। यदि एक योजनाबद्ध संपादक एक नेटलिस्ट आयात कर सकता है और उन कनेक्शनों के लिए एक रेनस्टेस्ट दिखा सकता है जिनके पास अभी तक "वास्तविक" तार या स्पष्ट नेट लेबल नहीं थे, तो ऐसे मामलों में मदद मिल सकती है, कम से कम योजनाबद्ध के हिस्सों के लिए जहां असली तार बने थे "हवा के तारों" की तुलना में अधिक समझदारी।
सुपरकैट

@ शतम, मैंने वेरोलोग ए का उपयोग किया है, लेकिन केवल एक अनुकार भाषा के रूप में। क्या ऐसी प्रणालियां हैं जो एक वेरिलोग ए विवरण से एक सर्किट को संश्लेषित कर सकती हैं?
फोटोन

@ ThePhoton नहीं कि मैं जागरूक हूँ। मुझे लगता है कि "वर्णन" शब्द का मेरा उपयोग उस अर्थ में भ्रामक हो सकता है।
शाम्टम

@ शतम, मैं इस शब्द की चिंता नहीं करूंगा। यह सब के बाद एक हार्डवेयर विवरण भाषा है। यह केवल कार्यान्वयन के बजाय फ़ंक्शन का वर्णन करता है।
फोटॉन

9

आपका उदाहरण बहुत कुछ मॉडलिका जैसा दिखता है , ब्लॉक बनाने और ब्लॉकों के बीच बंदरगाहों को जोड़ने के आधार पर सिमुलेशन के लिए एक वस्तु उन्मुख भाषा।

विद्युत घटकों के पुस्तकालय ( मेपल्सॉफ्ट डॉट कॉम से ) का उपयोग कर एक उदाहरण ,

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;

यद्यपि आप मॉडल से एक योजनाबद्ध उत्पन्न कर सकते हैं, आम तौर पर यह एक जीयूआई में किया जाता है जो स्थिति और अभिविन्यास जानकारी के साथ घटकों को एनोटेट करता है।


4

Cirkuit एक सरल पाठ विवरण को सर्किट आरेख में बदलने के लिए एक संपादक है । यह विद्युत प्रतीकों के लिए M4 मैक्रो का एक सेट प्रदान करता है ।

यह के साथ एक साथ इस्तेमाल किया जा सकता circuitikz जिसके द्वारा सुझाव दिया गया था nidhin । circuitikz अधिक आधुनिक pgf / TikZ ग्राफिक सिस्टम का उपयोग करता है। स्टैकएक्सचेंज समुदाय के पास cirkuitikz के बहुत सक्रिय उपयोगकर्ता हैं , लेकिन TeX में अधिक समाधान हैं ।

स्रोत: https://ece.uwaterloo.ca/~aplevich/Circuit_macros/html/quick.png

चित्र https://ece.uwaterloo.ca/~aplevich/Circuit_macros/html/examples.html से


3

PSTricks TeX उपयोगकर्ताओं के लिए एक और पुस्तकालय है। यह जटिल समीकरण जैसे जटिल गणितीय गणना भी कर सकता है।

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-eucl,pst-circ}
\psset
{
    dipolestyle=zigzag,
    labelangle=0,
    labeloffset=-.9,
    intensitylabeloffset=-.4,
    tensionstyle=pm,
    tensionoffset=.9,
    tensionlabeloffset=.9,
    %tensioncolor=red,
    %tensionlabelcolor=blue,
}
\begin{document}
\begin{pspicture}[showgrid=none](12,-12)
	\pstGeonode[PosAngle={135,90,45,0,-45,-90,-135,180,45}]
		(2,-2){A}
		(6,-2){B}
		(10,-2){C}
		(10,-6){D}
		(10,-10){E}
		(6,-10){F}
		(2,-10){G}
		(2,-6){H}
		(6,-6){I}
	%
	\resistor[intensitylabel=$i_1$,tensionlabel=$V_{HA}$](H)(A){$R_1$}
	\resistor[tensionlabel=$V_{AB}$](A)(B){$R_2$}
	\vdc[tensionlabel=$V_{BC}$](B)(C){$E_1$}
	\resistor[tensionlabel=$V_{CB}$](C)(D){$R_3$}
	%
	\resistor[intensitylabel=$i_2$,tensionlabel=$V_{HI}$](H)(I){$R_4$}
	\vdc[tensionlabel=$V_{ID}$](I)(D){$E_2$}
	%
	\resistor[intensitylabel=$i_3$,tensionlabel=$V_{HG}$](H)(G){$R_5$}
	\newSwitch[ison=true,tensionlabel=$V_{GF}$](G)(F){$S_2$}
	\wire(F)(E)
	\resistor[tensionlabel=$V_{DE}$,dipoleconvention=generator](E)(D){$R_6$}
	%
	\vdc[tensionlabel=$V_{FI}$,dipoleconvention=generator](I)(F){$E_3$}
	\newSwitch[intensitylabel=$i_4$,tensionlabel=$V_{BI}$,ison=false](B)(I){$S_1$}	
\end{pspicture}
\end{document}

यहाँ छवि विवरण दर्ज करें


2

हां। आप कोड के माध्यम से अपने सर्किट का वर्णन करने के लिए एचडीएल का उपयोग कर सकते हैं। आप वेरिलेटर, एक्सिलिनक्स या किसी अन्य सॉफ्टवेयर्स का उपयोग कर सकते हैं या आप https://www.edaplayground.com/ का उपयोग कर सकते हैं (जो आपके पीसी पर कुछ भी इंस्टॉल किए बिना ऑनलाइन काम करता है। )।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.