vhdl assign specific bit of std_logic_vector with index failed -
मैंने ऐसा करने की कोशिश की
पुस्तकालय आईईईई; IEEE.STD_LOGIC_1164.ALL का उपयोग करें; IEEE.STD_LOGIC_ARITH.ALL का उपयोग करें; IEEE.STD_LOGIC_UNSIGNED.ALL का उपयोग करें; इकाई mux_8to1 पोर्ट (Y: STD_LOGIC_VECTOR (0 से 7) में; एस: STD_LOGIC_VECTOR में (2 से डाउन 0); एफ: बाहर STD_LOGIC); अंत mux_8to1; वास्तुकला mux_8to1 का व्यवहार शुरू होता है: i से 0 से 7 में उत्पन्न एफ & lt; = y (i) जब S = i और '0'; अंत रन बनाने; अंत व्यवहार;
लेकिन Xilinx मुझे एक त्रुटि रिपोर्ट
त्रुटि: Xst: 528 - इकाई में मल्टी-स्रोत & lt; mux_8to1 & gt; सिग्नल पर & lt; F & gt;
क्या यह इनपुट इनपुट या कहीं पर इस्तेमाल नहीं किया जा सकता है?
संश्लेषण उपकरण उत्पन्न पाश को अनवरोधित करेगा, जिसके परिणामस्वरूप:
F & lt; = Y (0) जब S = 0 else '0'; एफ एंड एलटी; = वाई (1) जब एस = 1 और '0'; ... एफ एंड एलटी; = वाई (7) जब एस = 7 और '0';
आप देख सकते हैं कि एफ
के पास कई ड्राइवर हैं, जो वास्तव में Xilinx संश्लेषण के बारे में शिकायत करता है।
गैर-मानक वीएचडीएल पैकेज std_logic_unsigned
का उपयोग करते हुए mux, को चलाने के लिए: के लिए ...
के साथ:
f
लूप के साथ कैसे करें, यह कोड है:
प्रक्रिया (वाई, एस) शुरू होती है एफ & lt; = 'X' ; - यदि 0 से 7 लूप में लूप में कोई परिणामी चालक नहीं होता है तो S से बचने के लिए डिफॉल्ट यदि S = I तो एफ & lt; = y (i); अगर अंत; अंत लूप; प्रक्रिया समाप्त;
जिम लुईस टिप्पणी से प्रेरणा के अनुसार, मानक वीएचडीएल-2002 पैकेज संख्यात्मक_स्टडी
के साथ:
पुस्तकालय आईईईईई का उपयोग कर कोड; का प्रयोग करें ieee.std_logic_1164.all; का प्रयोग करें ieeee.numeric_std.all;
संक्षिप्त रूप में है:
F & lt; = y (to_integer (अहस्ताक्षरित (एस)));
और पाश का उपयोग:
प्रक्रिया (वाई, एस) शुरू होती है एफ & lt; = 'X'; - यदि बिना किसी अहस्ताक्षरित (एस) = मैं तो एफ एंड एलटी; = वाई (आई); 0 से 7 पाश में लूप में कोई भी परिणामी चालक नहीं होने पर डिफ़ॉल्ट से बचने के लिए डिफ़ॉल्ट; अगर अंत; अंत लूप; प्रक्रिया समाप्त;
Comments
Post a Comment