Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 23:04, курсовая работа
AHDL — проприетарныйязык описания аппаратуры от AlteraCorporation предназначенный для программированя выпускаемых ей ПЛИС. Язык имеет Ада-подобный синтаксис и схож с VHDL или Verilog. Он поддерживается компиляторами Quartus и Max+ от Altera.
Недостаток AHDL вегопроприетарности. Преимущество AHDL в том, что все конструкции языка синтезируемы. В сравнении с Verilog AHDL как язык ассемблера в сравнении с языком высокого уровня: в AHDL больше контроля, но меньше высокоуровниевой поддержки.
Программируемые логические интегральные схемы (ПЛИС), представляют собой очень удобную элементную базу для разработки электронной аппаратуры. ПЛИС представляют собой массив вентилей, у которых программируются связи и функции, причем все процедуры по настройке структуры ПЛИС можно выполнить непосредственно на столе разработчика.
P=cmeters.P;
END;
Листингфайла «counter6667.tdf»:
SUBDESIGN counter6667
( CLK :INPUT;
R :INPUT;
P,Q[15..0]:OUTPUT;
)
Variable
RP,RG[15..0]: DFF;
BEGIN
RG[].CLRN=R;
RG[].CLK=CLK;
RP.CLK=!CLK;
case Q[] IS
WHEN B"0001101000001011"=> RG[].D=0; RP.D = B"1";
WHEN OTHERS => RG[].D=RG[].Q+1; RP.D=B"0";
END CASE;
Q[] = RG[].Q;
P = RP.Q;
END;
Листингфайла «counterOfmeters.tdf»:
include "t210.inc";
SUBDESIGN counterofmeters
( CLK :INPUT;
V[19..0],P:OUTPUT;)
Variable
Q0[3..0],Q1[3..0],Q2[3..0],Q3[
T210A,T210B,T210C,T210D,T210E: T210;
BEGIN
T210A.CLK=CLK;
T210B.CLK=CLK;
T210C.CLK=CLK;
T210D.CLK=CLK;
T210E.CLK=CLK;
T210A.RN=VCC;
T210B.RN=VCC;
T210C.RN=VCC;
T210D.RN=VCC;
T210E.RN=VCC;
Q0[]=T210A.Q[];
Q1[]=T210B.Q[];
Q2[]=T210C.Q[];
Q3[]=T210D.Q[];
Q4[]=T210E.Q[];
T210A.B=VCC;
T210B.B=T210A.P;
T210C.B=T210B.P & T210A.P;
T210D.B=T210B.P & T210A.P & T210C.P;
T210E.B=T210B.P & T210A.P & T210C.P & T210D.P;
P=T210E.P;
V[]=(Q4[],Q3[],Q2[],Q1[],Q0[])
END;
Листингфайла «t210.tdf»:
SUBDESIGN T210
( CLK, RN, B :INPUT;
P,Q[3..0]:OUTPUT;
)
Variable
RG[3..0],RP: DFF;
BEGIN
RG[].CLK=CLK&B;
RP.CLK=!CLK;
RG[].CLRN=RN;
CASE RG[].Q IS
WHEN 9 =>RG[].D=0; RP.D=B"1";
WHEN OTHERS =>RG[].D=RG[].Q+1; RP.D=B"0";
END CASE;
Q[] = RG[].Q;
P=RP.Q;
END;
Результаты моделирования проекта:
Моделирование №1
Моделирование №2