我剛學vhdl,有幾個疑問的地方想請教各位大俠,大家不吝賜教啊!
1。vhdl里面有沒有類似高級語言或匯編語言里的“宏”?宏用起來好方便的說,但vhdl里好像沒看到有這個。如果我想把一段程序做成一個模塊,以后不停調用模塊該怎么辦?只有用子函數(shù)了?
3。為什么我不能用while()loop指令,編譯時總出錯,并告訴我只有用第一種循環(huán)指令可用:for xx in()loop。
2。我看別人的程序里,定時器都是自己編程實現(xiàn)的,但諸如“after 10 ns”“wait for 2 ns”又是怎么回事?內部沒有定時器它怎么知道延遲10ns呢?
3。幫看看下面怎么回事?
process(a_1)
begin
if(a_1'event and a_1='1')then
a1<=a_1 after 1 us;
end if;
a1<=a_1 ;
end process;
我想實現(xiàn)的是:當a_1變化時,若是上升沿,則延遲1us,若下降沿,不需延遲。
但編譯通不過,說重復賦值?我如何來實現(xiàn)延遲啊?
大俠們,謝過了,幫幫我好嗎?
有誰用過VHDL語言的嗎?請進來看一下子:)
全部回復(4)
正序查看
倒序查看
@frex
在同一個process里,不能對同一個信號付值兩次
謝謝賜教!
再請問一下:
1.為什么我的MAXPLUS II版本里,不能用while loop和generic指令(其他不能用的還沒碰上呢),哪怕是書上現(xiàn)成的例子,涉及到這幾條指令的,都告訴我無法用它。
2.“after 10 ns用于仿真,綜合后就沒用了”是不是指如果我把程序下載到CPLD器件后,信號發(fā)生的時候就沒法實現(xiàn)延遲了?
3.那我要實現(xiàn)上升沿延遲該怎么辦?有沒有空指令或等待指令,讓我定時器計數(shù)的時候不干任何事,只是等待就行。
再請問一下:
1.為什么我的MAXPLUS II版本里,不能用while loop和generic指令(其他不能用的還沒碰上呢),哪怕是書上現(xiàn)成的例子,涉及到這幾條指令的,都告訴我無法用它。
2.“after 10 ns用于仿真,綜合后就沒用了”是不是指如果我把程序下載到CPLD器件后,信號發(fā)生的時候就沒法實現(xiàn)延遲了?
3.那我要實現(xiàn)上升沿延遲該怎么辦?有沒有空指令或等待指令,讓我定時器計數(shù)的時候不干任何事,只是等待就行。
0
回復