एक एचडीएल में सीपीयू के पठनीय और शैक्षिक कार्यान्वयन


37

क्या आप वीएचडीएल या वेरिलोग में सीपीयू के एक पठनीय और शैक्षिक कार्यान्वयन की सिफारिश कर सकते हैं? अधिमानतः कुछ अच्छी तरह से प्रलेखित।

पीएस मुझे पता है कि मैं देख सकता हूं opencores, लेकिन मुझे उन सामानों में विशेष रूप से दिलचस्पी है जिन्हें लोगों ने वास्तव में देखा और दिलचस्प पाया।

पीएस 2। बेकार टैग के बारे में क्षमा करें, लेकिन एक नए उपयोगकर्ता के रूप में मैं नए लोगों को नहीं बना सकता


1
यहाँ एक महान ब्लॉग एक आदमी से एक CPLD के लिए एक छोटे से सीपीयू को बनाने का प्रयास है stevechamberlin.com/cpu
टोबी Jaffey

2
एचडीएल ⊕ पठनीय, दुर्भाग्य से।
कॉनर वुल्फ

@ जोबी टैफी: लिंक टूट गया है, क्या यह आपका मतलब है? bigmessowires.com/cpu-in-a-cpld
ब्रायन कार्लटन

mor1kx , OpenRISC 1000 का एक वेरिलॉग कार्यान्वयन। इसमें कुछ टिप्पणियां हैं। OpenRISC का यह लाभ है कि इसमें एक टूलकिन है लेकिन फिर भी यह अपेक्षाकृत सरल है।
जानूस ट्रॉल्सन

जवाबों:


18

सर्किट सेलर मैगजीन, बिल्डिंग आरआईएससी सिस्टम फॉर एफपीजीए में इस लेख पर आपने बहुत पहले लिखा था ।

हैप्पी हैकिंग!


2
मेरा डिज़ाइन कॉन पेपर भी देखें, एक साधारण FPGA- ऑप्टिमाइज़्ड RISC CPU और सिस्टम-ऑन-ए-चिप [ fpgacpu.org/papers/soc-gr0040-paper.pdf] , जो FPGA CPU के लिए एनोटेट वेरिलॉग सोर्स कोड प्रस्तुत करता है। और SoC।
जान ग्रे

एक मृत लिंक: /
अर्लज़

अनुगामी हटाएं]?
जान ग्रे

7

इस पुस्तक को प्राप्त करें , मुझे पहला संस्करण मिला है। कुछ साल पहले मैंने अपने CPU को थोड़े फ्लेक्स 10K10 FPGA में एक पीसीबी I पर डिज़ाइन किया था, जिसमें कुछ पुश बटन और एक 7-सेगमेंट में डेटा दर्ज करने और परिणाम प्रदर्शित करने के लिए डिस्प्ले था।


7

बहुत कुछ इस बात पर निर्भर करता है कि कोड का अध्ययन करने का आपका उद्देश्य क्या है? दूसरे शब्दों में, आपके लिए दिलचस्प अर्थ क्या है ?

यदि आप यह देखने के लिए कर रहे हैं कि CPU में कितनी जटिलता हो सकती है, तो आप OpenSPARC आर्किटेक्चर के स्रोत का अध्ययन करने में अधिक रुचि रख सकते हैं । इसमें गोता लगाने में लंबा समय लगेगा लेकिन आपको एक जटिल माइक्रोप्रोसेसर के समग्र बड़े चित्र दृश्य के लिए सराहना मिलेगी ।

फिर, यदि यह विशिष्ट कंप्यूटर माइक्रोआर्किटेक्चर सुविधाओं का अध्ययन करना है, तो आप कुछ सीधी आरआईएससी मशीनों जैसे एईएमबी , एक छोटे और तेज बहु-थ्रेडेड 32-बिट आरआईएससी प्रोसेसर (बेशर्म प्लग) को देखना चाहेंगे ।

फिर, यदि आप चाहते हैं कि अच्छी कोडिंग शैली और परंपराएं सीखें, तो LEON2 डिज़ाइन अच्छी VHDL कोडिंग शैली सीखने के लिए एक अच्छी जगह है।

