아래는 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;
도움 주셔서 감사합니다. Morten Zilmer. – Raviteja
@Raviteja :이 답변으로 질문이 해결되면 다른 사용자가 시간의 우선 순위를 지정할 수 있도록 승인 ("V"표시 왼쪽)을 클릭하는 것이 좋습니다. –