The Electronics Project
इलेक्ट्रॉनिक्स की अवधारणाओं को फिर से देखना और एक प्रोसेसर बनाने का प्रयास। एक अध्ययन रिपॉजिटरी। लक्ष्य पीसीबी डिज़ाइन और डिजिटल सर्किट सीखना है। वेरिलॉग, आर्डिनो, ईएसपी32 और रास्पबेरी पाई।
इलेक्ट्रॉनिक्स प्रोजेक्ट
एक अध्ययन रिपॉजिटरी। लक्ष्य पीसीबी डिज़ाइन और डिजिटल सर्किट सीखना है। वेरीलॉग, आर्डुइनो, ईएसपी32 और रास्पबेरी पाई। जैसे-जैसे मैं आगे बढ़ूंगा, मैं अपनी प्रगति यहाँ पोस्ट करता रहूँगा।
अंतिम उद्देश्य एक वास्तविक सर्किट या पीसीबी प्रिंट करना है।
वहाँ तक पहुँचने के लिए, मैं पहले मूल बातों पर काम कर रहा हूँ। Arduino स्केच भौतिक घटकों: बटन, एलईडी, सिग्नल पढ़ना, इस तरह की चीजों के साथ सहज होने के लिए हैं। Verilog पक्ष डिजिटल लॉजिक को और गहराई से समझने के लिए है — कि रजिस्टर, काउंटर और मेमोरी जैसे बुनियादी बिल्डिंग ब्लॉक्स वास्तव में एक साथ कैसे काम करते हैं।
प्रोसेसर इसलिए बनाया जा रहा है ताकि मैं सबसे दर्दनाक तरीके से सीख सकूँ कि इलेक्ट्रॉनिक्स सबसे निचले स्तर पर कैसे काम करते हैं।
क्योंकि जाहिर है, पीड़ा अच्छी होती है।
SAP-1 — जितना संभव हो उतना सरल कंप्यूटर (संदर्भ): https://karenok.github.io/SAP-1-Computer/
संरचना
arduino/ Arduino पर भौतिक हार्डवेयर प्रयोग
processor/ वेरिलॉग मॉड्यूल — डिजिटल लॉजिक प्रयोग
प्रोसेसर (वेरिलॉग)
डिजिटल का उपयोग करके बनाया और सिम्युलेट किया गया। पूरी स्कीमैटिक main.dig में है।
| मॉड्यूल | फ़ाइल | विवरण |
|---|---|---|
| 8-बिट एडर | adder_8bit.v |
कैरी इन/आउट के साथ दो 8-बिट मानों को जोड़ता है |
| 8-बिट रजिस्टर | register_8bit.v |
राइट इनेबल और सिंक्रोनस रीसेट के साथ क्लॉक्ड रजिस्टर |
| प्रोग्राम काउंटर | program_counter.v |
प्रत्येक क्लॉक टिक पर एक बढ़ाता है, स्टॉप और रीसेट का समर्थन करता है |
| मेमोरी | memory_256x8.v |
256-बाइट सिंक्रोनस रैम |
| 8-से-1 मक्स (Mux) | mux_8_to_1.v |
8 डेटा लाइनों में से एक का चयन करता है |
| 8-बिट काउंटर | counter_8bit.v |
प्रत्येक क्लॉक पर गिनती बढ़ाता है, लोड और रीसेट के साथ |
| एक बार करें | do_once.v |
वन-शॉट लैच — एक सिग्नल को ठीक एक बार जाने देता है |
Arduino स्केचेज़
1. ऑफ-ऑन डिवाइस (पूरी तरह से बेकार)
विवरण:
एक भौतिक बटन और दो एलईडी (लाल और नीली) वाला एक बुनियादी टॉगल डिवाइस।
प्रवृत्ति:
- जब पावर चालू की जाती है, तो लाल एलईडी जल उठती है।
- बटन दबाने पर लाल एलईडी बंद हो जाती है और नीली एलईडी चालू हो जाती है।
- बटन छोड़ने पर स्थिति वापस आ जाती है।
सर्किट: पिन 9 (INPUT_PULLUP) पर बटन, पिन 2 पर नीली एलईडी, पिन 7 पर लाल एलईडी।
मेरे पूर्वज इस उपकरण के आविष्कार के क्षण का इंतजार कर रहे थे। और यहाँ हम आखिरकार हैं।
2. बटन परीक्षण
एक पिन को हाई सेट करता है। बस इतना ही।
3. रीड टेस्ट
एक पिन को पढ़ता है और मान को सीरियल पर प्रिंट करता है। बुनियादी परिचयात्मक चीज़ें।
4. ट्रैफ़िक नियंत्रण
विवरण:
एक 3-स्थिति वाला स्वचालित ट्रैफिक सिग्नल। टाइमर पर हरा → पीला → लाल चक्रों में बदलता है। बटन इंटरप्ट करता है और तुरंत लाल दिखाने के लिए मजबूर करता है (पैदल यात्री क्रॉसिंग)।
व्यवहार:
- हरा (स्थिति 0): हरी एलईडी 5 सेकंड के लिए जलती है, 2 चक्र (कुल 10 सेकंड) चलाती है, फिर पीले रंग में बदल जाती है।
- पीला (स्थिति 1): लाल + हरी एलईडी जलती है (पीले रंग में मिलकर), बज़र 2 सेकंड तक बीप करता है, फिर लाल रंग पर आगे बढ़ता है।
- लाल (स्थिति 2): लाल एलईडी 5 सेकंड के लिए जलती है, 2 चक्र (कुल 10 सेकंड) चलाती है, फिर हरे रंग पर वापस आ जाती है।
- किसी भी समय बटन दबाने पर: 500ms के डेबाउंस के साथ सीधे लाल रंग पर चला जाता है।
- बटन दबाने की जाँच देरी के बीच (
responsiveDelay) में की जाती है, इसलिए सिग्नल हमेशा बाधित किया जा सकता है।
सर्किट: पिन 9 पर बटन (INPUT_PULLUP), पिन 2 पर लाल एलईडी, पिन 3 पर हरी एलईडी, पिन 4 पर नीली एलईडी, पिन 7 पर बज़र।
