2009-10-02 9 views
5

मैं VHDL घटक का परीक्षण करने की कोशिश कर रहा हूं, लेकिन मुझे कोई भी व्यवहार देने के लिए यह एक इनआउट पोर्ट नहीं मिल रहा है। मैंने बंदरगाह को '1' से '-' तक सब कुछ करने की कोशिश की है, लेकिन यह अभी भी सिमुलेशन में 'यू' के रूप में आता है। कोई भी परेशानी क्या गलत हो सकती है?वीएचडीएल: इनआउट पोर्ट पर मूल्य कैसे सेट करें?

+1

यह स्पष्ट रूप से जेड को बंद कर देता है, पोर्ट ने मुझे डेटा दिया है, लेकिन अब मुझे बंदरगाह से पढ़ने के लिए आंतरिक सिग्नल नहीं मिलते हैं :( – Tore

उत्तर

8

(रैम में उदाहरण के लिए) Inout बंदरगाह के लिए:

.... 
port(
    data :inout std_logic_vector (DATA_WIDTH-1 downto 0); 
.... 
-- Memory Write Block 
-- Write Operation : When we = 1, cs = 1 
    MEM_WRITE: process (address, cs, we, data, address_1, cs_1, we_1, data_1) begin 
    if (cs = '1' and we = '1') then 
     mem(conv_integer(address)) <= data; 
    end if; 
    end process; 

-- Tri-State Buffer control 
    data <= data_out when (cs = '1' and oe = '1' and we = '0') else (others=>'Z'); 

-- Memory Read Block 
    MEM_READ: process (address, cs, we, oe, mem) begin 
    if (cs = '1' and we = '0' and oe = '1') then 
     data_out <= mem(conv_integer(address)); 
    else 
     data_out <= (others=>'0'); 
    end if; 
    end process; 

आप डेटा पढ़ सकते हैं और एक शर्त के साथ inout के लिए लिखने आवंटित। जब डेटा पढ़ा जाता है, तो यह किसी अन्य मॉड्यूल द्वारा संचालित होता है। जब यह लिखता है, यह आंतरिक द्वारा संचालित होता है।

  • जब किसी अन्य मॉड्यूल (सिग्नल के रूप में) द्वारा संचालित किया जाता है, तो उदाहरण के लिए सभी 'Z' और वेक्टर "0101010" के बीच डेटा हल किया जाता है। डेटा "0101010" के रूप में संचालित होगा।
  • अन्य मामले में: अन्य मॉड्यूल को सभी "Z" द्वारा डेटा ड्राइव करना होगा और फिर आंतरिक सिग्नल डेटा को अपना मूल्य डाल सकता है।
6

आपको 'Z' के लिए एक स्पष्ट ड्राइवर की आवश्यकता है।

+0

मुझे एहसास है कि यह मामला है, लेकिन मुझे नहीं पता कि vhdl में इसका क्या अर्थ है कोड – Tore

+0

क्या आप हमें अपने कोड का एक स्निपेट दिखा सकते हैं? – Marty

1

मैं करने के लिए '1' से सब कुछ करने के लिए बंदरगाह की स्थापना की कोशिश की है '-', लेकिन यह अभी भी अनुकरण में 'U' के रूप में आता।

इनआउट बंदरगाहों को आवंटित/पढ़ने पर अच्छे उत्तर के अलावा, उपरोक्त उद्धृत पाठ दो अलग-अलग स्थानों में निर्दिष्ट बंदरगाह से संबंधित हो सकता है, इसलिए इसे 'यू' के रूप में हल किया गया है।

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