चर उपयोग किया जाता है जब आप धारावाहिक कोड बनाना चाहते हैं, सामान्य समानांतर कोड के विपरीत है। (सीरियलाइज्ड का मतलब है कि आदेश उनके क्रम में निष्पादित होते हैं, एक दूसरे के साथ एक के बाद)। एक चर केवल एक प्रक्रिया के अंदर मौजूद कर सकते हैं, और मूल्यों का काम समानांतर नहीं है। इससे पहले कि प्रक्रिया भाग गया
signal a,b : std_logic_vector(0 to 4);
process (CLK)
begin
if (rising_edge(clk)) then
a <= '11111';
b <= a;
end if;
end process;
a
का मूल्य b
में डाल दिया जाएगा, और नहीं '11111
': उदाहरण के लिए, निम्नलिखित कोड पर विचार करें। दूसरी ओर, कोड:
signal a,b : std_logic_vector(0 to 4);
process (CLK)
variable var : std_logic_vector(0 to 4);
begin
if (rising_edge(clk)) then
var := '11111';
a <= var;
b <= var;
end if;
end process;
a
और b
दोनों में मूल्य '11111'
डाल देंगे।
सच कहूं, मेरे अनुभव में, समय की सबसे आप चर का उपयोग करने की जरूरत नहीं है, केवल जगह मैं प्रयोग किया जाता एक पाश में था, जहां मैं अगर संकेतों के एक नंबर के किसी भी 1 है की जाँच करने के लिए आवश्यक:
type BitArray is array (natural range <>) of std_logic;
--...
entity CAU_FARM is
port
(
-- IN --
REQUEST : in BitArray(0 to (FLOW_num -1));
--..
);
end CAU_FARM;
--...
farm_proc: process(CLK_FARM, RESET)
variable request_was_made_var : std_logic;
begin
if RESET = C_INIT then
-- ...
elsif rising_edge(CLK_FARM) then
-- read state machine --
case read_state is
when st_read_idle =>
request_was_made_var := '0';
for i in 0 to (FLOW_num -1) loop
if (REQUEST(i) = '1') then
request_was_made_var := '1';
end if;
end loop;
if (request_was_made_var = '1') and (chosen_cau_read_sig /= 8) then
read_state <= st_read_stage_1;
for i in 0 to (FLOW_num -1) loop
if (i = choice_out_sig) then
ACKNOWLEDGE(i) <= '1';
end if;
end loop;
else
read_state <= st_read_idle;
end if;
------------------------
when st_read_stage_1 =>
--...
दोनों धन्यवाद! मैंने एलएलए के जवाब का चयन किया क्योंकि उत्तर स्पष्ट रूप से कहता है कि धारावाहिक ** केवल ** धारावाहिक कोड के लिए एक प्रक्रिया में मौजूद है। ऐसा लगता है कि आप दोनों एक ही बात कह रहे थे, लेकिन मेरे लिए महत्वपूर्ण शब्द 'केवल' ने इसे और अधिक स्पष्ट बना दिया। – doddy