एक ModelSim सिमुलेशन का बाहरी नियंत्रण Via Unix नामित पाइप्स
सार: इस थीसिस में, हम एक बाह्य कार्यक्रम के माध्यम से एक ModelSim सिमुलेशन को नियंत्रित करने की एक विधि प्रस्तुत करते हैं। मॉडलसिम और बाहरी कार्यक्रम के बीच संचार नामांकित पाइप्स ("एफआईएफओ") का उपयोग करके पूरा किया जाता है, जो प्रत्येक एप्लिकेशन के लिए सामान्य फ़ाइलों के रूप में दिखाई देते हैं। इंटर-प्रोसेस कम्युनिकेशन (IPC) के लिए FIFOs बनाम सामान्य फ़ाइलों का उपयोग करने के बीच मुख्य अंतर यह है कि एक FIFO को लिखने का प्रयास तब तक रोका जाता है जब तक कि कोई अन्य एप्लिकेशन FIFO और इसके विपरीत से पढ़ने का प्रयास नहीं करता। यह आईपीसी की विश्वसनीयता में सुधार करता है। इस पद्धति के प्रमुख लाभ 1 हैं) चूंकि केवल जेनेरिक फ़ाइल संचालन का उपयोग किया जाता है, बाहरी अनुप्रयोग लगभग किसी भी प्रोग्रामिंग भाषा में लिखा जा सकता है; 2) यह सत्यापन इंजीनियर को न्यूनतम पुनर्लेखन के साथ मानकों-सत्यापन सॉफ्टवेयर पैकेजों का पुन: उपयोग करने की क्षमता देता है; 3) टेस्ट (DUT) के तहत कई डिवाइसेस एक-दूसरे के साथ संचार करके, अंतिम सिस्टम का एक अधिक सटीक सिमुलेशन बनाया जा सकता है; और 4) समग्र सिमुलेशन के प्रदर्शन को सिंगल-सिस्टम इमेज (एसएसआई) क्लस्टर या मल्टीप्रोसेसर कंप्यूटर पर आसानी से बढ़ाया जा सकता है, भले ही मॉडलसिम का सिमुलेशन इंजन बहु-थ्रेडेड न हो। व्यवहार VHDL के लिए फ़ाइल इनपुट / आउटपुट (I / O) के कार्यान्वयन के कारण, ModelSim इन FIFS को सीधे पढ़ या लिख नहीं सकता है। मॉडलसीम के फॉरेन लैंग्वेज इंटरफेस (FLI) का उपयोग करके इस सीमा के लिए वर्कअराउंड प्रदर्शित किया जाता है। यह पेपर VHDL में फ्लोटिंग पॉइंट रूटीन की अगली पीढ़ी के सत्यापन में उपयोग की जा रही इस पद्धति का एक कार्यशील उदाहरण भी दिखाता है। विशेष रूप से, ओपन-सोर्स IEEE अनुपालन परीक्षक सॉफ्टवेयर पैकेज, जो C ++ में लिखा गया है,
और एफआईएफओ के साथ एक विदेशी प्रोग्रामिंग इंटरफेस की आवश्यकता का मुद्दा यह है कि वीएचडीएल फ़ाइल I / O डेटा उपलब्ध होने तक अवरुद्ध के साथ शान से नहीं निपट सकता है।
दुर्भाग्य से थीसिस वेब पर उपलब्ध नहीं है।
मॉडल सिम ® विदेशी भाषा इंटरफ़ेस संस्करण 5.6d , पीडीएफ 3.4 एमबी।
C - VHDL Co- सिमुलेशन के लिए ModelSim विदेशी भाषा इंटरफ़ेस का उपयोग करना और Linux x86 प्लेटफॉर्म आंद्रे पूल पर सिम्युलेटर कंट्रोल के लिए fli@andrepool.com - संस्करण 1.5 - नवंबर 2012 में बनाया गया, अंतिम अपडेट सितंबर 2013 , पीडीएफ, 320KB (और फीफो का कभी उल्लेख नहीं) ।
सी - वीएचडीएल सह-सिमुलेशन के लिए और लिनक्स एक्स 86 प्लेटफ़ॉर्म पर सिम्युलेटर कंट्रोल के लिए मॉडलसिम विदेशी भाषा इंटरफ़ेस का उपयोग करना (मिलान गिथब कोड रिपॉजिटरी)।
VHPI फॉरेन फंक्शन कॉल का उपयोग ghdl में करने के लिए थोड़ा और अधिक खुला स्रोत है:
vhdl / src / sim / ghdlex_mein at Master · texane / vhdl · GitHub ।
और GHDL_discuss सूची में मार्टिन स्ट्रबेल से एक अपडेट की तरह क्या दिखता है:
http://www.section5.ch/downloads/ghdlex-0.051.tgz 14 अप्रैल 2014 की तारीख के लिए तारीख दिखाते हुए।
एफएलआई परिभाषा के आधार पर आपको लॉक कर देगा, उनके वीएचपीआई समर्थन की स्थिति के बारे में निश्चित नहीं है (जो आईईईई स्टड 1076-2008, वीएचडीएल एलआरएम का हिस्सा है)।
सॉकेट या फ़ाइल का उपयोग करके FIFO सॉफ्टवेयर और हार्डवेयर प्रक्रिया को अलग-अलग दरों पर चलाने की अनुमति देता है, दर बफरिंग प्रदान करके। यह हमेशा आवश्यक नहीं है यदि आप सॉफ्टवेयर सिस्टम हार्डवेयर सिमुलेशन की तुलना में तेजी से परिमाण के आदेश हैं (और यह आम तौर पर है)।
VHDL को UNIX (POSIX) कार्यक्षमता प्रदान करने का एक प्रयास है, सार्वजनिक डोमेन VHDL पैकेज देखें , जिसमें पहले के पेपर SNUG सैन जोस 2002 के लिए एक पॉइंटर शामिल है। 1 C / UNIX फ़ंक्शंस VHDL Testbenches C के लिए / UNIX फ़ंक्शंस एक स्लाइड के साथ VHDL टेस्टबेंच के लिए यूनिक्स पाइप और rsh पर अतिरिक्त नोट्स के साथ सेट करें । यह दिखाता है कि नामांकित पाइप को कैसे खोला जाए। सभी VHDL कोड को भी डाउनलोड किया जा सकता है। मेरी राय है कि यह आपके लक्ष्य को प्राप्त करने का सबसे आसान तरीका होगा।
तो क्या मॉडेम के मूल निवासी कुछ है जो आपको एक पाइप तक हुक करने की अनुमति देता है? संभवतः ऐसा नहीं है, विंडोज के तहत अधिक। क्या यह किया जा सकता है? हाँ, लेकिन रास्ता भयावह के लिए नहीं है। आप एक छोर या दूसरे पर गतिरोध कर सकते हैं या संभवतः दोनों डेटा उपलब्धता पर प्रतीक्षा कर सकते हैं।
एक विदेशी प्रोग्रामिंग इंटरफ़ेस सैद्धांतिक रूप से आपको 'पाइप' के एक या दूसरे छोर के लिए एक बच्चे की प्रक्रिया को स्पॉन करने की अनुमति देता है, जिसका अर्थ है कि आप दोनों छोरों के बीच संवाद करने के लिए एक साझा मेमोरी मॉडल का उपयोग कर सकते हैं।