हालांकि, अगर प्रोसेसर का अध्ययन करने का आपका उद्देश्य यह है कि आप खुद को कैसे डिजाइन करें, तो आपका सबसे अच्छा दांव सरल 8-बिट मशीनों में से एक के साथ शुरू होगा (नेट पर कई AVR, 8051, PIC उदाहरण हैं)।


बेशर्म प्लग - एईएमबी - मेरा अपना " लिटलस्टर प्रोसेसर जो कर सकता था।"
सेब्रॉन

5

आप कुछ फोर्थ सीपीयू डिजाइनों की जांच करने की कोशिश कर सकते हैं। फोर्थ एक सरल प्रोग्रामिंग भाषा है जिसका विनिर्देश और कार्यान्वयन दो स्टैक स्टैक के माध्यम से परिभाषित किया गया है (डेटा के लिए एक और रिटर्न एड्रेस के लिए एक)।

कई छोटे VHDL / वेरिलॉग प्रोसेसर स्वतंत्र रूप से उपलब्ध हैं:

कुछ और लिंक यहाँ देखे जा सकते हैं:

पुनश्च। फोर्थ एक काफी पुरानी और अस्पष्ट भाषा होने के बावजूद कई आधुनिक स्टैक-आधारित वीएम (जावा, फास्ट जावास्क्रिप्ट वीएम) में समान स्तर की डिज़ाइन है, इसलिए इसके बारे में सीखना फलदायी हो सकता है।


2

PicoBlaze अच्छा है, हालांकि यह विक्रेता-स्वतंत्र VHDL में उपलब्ध नहीं है।

कुछ अन्य विकल्प हैं:

  • वेरिलोग में एक Picoblaze क्लोन (आपको इसे आसानी से खोजने में सक्षम होना चाहिए)। यकीन नहीं होता है अगर यह बनाए रखा है
  • Gumnut एक हालिया Ashenden पुस्तक द्वारा समर्थित एक अच्छा छोटा कोर है।
  • थैकर द्वारा छोटी रजिस्टर मशीन / कंप्यूटर (वेरिलॉग की लगभग 200 लाइनें)
  • जन ग्रे की XSoC / XR16 (पहले से ही यहाँ उल्लेख किया गया है)

इसके अलावा, यदि आप अपने CPU के लिए एक कंपाइलर की तलाश कर रहे हैं, तो 16-बिट CPU के लिए एक प्राप्त करना सबसे अधिक संभावित है। एक बार सी-लैंग्वेज से पोडब्लॉज़ तक पॉडरिको का कंपाइलर था लेकिन इसे वेब से हटा दिया गया है।


यदि आप अपनी सूची से पहले एक रिक्त रेखा शामिल करते हैं तो आपका उत्तर बहुत बेहतर स्वरूपित होगा।
लौंगस्टोएल

1

Xilinx PicoBlaze प्रोसेसर पर आपकी नज़र हो सकती है । यह न्यूनतम 8-बिट एम्बेडेड माइक्रोकंट्रोलर है, और स्रोत कोड उपलब्ध होना चाहिए।


1
हालांकि यह सभी संरचनात्मक VHDL है, इसलिए एक शिक्षण उपकरण के रूप में महान नहीं है
मार्टिन थॉम्पसन

0

बहुत देर से, हालांकि मैं एक छोटा सा जवाब प्रदान करता हूं।

जेरूसलम विश्वविद्यालय से Nand2Tetris नाम का एक कोर्स है , यह कोर्स भी प्रांगण में मौजूद है, मैंने उस पाठ्यक्रम में उनके द्वारा बनाए गए कंप्यूटर का निर्माण किया। मैंने योजना को उस भाषा में कार्यान्वित किया जो स्वयं को देखने में सक्षम है कि कंप्यूटर कम से कम विस्तार से कैसे काम करता है। और मैं सफल हुआ, वे जावा में बनाया गया सिम्युलेटर वह सब कुछ नहीं कर सकते जो मैं देखना चाहता था।

https://github.com/alinsoar/little-computer

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