2008-10-16 15 views
13

में बिट्स को जोड़ना वीएचडीएल में बिट्स को कैसे जोड़ता है? मैं निम्नलिखित कोड का उपयोग करने की कोशिश कर रहा हूँ:वीएचडीएल

प्रकरण B0 & बी 1 & b2 & बी 3 है ...

और यह एक त्रुटि फेंकता

धन्यवाद

उत्तर

20

संयोजन ऑपरेटर '& 'सिग्नल असाइनमेंट ऑपरेटर के दाहिने तरफ की अनुमति है' < = ', केवल

+2

यह परिवर्तनीय असाइनमेंट ': =' के साथ भी काम करता है .. अन्य उत्तरों देखें –

8

यहां है संयोजन ऑपरेटर का एक उदाहरण:

architecture EXAMPLE of CONCATENATION is 
    signal Z_BUS : bit_vector (3 downto 0); 
    signal A_BIT, B_BIT, C_BIT, D_BIT : bit; 
begin 
    Z_BUS <= A_BIT & B_BIT & C_BIT & D_BIT; 
end EXAMPLE; 
6

आप मामले बयान के साथ संयोजन ऑपरेटर का उपयोग करने की अनुमति नहीं है। एक संभावित समाधान प्रक्रिया के भीतर एक चर का उपयोग करना है:

process(b0,b1,b2,b3) 
    variable bcat : std_logic_vector(0 to 3); 
begin 
    bcat := b0 & b1 & b2 & b3; 
    case bcat is 
     when "0000" => x <= 1; 
     when others => x <= 2; 
    end case; 
end process;