2013-10-16 9 views
11

के साथ आउटपुट बंदरगाहों को अनदेखा कैसे करें अक्सर वीएचडीएल में मुझे लगता है कि एक निश्चित घटक में कई आउटपुट पोर्ट हैं। यानी हमारे उदाहरणों में से एक में हम निम्न घटक दिए गए थे:पोर्ट मैप्स

COMPONENT eight_bitadder 
    PORT (a, b: in std_logic_vector(7 downto 0); 
     f: in std_logic; 
     C: out std_logic_vector(7 downto 0); 
     o, z: out std_logic); 
END COMPONENT; 

कहाँ z निर्धारित करता है कि परिणाम 0 है, और ओ अतिप्रवाह पर चलाता है।

अब मेरे मामले में मैं इस योजक का उपयोग करना चाहता हूं, हालांकि वास्तविक परिणाम महत्व का नहीं है, बल्कि मैं केवल यह जांचना चाहता हूं कि परिणाम "0" है या नहीं। मैं निश्चित रूप से एक डमी सिग्नल जोड़ सकता हूं और बंदरगाह को इस सिग्नल में स्टोर कर सकता हूं, हालांकि यह अनिवार्य रूप से जटिल लगता है, और संश्लेषण के दौरान अतिरिक्त घटकों को जोड़ सकता है?

उत्तर

10

जब आप घटक को तुरंत चालू करते हैं तो आप आउटपुट बंदरगाहों को छोड़ सकते हैं जिन्हें आपको खुलेपन की परवाह नहीं है। एकमात्र संकेत जो आप नीचे रखते हैं वह "अतिप्रवाह" है।

संपादित करें: ध्यान दें कि संश्लेषण उपकरण किसी भी आउटपुट को अनुकूलित नहीं करेंगे जिनका उपयोग नहीं किया जा रहा है।

EIGHT_BITADDER_INST : eight_bitadder 
    port map (
    a => a, 
    b => b, 
    f => f, 
    c => open, 
    o => overflow, 
    z => open 
    ); 
+0

तो खुला एक विशेष कीवर्ड है - क्या इसका उपयोग सिंटैक्स के साथ भी किया जा सकता है जहां आप स्पष्ट रूप से बंदरगाहों का नाम नहीं देते हैं, और ऑर्डर का उपयोग करते हैं? (सिर्फ सत्यापन/स्पष्टता के लिए पूछ रहे हैं)? – paul23

+0

हां, वीएचडीएल में "खुला" आरक्षित है। ईमानदारी से मैंने कभी कोशिश नहीं की है, इसे एक शॉट दें और मुझे बताएं कि यह कैसा चल रहा है। मैं हमेशा पोर्ट मैपिंग स्पष्ट रूप से घोषित करता हूं। – Russell

+1

ने अच्छी तरह से इसका परीक्षण किया और हां, मैं गैर स्पष्ट नामकरण के साथ भी संकलित और संश्लेषित कर सकता था। एक बार फिर धन्यवाद। – paul23

3

तुम भी तो ऐसा कुछ करने के लिए एक निर्गम टाई नहीं चुन सकते हैं:

EIGHT_BITADDER_INST : eight_bitadder 
    port map (
    a => a, 
    b => b, 
    f => f, 
    o => overflow 
); 

सूचना है कि मैं बस बंदरगाह नक्शे में आउटपुट सी और z शामिल नहीं किया। कुछ इसकी स्पष्टता पर बहस कर सकते हैं (क्योंकि यह स्पष्ट नहीं हो सकता है कि आउटपुट सी और जेड मौजूद है), लेकिन यह केवल आवश्यकतानुसार कोड को कम कर देता है।

+0

ध्यान दें कि आपके घटक घोषणा से लाइनों को हटाने या आपके द्वारा निकाले जा रहे बंदरगाहों को डिफ़ॉल्ट मान असाइन करना आवश्यक हो सकता है। यदि आप नहीं करते हैं तो संकलन करने का प्रयास करते समय आप त्रुटियों में भाग सकते हैं। – TW80000

संबंधित मुद्दे