Скачиваний:
21
Добавлен:
10.12.2013
Размер:
12.8 Кб
Скачать

Приложение 2.1

SUBDESIGN USOR

%----------PIN----------------------% Описание выводов ПЛИС

(

R1,R2,M,ALE,RD,CE,WR,A[7..0] :INPUT; Входные

T[2..1],INTO :OUTPUT; Выходные

ADO0,ADO1,ADO2,ADO3 :BIDIR; Двунаправленные

ADO4,ADO5,ADO6,ADO7 :BIDIR; Двунаправленные

)

%—— Внутренние триггеры и комбинационные схемы —————%

VARIABLE

RG[24..1],Q[4..1] :DFF; D - триггеры

RE[13..1],RW[24..1] :DFF; D - триггеры

CT[5..1] :TFF; Т - триггеры

SHET,INT,T1,T2 :DFF; D - триггеры

Q5 :TFF; Т - триггеры

SA[1..0],SA7 :DFF; D - триггеры

AD7,AD6,AD5,AD4,RZ,MD,MDI :NODE; Комбинационная схема

AD3,AD2,AD1,AD0,CLK64 :NODE; Комбинационная схема

COMP1 :DFF; D - триггеры

OUT :JKFF; JK - триггер

%---------------------------------------------------------------%

BEGIN

SA[1..0].D = ADO[1..0];

SA[1..0].CLK = !ALE;

SA7.D = ADO7;

SA7.CLK = !ALE;

% -----------------WRITE---------------%

% 0 - EMPTY 1 - 1 BAYT %

% 2 - 2 BAYT 3 -3 BAYT %

% -----------------READ----------------%

% 0-[1..4]SAPROS :5MK: 6COMP1: 7COMP2 %

% 1-NOMER %

RE[4..1].D = RG[16..13];

RE5.D = RG11;

RE[13..6].D = RG[24..17];

RE[13..1].CLK=!M;

RG1.D = Q4;

RG[24..2].D = RG[23..1] ;

RG[24..1].CLK=!Q3;

CT1.T = VCC; Описание счетчика

CT2.T = CT1;

CT3.T = CT1 & CT2 ;

CT4.T = CT1 & CT2 & CT3;

CT5.T = CT1 & CT2 & CT3 & CT4;

CT1.CLRN = M;

CT[5..2].PRN = M ; % USTANOV 30 %

CT[5..1].CLK = !Q3;

OUT.J = (CT[5..1]==4);

П 2.1

OUT.K = (CT[5..1]==28);

OUT.CLK = Q3;

Q1.CLK = !R1 ;

Q1.PRN = !R2; % D5 %

Q1.D = GND;

Q2.CLK = !R2; % D6 %

Q2.PRN = !R1;

Q2.D = GND;

Q3.D = !Q3;

Q3.CLK =!(!R1 & !R2); % D10 Тактовая частота - F64 %

Q3.PRN = M;

RZ = (!Q1 & R1) # (R2 & !Q2) ; % Код RZ %

Q4.D = GND;

Q4.PRN = !RZ ; % Код NRZ %

Q4.CLK = Q3 ;

md = lcell(m);

MDI = LCELL(MD);

SHET.CLRN=MDI;

SHET.D = !SHET;

SHET.CLK = RZ;

COMP1.D = !((RG1 $ A0) # (RG2 $ A1) # (RG3 $ A2) # (RG4 $ A3)

#(RG5 $ A4) # (RG6 $ A5) # (RG7 $ A6) # (RG8 $ A7));

COMP1.CLK = !M;

INT.D = SHET & !((RG1 $ A0) # (RG2 $ A1) # (RG3 $ A2) # (RG4 $ A3)

#(RG5 $ A4) # (RG6 $ A5) # (RG7 $ A6) # (RG8 $ A7));

INT.CLK = !M;

%__________ Выходные регистры D24____________ %

RW1.D = (ADO0 & CE &!SA7&(SA[1..0]==3)

# RW1 & !(CE &!SA7&(SA[1..0]==3))) & !OUT;

RW[8..2].D = (ADO[7..1] & CE &!SA7&(SA[1..0]==3)

# RW[8..2] & !(CE &!SA7&(SA[1..0]==3))) & !OUT

# RW[7..1] & OUT;

RW[16..9].D = (ADO[7..0] & CE &!SA7&(SA[1..0]==2)

# RW[16..9] & !(CE &!SA7&(SA[1..0]==2))) & !OUT

# RW[15..8] & OUT;

RW[24..17].D = (ADO[7..0] & CE &!SA7&(SA[1..0]==1)

# RW[24..17] & !(CE &!SA7&(SA[1..0]==1))) & !OUT

# RW[23..16] & OUT;

RW[24..1].CLK = !CLK64;

CLK64 = (!Q3 & OUT) # !WR & !OUT & CE;

% _________Устройство полярности____________ %

Q5.T = RW24 & OUT;

Q5.CLK = Q3;

T1.D = INT & RW24 & Q5 & OUT;

T2.D = INT & RW24 & !Q5 & OUT;

П 2.1

T[2..1].CLK = Q3;

%____________________________________________%

INTO = M;

AD0 = RE1 & (SA[1..0]==0)

# RE6 & (SA[1..0]==1);

AD1 = RE2 & (SA[1..0]==0)

# RE7 & (SA[1..0]==1);

AD2 = RE3 & (SA[1..0]==0)

# RE8 & (SA[1..0]==1);

AD3= RE4 & (SA[1..0]==0)

# RE9 & (SA[1..0]==1);

AD4 = RE5 & (SA[1..0]==0)

# RE10 & (SA[1..0]==1);

AD5 = COMP1 & (SA[1..0]==0)

# RE11 & (SA[1..0]==1);

AD6 = RE12 & (SA[1..0]==1);

AD7 = RE13 & (SA[1..0]==1);

ADO7 = TRI ( AD7,(!SA7&CE & !RD) );

ADO6 = TRI ( AD6,(!SA7&CE & !RD) );

ADO5 = TRI ( AD5,(!SA7&CE & !RD) );

ADO4 = TRI ( AD4,(!SA7&CE & !RD) );

ADO3 = TRI ( AD3,(!SA7&CE & !RD) );

ADO2 = TRI ( AD2,(!SA7&CE & !RD) );

ADO1 = TRI ( AD1,(!SA7&CE & !RD) );

ADO0 = TRI ( AD0,(!SA7&CE & !RD) );

END;

Соседние файлы в папке Колин