अन्तिम पटक मैले एक साधारण 1 16-बिट चार्ज चार्ज चार्ज प्रोसेसरको उद्देश्य देखें। यसलाई कागजातहरूमा थोरै सहयोगको आवश्यकता छ साथै हराइरहेको फाईल थियो, यद्यपि मैले एडए खेल मैदान भनिने इन्टरनेट उपकरणमा नि: शुल्क प्राप्त गर्न सक्थे। यस पटक, म तपाईंलाई कोड विवरणहरूको साथ लिनका साथ साथै सिमुलेशन चलाउने भनेर ठ्याक्कै लिन्छु।
तपाईं अघिल्लो प्रकाशनलाई सन्दर्भित गर्न चाहानुहुन्छ यदि तपाईंले यसलाई पहिले नै जाँच गर्नुभएन भने। रेखाचित्र साथै तालिकाले उच्चस्तरीय सिंहावलोकन प्रदान गर्दछ जुन तपाईंलाई मद्दत गर्दछ तपाईंले यस पोष्टमा छलफल गरिएका फाइलहरू बुझ्नुहुन्छ।
यदि तपाईं यो एक वास्तविक fpga मा वास्तव मा प्रोग्रारी गर्न चाहानु भएको छ भने, तपाईं केहि काम गर्न को लागी। मेमोरी पनि साथै दर्ता सुरुवात प्राधिकरण एक तरीकाले प्रदर्शन गरिएको छ जुन सिमुलेशनको लागि ठीक काम गर्दछ, तथापि केवल एक वास्तविक fpga मा काम गर्दैन। जे भए पनि, सुरू गरौं!
फाईल-द्वारा-फाईल
यदि तपाईंले प्रत्येक डाटालाई व्यक्तिगत रूपमा लिनुभयो भने, ती मध्ये कुनै पनि बुझ्न अत्यन्त गाह्रो छैन। यहाँ द्रुत रुमनाउन छ (म डाटा नामहरू प्रयोग गर्दैछु।
प्यारामिटर.वी – यो एक समावेश डाटा जस्तै हो जुन हरेक अन्य फाईलका लागि केही आधारभूत परिभाषाहरू सेट गर्दछ।
प्रोग्राम – यो निर्देशन मेमोरी हो। एक साधारण मोड्युल, यसले ठेगाना लिन्छ साथै त्यो ठेगानाको लागि डाटा प्रस्तुत गर्दछ। $ Revenmembe निर्देशनले डाटा (टेस्ट.prg) बाट डाटा पढ्छ।
रेजिस्टर .V – रेजिस्टर फाइल। यो लगभग दिशा मेमोरी जस्तै छ जबकि यसको दुबै जाँच गर्नुहोस् पोर्टहरू छन् र तपाईं यसलाई रचना गर्न सक्नुहुनेछ।
डाटा .V – राम मेमोरी। यो लगभग रेजिष्टर जस्तै छ, यद्यपि एक एकल जाँच गरिएको पोर्टको साथ ठूलो साथ साथै। त्यहाँ केहि सिमुलेशन कोड छ जुन डाटा खोल्दछ जुन एक डाटा खोल्दछ साथै मेमोरी टिप्पणीहरू प्रिन्ट गर्दछ, यद्यपि यो डिबगिंगका लागि मात्र थियो। प्रारम्भिक सामग्री परीक्षण .data फाईलबाट आउँदछ।
Alu.v – तपाईं विश्वास गर्नुहुन्छ कि यो जटिल हुनेछ, यद्यपि यो छैन। यो केवल दुई इनपुटहरू लिन्छ र आउटपुट उत्पादन गर्न केहि पनि गर्दछ। केहि सरल तरीकाले थप्नुहोस् वा घटाउँछ। सँधै @ (*) ले VILILOG लाई यसको लागि क्लक गरिएको तर्क उत्पादन गर्न सकेको छैन। यो केवल केहि साधारण गेट्स को साथै मुक्सहरु मा बदलिन्छ।
डाटापथ_ होस् – यो अधिक जटिल फाइलहरू मध्ये एक हो, यद्यपि यदि तपाईं यसमा खन्नुहुन्छ भने, तपाईंले यसलाई मुख्यतया थोक हो। यो डाटाले सबै संसाधनहरू उत्पादन गर्दछ (रेजिष्टहरू जस्तै सम्झनाहरू जस्तै साथै उनीहरू सँगै तारहरू पनि छन्।
नियन्त्रण_uneit.v – एक अधिक लामो मोड्युल, यसले दिशा तालिका लागू गर्दछ, हार्ड निर्देशनमा आधारित नियन्त्रण लाइनहरू सेट गर्दै।
एलोकन्ट्रोल.वी – यो डाटा अल्कोको लागि निर्देशनहरू डिकोड गर्दछ। यो मूल पोष्टमा हराइरहेको थियो। अनौंठो रूपमा, सटीक समान साइटमा एक अधिक सीपीयू पनि छन् जुन एक एलोकन्ट्रोल फाइल छ, यद्यपि यो स्पष्ट दिशाको लागि सेट गरिएको छ। जे होस्, त्यो डाटा राख्न र शैली टेबल प्रयोग गर्न सुरू गरेर, म यसलाई पुन: सिर्जना गर्न सक्षम भएँ। यदि [fpga4studstests] यसलाई सच्याउँछ भने, फाईलहरू अत्यन्त फरक देखिन सक्छ।
डिजाईन .SV – यो डाटा एडपालेट मैदान सिमुलेटरको लागि आवश्यक छ। यसले शीर्ष-स्तर तत्वहरू समावेश गर्दछ (डाटा पथ साथै नियन्त्रण एकाई)। EDAPLYEE यसले उनीहरू मध्ये प्रत्येकको एक हप्ताको एक हप्ताको एक हप्ताको एक निश्चित समय हुन्छ, तथापि यो यो हानिरहित हुन्छ।
टेस्टबन्च.Sv – टेस्टबन्च वास्तविक डिजाइनको अंश होइन, तथापिहरूले सिमुलेशन सेट गर्दछ र परिणामहरू स collect ्कलन गर्दछ। मैले एडपालेसनको साथ काम गर्न यसलाई बिटलाई परिवर्तन गर्नुपर्यो, यद्यपि सञ्चालन उस्तै हो। यसले केवल सीपीयू उत्पादन गर्दछ, यसलाई एक घडीमा फीड्दछ, साथै यसलाई केहि समयको लागि दौडन दिन्छ। परीक्षण कार्यक्रम साथै मेमोरी सामग्रीहरू परीक्षणको रूपमा छन् .प्रास साथै परीक्षण .डीटा।
नक्कली
तपाईं दुई मध्ये एक चीज गर्न सक्नुहुन्छ। तपाईं शैली तयार-देखि-जानुहोस्को मेरो प्रतिलिपि खोल्न सक्नुहुन्छ, यद्यपि यो तपाईंको उत्कृष्ट विकल्प हुन सक्दैन। म सुझाव दिन्छु कि तपाइँ केवल एडपाल्ट मैदानमा जानुहोस् र नयाँ वार्ल्यरोग प्रोजेक्ट उत्पादन गर्नुहोस्। त्यसो भए मूल पोष्टबाट फाईलहरू सार्न सुरू गर्नुहोस्। तपाईं त्रुटिहरूमा दौडनुहुनेछ साथै फाईलहरू हराइरहेका छन्। तपाईं कति ठीक गर्न सक्नुहुन्छ भनेर ठ्याक्कै हेर्नुहोस्। यदि तपाईं स्टम्प हुनुभयो भने, तब तपाईं मेरो प्रतिलिपि गर्न सक्नुहुनेछ यदि तपाईं स्टम्प हुनुभयो भने तपाईंलाई सहयोग गर्न। तपाईं यस तरीकाले पत्ता लगाउनुहुनेछ।
यदि तपाइँ यसलाई प्रयास गर्न रोज्नुहुन्छ भने, यहाँ एडीफेल मैदानको बारेमा केहि सुझावहरू छन्। तपाइँले UVM / OVM चयन गर्नुहुन्न, न त तपाइँ कुनै प्रकारको अन्य पुस्तकालयहरूको आवश्यकता छ। मैले आइकनस भेरिलोग 0.9..7 प्रयोग गरें, यद्यपि तपाईले धेरैजो वा कुनै प्रकारको वाइनल उपकरणहरू प्रयोग गर्न सक्नुहुनेछ। तपाईं EPWAVE चेकबक्स निरीक्षण गर्न चाहानुहुन्छ साथै टेस्टबन्चकको युनिभबक्सको अनलाइन भागमा यसलाई थप्न आवश्यक छ:
सुरुमा
सुरु गर्नु
$ डम्पफाइल (“डम्प.vcd”);
DE DONTAVERS;
नयाँ फाईलहरू बनाउन डाटा ट्याबहरू पछाडि + स in ्केत प्रयोग गर्नुहोस्। एडपालेन मैदानमा प्रति पूर्वी क्षेत्रहरूको सीमा छ। याद गर्नुहोस्, तपाईंले कुनै पनि प्रकारको .v फाईल समावेश गर्नुपर्नेछ जुन तपाईंले या त टेस्टबन्च्स.स्भी वा डिजाइन.एसभीमा उत्पादन गर्नुपर्दछ। तपाईंसँग डाटा फाइलहरू समावेश गर्न आवश्यक पर्दैन किनकि अन्य फाईलहरू अप्रत्यक्ष रूपमा तिनीहरूलाई प्रयोग गर्दछ।
चलाउनुहोस्!
एकचोटि तपाईंसँग सबै त्रुटिहरू बाहिर काम भयो, तपाईं रन र चलाउन सक्नुहुनेछ, तपाईं लीकमार्ग दर्शक, एपिवेभ पाउनुहुनेछ। तिमि हभe चासोको दरका संकेतहरू थप्न ताकि तपाईं काममा सीपीयू हेर्न सक्नुहुन्छ। मेमोरी वा केही डिबगिंग पोर्टहरूमा केहि I / O उपकरणहरू थप्न रमाईलो हुनेछ ताकि तपाईं चीजहरूलाई थोरै राम्रोसँग हेर्न सक्नुहुन्छ। म प्राय: प्रोग्राम काउन्टर प्रयोग गर्दछु र भित्रभिरहेको के हुँदैछ भन्ने कुराको अवधारणा प्राप्त गर्न रेजिष्टर कम्पेटेक्ट पोर्टलाई हेर्नुहोस्।
मूल कोडसँग एउटा कार्यक्रम थियो जसले ठूलो निर्देशनहरू प्रयोग गर्यो। मैले यसलाई टिप्पणी गरें र यसलाई यसको साथ बदले:
0000_0100_00_0000 // 0000: Tons R0 << Q + 0) देखि R2 = 0 ले 0 मा 1 0000_0100_0100_00 // 0002: tons R1 (R1 मा सँधै 1) हुनेछ) // प्लेस ((बाइट), ((शब्द): 0010_0000_0101_00 // 0004: R2 = R0 + R1 0001_0010_10_00 // 0006: Q [r1] = R2 (त्यो हो 0000_0010_00_0000 // 0008: R0 = ME [R1] 1101_00_00_00_11 // 000a: ठाउँमा जानुहोस् # ((CPU लाई 2 द्वारा 2 द्वारा बढ्नेछ 2) // 000c मा कुनै दिशा छैन, जबकि पीसी त्यहाँ झुण्डिएको छ जबकि यो जम्प जम्प गर्दछ तपाइँ मेमोरीमा समृद्धिको समन्वयको साथ साथै प्रोग्राम काउन्टर चक्रलाई चारैतिर घुमाउन र प्रत्येक लूपको साथ प्रोग्राम काउन्टर चक्रलाई हेर्न सक्षम हुनुपर्दछ। यहाँ एक विशिष्ट सत्र छ: मैले भित्री संकेतहरूको एक ठूलो सम्झौता छोडे, तथापि तपाईले त्यो मेमोरी ठेगाना 1 मा 2 मा समझका लागि 1 मा सेट गर्न सक्नुहुनेछ। अन्त खेल के यो एक महान शैक्षिक cpu हो? म निश्चित छुँइन। केहि सरल CPUS अवस्थित छ, यद्यपि तिनीहरू प्रायः थोरै हुन्छन् किनकि उनीहरू कठिन छन् वा तिनीहरू अत्यन्त अव्यावहारिक छन्। यस भन्दा बढि चुनौतीपूर्ण यो भन्दा धेरै सम्भवतः धेरै सम्भावित रूपमा सुरु हुन्छ। जब म विश्वास गर्दछु कि तपाईंसँग यस्तै केहि चीजको नक्कल गर्नु अघि मौलिक प्लाजिकजको केहि पञ्चार्य हुनुपर्दछ, कागजातहरू केही क्षेत्रमा थोरै विरलै (र भ्रामक) थिए। स्पष्ट रूपमा, यो पर्याप्त पर्याप्त थियो किनकि मैले यो काम गरिरहेको थिएँ, तर यदि तपाईं मात्र सुरू गरिरहनु भएको छ भने, तपाईं सम्भवतः थोरै बढी सहयोगी र स्पष्टीकरणको कदर गर्नुहुन्छ। के तपाइँसँग एक प्राथमिक शैक्षिक Vereilog cpu छ? म अझै पनी एक व्यक्ति "ठीक छ" को लागी हेर्दै छु।