2011-04-14 12 views
6

में एक तार मान को एक पूर्णांक में परिवर्तित करना मैं एक तार में डेटा को एक पूर्णांक में कनवर्ट करना चाहता हूं। उदाहरण के लिए:Verilog

wire [2:0] w = 3'b101; 

मुझे एक ऐसी विधि चाहिए जो इसे '5' में परिवर्तित करे और इसे पूर्णांक में संग्रहीत करे। मुझे लगता है कि कैसे कर सकते हैं इस से बेहतर तरीके से:

j=1; 
for(i=0; i<=2; i=i+1) 
begin 
    a=a+(w[i]*j); 
    j=j*2; 
end 

इसके अलावा, मैं इसे कैसे वापस बाइनरी में बदलने का है एक बार मैं एक पूर्णांक में मूल्य है? यह एक बेवकूफ तरीका लगता है। धन्यवाद।

उत्तर

10

आसान! यदि आप एक पूर्णांक को असाइन करते हैं तो रूपांतरण Verilog में स्वचालित होता है। Verilog में, सभी डेटा प्रकार बिट्स पर सिर्फ संग्रह हैं।

integer my_int; 
always @(w) 
    my_int = w; 
+0

धन्यवाद। मैं भी विपरीत करना चाहता हूं, जैसा कि w = my_int में है। क्या इसकी अनुमति है? – Brahadeesh

+1

यह है, लेकिन आपको केवल 'w_' में संग्रहीत 'my_int' के 3 एलएसबी मिलेगा। उदाहरण के लिए, यदि ''d16' (' 10000') संख्या 'my_int' में है, तो' w' = '3'b000' – Marty

+0

मिल जाएगा। धन्यवाद। इसका मतलब है कि मुझे लंबे समय तक लंबे समय तक रखने के लिए सावधानी बरतनी है। – Brahadeesh

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