जैसा कि मुख्य उत्तर कहता है, अनुशंसित विधि इस प्रकार है:
use ieee.numeric_std.all;
...
my_slv <= std_logic_vector(to_unsigned(my_int, my_slv'length));
हालाँकि, मैं इस बारे में विस्तार से बताना चाहूंगा कि यह क्यों अनुशंसित है, और क्यों VHDL में पूर्णांक को std_logic_vectors में परिवर्तित करने का ऐसा प्रतीत होता है।
यह नीचे आता है कि इन प्रकारों को उपकरण द्वारा कैसे देखा जाता है।
एक standard_logic_vector सचमुच 1s या 0s का एक गुच्छा है। मेरे पास 10001 है। यह कौन सी संख्या है? अच्छा वह निर्भर करता है। क्या यह हस्ताक्षरित या अहस्ताक्षरित है? Ths SLV को पता नहीं है या परवाह नहीं है। कितने बिट्स? खैर, आपका एसएलवी कब तक है?
एक पूर्णांक पर हस्ताक्षर किए जाते हैं, और आमतौर पर 32 बिट्स (यदि मुझे सही याद है)।
स्टेज 1: मेरे पूर्णांक को छोटा और अहस्ताक्षरित करें। यह हिस्सा है:
to_unsigned(my_int, my_slv'length));
"मेरे पास यह पूर्णांक है, मैं चाहता हूं कि यह अहस्ताक्षरित हो, और मैं चाहता हूं कि यह मेरे एसएलवी की लंबाई में फिट हो।"
स्टेज 2: फिर, उन बिट्स को ले जाएं और उन्हें my_slv ड्राइव करने के लिए उपयोग करें।
my_slv <= std_logic_vector(...)
"इन बिट्स को ले लो, और उन्हें मेरे एसएलवी को चलाने के लिए उपयोग करें"
(शब्दावली पर एक नोट। A <= B
वीएचडीएल में जोर से पढ़ा जाता है "ए बी द्वारा संचालित है")
संयुक्त, यह आपको मिलता है:
my_slv <= std_logic_vector(to_unsigned(my_int, my_slv'length));
पारंपरिक प्रोग्रामिंग पृष्ठभूमि से आने के दौरान, प्रोग्रामिंग के तरीके में फंसना बहुत आसान है। लेकिन VHDL में आपके द्वारा लिखे गए कोड का हार्डवेयर में भौतिक प्रभाव है। यह जानने के लिए कि यह विधि क्यों काम करती है और इसकी सिफारिश की जाती है, यह सोचने के लिए एक कदम करीब है कि आप हार्डवेयर शब्दों में क्या लिख रहे हैं।
बोनस टिप: to_ द्वारा उपसर्ग किए गए कार्य हैं जो ऑपरेंड को छोटा / परिवर्तित करते हैं। वे उन्हें अहस्ताक्षरित या एक निश्चित लंबाई या दोनों बनाते हैं। यही कारण है कि to_unsigned आपको लंबाई निर्दिष्ट करने की आवश्यकता है। इस प्रकार के बिना सीधे_ संगत होने पर, to_ (स्ट्रेट std_logic_vector (...) का उपयोग किया जाता है। "इन बिट्स को लें और उन्हें इस प्रकार से भर दें, कोई संशोधन आवश्यक नहीं है"। इनका एक लंबा तर्क नहीं है क्योंकि दोनों पक्ष पहले से ही समान हैं। इसलिए इस तरह की चीजों का निर्माण करते समय, मुझे इसे देखने की जरूरत नहीं है, मैं सिर्फ यह सोचता हूं कि मैं डेटा कैसे बदल रहा हूं।