需要實現多個延遲計數器用於跟隨等待時鐘週期,可綜合。如何在同一進程中使用多個延遲計數器在VHDL中
if(clk'event and clk='1')then
if (StartTX = 1)then
TxBusy <= '1';
StartTxp <= '1';
Wait for 1 clock cycles;
StartTxp <= '0';
End IF;
IF (StartTX = 1)then
Wait x clock cycles ;
StartTxM <= '1';
Wait 1 clock cycles;
StartTxM<= '0';
End IF ;
IF (StartCal = 1) AND (StartInut =1) AND (IValid = 1)then
Wait 78 ns ;
Interrupt <= '1' ;
Wait 1 clock cycle
Interrupt = 0
End IF
在第二條if語句中,如果starttx = 1,則等待X時鐘週期。然後等待1個時鐘週期,以獲得StattxM = 1 –
這就是上面的例子...在StartTx = 1時,DelayCounter用X初始化。一旦DelayCounter遞減到1,StartTxM被設置爲1個時鐘。 DelayCounter保持0直到下一個StartTx = 1 – baldyHDL