[an error occurred while processing this directive]
|
subdesign Cnt
(
Clk : input;
)
variable
Cnt[15..0] : Dff;
ann[15..1] : node;
Dp[2..0] : Tff;
ACnt[15..0] : Tff;
begin
-- Синхронный 16-разрядный UP - счетчик:
Cnt[].clk = Clk;
ann[15..1] = Cnt[14..0] & (ann[14..1], 1);
Cnt[15..0] = !(Cnt[15..0] $ !(ann[15..1], 1)); end if;
-- или просто:
Cnt[].clk = Clk;
Cnt[] = Cnt[] + 1;
-- Синхронный 16-разрядный DOWN - счетчик:
Cnt[].clk = Clk;
ann[15..1] = !Cnt[14..0] & (ann[14..1], 1);
Cnt[15..0] = !(Cnt[15..0] $ !(ann[15..1], 1)); end if;
-- или просто:
Cnt[].clk = Clk;
Cnt[] = Cnt[] - 1;
-- Синхронный счетчик по модулю 5:
Dp[].clk = Clk; Dp0.t = !Dp2; Dp1.t = Dp0; Dp2.t = (Dp0 & DP1) # Dp2;
-- Асинхронный 16-разрядный UP - счетчик:
ACnt[].Clk = (!Acnt[14..0], Clk);
Acnt[].T = vcc;
end;
Не пинайте сильно, если что не так...
E-mail: info@telesys.ru