以下は、IFブロックを使用するVHDLのコードです。 最後の "elsif"では、 "my_choice"の値が "ch4"に割り当てられます。条件が成立しないのでelseブロックを実行する。しかし、 "my_choice"が高いインピーダンス(または何か他のもの)のような(ch1、ch2、ch3、ch4)以外の他の値を得る可能性はありますか?もしそうなら、どうすればそれを避けることができますか?この割り当てはコードの操作を変更する可能性があるためです。 my_choice
ので"if"ブロックがvhdlの与えられた選択肢から外れる可能性はありますか?
entity entity_name
port
.....
.....
end entity_name;
architecture bhvr of entity_name
type choices is (ch1, ch2, ch3, ch4);
signal my_choice,next_choice : choices;
begin
process(clk, reset)
begin
if reset='1' tehn
--------reset
else
my_choice<=next_choice;
end if;
end process;
process(my_choice)
begin
if my_choice = ch1 then
next_choice <= ch2;
elsif my_choice = ch2 then
next_choice <= ch3;
elsif my_choice = ch3 then
next_choice <= ch4;
else ------------------------------------coming to ch4
---- task for ch4
end process;
end architecture;
お手数をおかけしていただきありがとうございます。 – Raviteja
@Raviteja:この回答があなたの質問を解決する場合は、他のユーザーが自分の時間を優先することができるように、「承諾」をクリックすることをおすすめします。 –