std_logic या std_ulogic?


24

ऐसा लगता है कि दुनिया ने फैसला किया है कि std_logic(और std_logic_vector) वीएचडीएल में बिट्स का प्रतिनिधित्व करने का डिफ़ॉल्ट तरीका है। विकल्प होगा std_ulogic, जो हल नहीं है।

यह मुझे आश्चर्यचकित करता है क्योंकि आमतौर पर, आप एक बस का वर्णन नहीं कर रहे हैं , इसलिए आप करते हैं कि आप कई ड्राइवर नहीं चाहते हैं और आपको सिग्नल को हल करने की आवश्यकता नहीं है । इसका फायदा यह होगा कि कंपाइलर आपको कई ड्राइवरों के होने पर जल्दी चेतावनी देता है।std_ulogic

प्रश्न: क्या यह सिर्फ एक सांस्कृतिक / ऐतिहासिक बात है, या std_logic का उपयोग करने के लिए अभी भी तकनीकी कारण हैं?


3
संसार गलत है। स्मार्ट इंजीनियर std_ulogic का उपयोग करते हैं क्योंकि इसमें सही शब्दार्थ है।
1

@wjl मैं समझाता हूं कि "यह एक सांस्कृतिक / ऐतिहासिक चीज है"। नीचे दिया गया आपका उत्तर यहां की टिप्पणी से कहीं अधिक उपयोगी है।
फिलिप

मैंने पहले टिप्पणी लिखी, फिर सोचा कि अधिक बारीकियों के साथ उत्तर छोड़ना अधिक उचित होगा। क्षमा करें, मुझे लगता है कि यह थोड़ा तेज आवाज करता है। लेकिन मेरी टिप्पणी में शाब्दिक है कि ज्यादातर लोग std_logic का उपयोग करना शुरू कर देते हैं क्योंकि उन्होंने इसे इस तरह सीखा है, फिर थोड़ी देर बाद वे std_ulogic के बारे में आश्चर्य करने लगते हैं, वे इसे देखते हैं, महसूस करते हैं कि यह शब्दार्थ है, और फिर इसे परिवर्तित करें। =)
wjl

जवाबों:


16

Std_logic std_ulogic की एक उप-प्रकार है और वास्तव में एक अतिरिक्त संपत्ति: एक से अधिक चालकों कर रहे हैं इसका समाधान नहीं होता।

सामान्य अभ्यास के बावजूद, std_ulogic गैर-हल किए गए संकेतों का उपयोग करने के लिए सही प्रकार है, जिन्हें 9-मूल्यवान तर्क की आवश्यकता होती है। (अक्सर, "बिट" का उपयोग करना और भी सही है - उदाहरण के लिए, कुछ FPGA आर्किटेक्चर पर, जिसमें 'X' या 'U' जैसी कोई चीज नहीं है)।

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


8
आर्किटेक्चर के पास 'यू' नहीं हो सकता है, लेकिन यह अक्सर अनुकरण करने के लिए उपयोगी होता है जैसे कि ऐसा किया कि आप गलत आदतों को पा सकते हैं। +1 करने के लिए "सबसे अच्छी बात यह है कि नौकरी के लिए सही प्रकार का उपयोग करें", लेकिन हम सीखते हैं कि हम किस चीज़ के साथ चलते हैं ":)"
मार्टिन थॉम्पसन

8

मेरा इतिहास यह है:

मैंने std_ulogic*हर समय उपयोग करना शुरू किया (लगभग 1999 IIRC में) - जैसा कि आपके द्वारा बताए गए कारणों से करना सही है।

फिर मुझे विज़ार्ड जनरेट किए गए विक्रेता आईपी के एक समूह को इंटरफ़ेस करना पड़ा जो सभी std_logicइंटरफ़ेस पर था। जिसका मतलब पोर्ट-मैपिंग ( _vectorतत्वों के लिए) पर रूपांतरण था , और मैं आलसी हो गया और उपयोग करने के लिए आगे बढ़ गया std_logic*

हालाँकि, मैं बहुत कम "डबल-ड्राइवर" गलतियाँ करता हूँ, इसलिए मैंने std_ulogicजितना सोचा था उतना याद नहीं किया । और मॉडलिम के driversआदेश को "जो कोई भी मुझे कभी-कभी ज़रूरत पड़ने पर" चला रहा है, "जो ढूंढ रहा है, उसे ढूंढना बहुत आसान हो जाता है ..."


हाँ, IP कोर (और विशेष रूप से सामान जो स्वचालित रूप से Verilog से अनुवादित है) में std_logic का उपयोग किया जाता है। आपके उत्तर से लगता है कि इसका कारण ज्यादातर "सांस्कृतिक / ऐतिहासिक" है।
फिलिप

आपको कभी भी बंदरगाहों पर std_logic और std_ulogic के बीच कनवर्ट नहीं करना होगा। क्या आपका मतलब है कि आपको std_logic_vector और std_ulogic_vector के बीच रूपांतरण करना था?
wjl

@wjl: क्षमा करें, हाँ यही मेरा मतलब है। मैं पोस्ट अपडेट कर दूंगा।
मार्टिन थॉम्पसन

AFAIK, std_logic और std_ulogic असाइनमेंट-संगत हैं क्योंकि उनके पास एक ही आधार प्रकार है। इसलिए, मैन्युअल रूप से रूपांतरण की कोई आवश्यकता नहीं होनी चाहिए।
वैल

@ वाल: यही wjl ने कहा (और मैं इससे सहमत हूं) - लेकिन *vectorबंदरगाह के हिस्सों को अभी भी रूपांतरण की आवश्यकता है
मार्टिन थॉम्पसन

4

IIRC ने प्रसिद्ध पुन: उपयोग पद्धति पद्धति की सिफारिश की std_logic(_vector), इसलिए शायद कंपनियों आदि में कार्यप्रणाली समूह फैल गए (अनिवार्य) कोडिंग गाइड के रूप में आगे। निजी तौर पर, std_ulogicजब संभव हो उपयोग करने के लिए +1 ।


2

मुझे पता है कि यह एक बहुत ही रंगीन पीपी स्लाइड शो है, लेकिन यह अंतर को बहुत अच्छा बताता है:

http://web.archive.org/web/20151026150828/http://www.cs.auckland.ac.nz/~jmor159/reconfig/ppt/ResolutionFunctions.ppt


1
टूटा हुआ लिंक, यहाँ संग्रहीत: web.archive.org/web/20151026150828/http://www.cs.auckland.ac.nz/…
लुइसफ़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.