
Дипломы2 / Диплом / Чужие дипломы / Колин / PR21
.DOCПриложение 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;