VHDL的IF語句是 IF THEN ELSIF 向上與怎么解釋啊
IF 條件1 then
滿足條件1執行的代碼;
elsif 條件2 then
滿足條件2執行的代碼;
(此處如果還有條件繼續選擇elsif,否則)
else
剩余情況下執行的代碼;
end if;
IF語句的執行是有優先性選擇的,程序一進來會先判斷條件1是否滿足,然后是條件2,一直繼續下去。
看看如果還有不明白的給我發郵件吧liuyle04@*
VHDL語言的IF語句
IF語句最常用在process進程里面,不能直接放在結構體中,結構體可改為:
-- Architecture Body
ARCHITECTURE adder_architecture OF adder IS
BEGIN
PROCESS(a,b,ci)
BEGIN
IF(a='0' and b='0' and ci='0') THEN
sEND IF;
END PROCESS ;
END adder_architecture;
VHDL中IF嵌套
首先應該指出的是,這個設計不能稱為“四進制計數器”,從二進制的角度說,它是一個4位(能從“0000”計到“1111”)的帶進位的計數器。
if語句屬于順序語句,設計時只能放在進程(process)中。你的程序中,當Q1="1111"時如果來了時鐘的上升沿,首先會執行Q1 <= Q1 +1,但由于Q1為信號(signal),信號的賦值是有延時的,所以下面的if語句里的Q1仍等于"1111",程序執行的結果是A='1'。
如果你在進程的末尾把信號Q1賦給了輸出端口Q的話,那時候Q的值為"0000",因為那時Q1<=Q1+1已經完成了。
如果你把Q1定義為變量(variable),變量的賦值是立即發生的,在接下來的if語句中Q1將等于"0000",程序執行結果是A='0'。
——*