Documente Academic
Documente Profesional
Documente Cultură
Student:
Netedu Andrada
Grupa: 1208A
Enun:
S se implementeze un registru cu o intrare de selecie pentru
ncrcarea paralel sau deplasarea n inel inversat(n acest ultim caz cu
intrare automat in ciclul principal de funcionare); cu numr maxim
posibil de celule.
Noiuni teoretice:
Registru paralel
Un registru paralel const de fapt ntr-un numr de bistabile de tip
D care au tactul n comun.
Metoda 1:
MODULE Registru
TITLE 'Deplasare in inel '
@alternate
declarations
CLK pin 1; "istype 'com';
!OE pin 11; "istype 'com';
SEL pin 2; "istype 'com';
D0,D1,D2,D3,D4,D5,D6 pin 3,4,5,6,7,8,9;
Q0..Q6 pin 19, 18, 17, 16, 15, 14, 13 istype 'reg'; "semnale de iesire
Q=[Q6..Q0];
X=.x.;
C=.c.;
contor=[Q6..Q0];
data=[D6..D0];
equations
Q.clk=CLK;
Q.oe=OE;
test_vectors
([CLK,SEL,D6,D5,D4,D3,D2,D1,D0]->[Q6,Q5,Q4,Q3,Q2,Q1,Q0])
[C, 0,1,0,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,0,0]-> [X,X,X,X,X,X,X];
"[C, 1,0,0,1,0,0,0,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
"[C, 1,1,1,1,0,0,0,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,0,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 1,0,0,1,0,1,0,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 1,0,1,0,0,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
END
Metoda 2:
Descrierea funcionrii registrului de deplasare pe baza ecuaiilor
logice.
MODULE Registru
TITLE 'Deplasare in inel '
declarations
CLK pin 1;
!OE pin 11;
S1 pin 2;
D0,D1,D2,D3,D4,D5,D6 pin 3,4,5,6,7,8,9;
Q0..Q6 pin 19, 18, 17, 16, 15, 14, 13 istype 'reg'; "semnale de iesire
Q=[Q6..Q0];
X=.x.;
C=.c.;
equations
Q.clk=CLK;
Q.oe=OE;
Q6.D = ( D6 & SEL
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & !Q3.PIN & !Q4.PIN & !Q5.PIN
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & !Q3.PIN & !Q4.PIN & Q6.PIN
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & !Q0.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN );
" ISTYPE 'INVERT'
Q6.C = ( CLK );
Q6.OE = ( !OE );
Q5.D = ( SEL & D5
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & !Q3.PIN & !Q4.PIN & Q6.PIN
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & !Q3.PIN & Q5.PIN & Q6.PIN
# !SEL & !Q0.PIN & !Q1.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN );
" ISTYPE 'INVERT'
Q5.C = ( CLK );
Q5.OE = ( !OE );
Q4.D = ( SEL & D4
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & !Q3.PIN & Q5.PIN & Q6.PIN
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & !Q0.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN );
" ISTYPE 'INVERT'
Q4.C = ( CLK );
Q4.OE = ( !OE );
Q3.D = ( SEL & D3
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN
# !SEL & !Q0.PIN & !Q1.PIN & !Q2.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & !Q0.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & !Q6.PIN );
" ISTYPE 'INVERT'
Q3.C = ( CLK );
Q3.OE = ( !OE );
Q2.D = ( SEL & D2
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN
# !SEL & !Q0.PIN & !Q1.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & !Q0.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & !Q5.PIN & !Q6.PIN );
" ISTYPE 'INVERT'
Q2.C = ( CLK );
Q2.OE = ( !OE );
Q1.D = ( SEL & D1
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN
# !SEL & !Q0.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & !Q6.PIN
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & !Q4.PIN & !Q5.PIN & !Q6.PIN );
" ISTYPE 'INVERT'
Q1.C = ( CLK );
Q1.OE = ( !OE );
Q0.D = ( SEL & D0
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN
# !SEL & Q1.PIN & Q2.PIN & Q3.PIN & Q4.PIN & Q5.PIN & Q6.PIN
# !SEL & Q0.PIN & Q1.PIN & Q2.PIN & Q3.PIN & !Q5.PIN & !Q6.PIN
# !SEL & Q0.PIN & Q1.PIN & !Q3.PIN & !Q4.PIN & !Q5.PIN & !Q6.PIN );
" ISTYPE 'INVERT'
Q0.C = ( CLK );
Q0.OE = ( !OE );
test_vectors
[C, 0,1,0,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,0,0,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,0,0]-> [X,X,X,X,X,X,X];
"[C, 1,0,0,1,0,0,0,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
"[C, 1,1,1,1,0,0,0,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,0,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 1,0,0,1,0,1,0,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,0,0,0,0,0]-> [X,X,X,X,X,X,X];
[C, 1,0,1,0,0,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,1,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,0,0,1,1,1,1,1]-> [X,X,X,X,X,X,X];
[C, 0,1,1,1,1,1,1,0]-> [X,X,X,X,X,X,X];
END
Rezultate :
JEDEC Simulation Waveform:
Chip Report:
Page 1
ispLEVER Classic 1.7.00.05.28.13 - Device Utilization Chart
Deplasare in inel
-------------------------------------------------------------------------------Module
: 'registru'
-------------------------------------------------------------------------------Input files:
ABEL PLA file
Device library
: registru.tt3
: P16V8R.dev
Output files:
Report file
: registru.rpt
Programmer load file : registru.jed
--------------------------------------------------------------------------------
10
11
Signal
| Pin | Terms | Terms | Terms
Name
| Assigned | Used | Max | Unused
=========================================|==========|=======|=======|=======
Q6.D
| 13 | 5 | 8 | 3
Q5.D
| 14 | 5 | 8 | 3
Q4.D
| 15 | 5 | 8 | 3
Q3.D
| 16 | 5 | 8 | 3
Q2.D
| 17 | 5 | 8 | 3
Q1.D
| 18 | 5 | 8 | 3
Q0.D
| 19 | 5 | 8 | 3
12
D0
Q0.PIN
Q1.PIN
Q2.PIN
Q3.PIN
Q4.PIN
Q5.PIN
Q6.PIN
| 3 | INPUT
| 19 | COMB FB
| 18 | COMB FB
| 17 | COMB FB
| 16 | COMB FB
| 15 | COMB FB
| 14 | COMB FB
| 13 | COMB FB
Page 7
ispLEVER Classic 1.7.00.05.28.13 - Device Utilization Chart
Deplasare in inel
P16V8R Unused Resources:
--------------------------------------------------------------------------------
13
Signal
| Pin | Terms | Terms | Terms
Name
| Assigned | Used | Max | Unused
=========================================|==========|=======|=======|=======
Q6.D
| 13 | 4 | 8 | 4
Q5.D
| 14 | 4 | 8 | 4
Q4.D
| 15 | 4 | 8 | 4
Q3.D
| 16 | 4 | 8 | 4
Q2.D
| 17 | 4 | 8 | 4
Q1.D
| 18 | 4 | 8 | 4
Q0.D
| 19 | 4 | 8 | 4
==== List of Inputs/Feedbacks ====
Signal Name
| Pin | Pin Type
=========================================|==========|=========
CLK
| 1 | CLK
OE
| 11 | OE
Q0.PIN
| 19 | COMB FB
Q1.PIN
| 18 | COMB FB
Q2.PIN
| 17 | COMB FB
Q3.PIN
| 16 | COMB FB
Q4.PIN
| 15 | COMB FB
Q5.PIN
| 14 | COMB FB
Q6.PIN
| 13 | COMB FB
S1
| 2 | INPUT
14
15