Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
q q
Introduccin
q
ABEL significa
t Advanced Boolean Equation Language
Descripcin lgica
t Ecuaciones t Tablas t Diagramas de estados
de bajo nivel
t Muy cercano a la circuitera que representa t Muy eficaz para describir diseos digitales pequeos (< algunos miles de puertas)
Vectores de test
Lenguaje ABEL - 1
Lenguaje ABEL - 2
Comentarios:
Vectores de test
Empiezan por comillas Se extienden hasta las siguientes comillas o hasta el final de lnea
q
Final
V1 P V2 M
Encabezamiento y final
t Las palabras clave module y end marcan los lmites de un diseo
Lenguaje ABEL - 3
Lenguaje ABEL - 4
Declaraciones
q
Declaraciones
U1 device 'P22V10';
q
Declaracin de constantes
H, L = 1, 0;
Declaracin de pines
V1, V2, P
pin
2, 3, 4;
t Los nmeros en ABEL siempre representan valores naturales t Igual ocurre con los operadores aritmticos y relacionales t La base por defecto es decimal
B ase Binaria Octal Decimal Hexadecimal
Universidad de Zaragoza, IEC.
Smbolo ^b ^o ^d (defecto) ^h
N1, N2, N3 node; t En las arquitecturas tipo SPLD se asignan a un pin de salida (si no se pueden simplificar en la sntesis)
Lenguaje ABEL - 5
Operadores
q
Conjuntos
q
Lgicos
! & # $ !$ NOT (complemento a 1) AND OR XOR XNOR
Aritmticos
t Con conjuntos slo - y + + << >> * / % Negacin (compl. a 2) Resta Suma Desplazamiento a izda. Desplazamiento a dcha. Multiplicacin Divisin entera Mdulo (resto de A/B) -A A-B A+B A<<B A>>B A*B A/B A%B
Lista de seales o constantes separadas por comas o por el operador de rango (..), encerradas entre corchetes
t Simplifican la escritura de ecuaciones lgicas t Declaracin de conjuntos
ASET = [A2,A1,A0]; BSET = [Y2..Y0];
Relacionales
t Comparan operandos en una expresin t El resultado puede ser 1 (verdadero) o 0 (falso) == != > >= < <= Igual No igual Mayor que Mayor o igual que Menor que Menor o igual que A==B A!=B A>B A>=B A<B A<=B
Asignacin
= := Asignacin combinacional Asignacin secuencial (en el siguiente flanco de reloj)
t Operaciones con conjuntos Se realizan sobre cada elemento del conjunto Los nmeros se truncan o se rellenan con ceros
ASET & BSET ASET & B0 2 & ASET ASET = 2
Universidad de Zaragoza, IEC.
[A2&B2, A1&B1, A0&B0] [A2&B0, A1&B0, A0&B0] [0&A2, 1&A1, 0&A0] A2=0; A1=1; A0=0;
Lenguaje ABEL - 8
Lenguaje ABEL - 7
Descripcin lgica
q
Ecuaciones
q
Sentencias de asignacin:
t Operador de asignacin combinacional (=)
equations Y = A & B;
A B
[X,Y].clk = CK;
Evitar realimentacin combinacional 1
equations Y = Y & B;
D Q
CK
Y7..Y0
Lenguaje ABEL - 10
Ecuaciones
q
Extensiones de punto
q
Sentencia when-then-else
t Equivale a una ecuacin
equations when cond1 then Y = exp1 else when cond2 then Y = exp2 else Y = exp3; D0 D1 D2 D3 00 01 10 11 S1 S0 Y equations Y = (cond1)&(exp1) # !(cond1)& (cond2) &(exp2) # !(cond1)& !(cond2)&(exp3);
SEL=[S1,S0]; equations when SEL==0 then Y=D0 else when SEL==1 then Y=D1 else when SEL==2 then Y=D2 else Y=D3;
Lenguaje ABEL - 11
Lenguaje ABEL - 12
Extensiones de punto
q
Ejemplos
q
Ejemplos:
.set, .pr .d .clk D SPr ARe .aclr, .re Q .clk .oe .d .clr, .pr D SPr ARe .aset, .re .q .fb .pin .pin
Lenguaje ABEL - 13
.oe
.fb, .q
module Cont8 Cont8 device 'P22V10'; CLK,RST,UP pin 1,2,3; Q2,Q1,Q0 pin 23,22,21; CN = [Q2,Q1,Q0]; equations when UP then CN:=CN+1 else CN:=CN-1; CN.clk=CLK; CN.aclr=RST; end
module Cont13 Cont13 device 'P22V10'; CLK,RST,PRT pin 1,2,3; Q3,Q2,Q1,Q0 pin 23,22,21,20; CN = [Q3,Q2,Q1,Q0]; equations when PRT then CN:=12 else when (CN==12) then CN:=0 else CN:=CN+1; CN.clk=CLK; CN.aclr=RST; end
Ojo! Simulacin de ecuaciones OK porque las salidas siempre estn habilitadas Para que la simulacin sea OK indep. del PLD, realimentar con la extensin .fb
Universidad de Zaragoza, IEC. Lenguaje ABEL - 14
Realimentacin en ecuaciones
q
Tablas
q q
Posibilidades:
t Sin extensin: Se realimenta del pin; si no existe, se realimenta del biestable con polaridad normalizada al pin. t Con .fb: Se realimenta del biestable con polaridad normalizada al pin; si no existe, se realimenta del pin. t Con .pin: Se realimenta del pin; si no existe resulta un error.
Ejemplo de tabla
q
Diagramas de estados
a
q
g d
b c
q
module BCD7 D3,D2,D1,D0 pin; a,b,c,d,e,f,g pin; BCD = [D3..D0]; ON,OFF = 1,0; "Invertir para nodo comn truth_table(BCD ->[ a, b, c, d, e, f, g]) 0 ->[ ON, ON, ON, ON, ON, ON,OFF]; 1 ->[OFF, ON, ON,OFF,OFF,OFF,OFF]; ... 9 ->[ ON, ON, ON, ON,OFF, ON, ON]; end BCD7
Universidad de Zaragoza, IEC. Lenguaje ABEL - 17
Lenguaje ABEL - 18
Diagramas de estados
q
Diagramas de estados
q
S0 S2
E
t reg_estado, identificador o conjunto de identificadores que especifican los biestables de estado t id_estado, identificador del estado actual t ecuaciones, definen las salidas para el estado actual (opcional) t cond_trans, condicin de transicin de estado que define: Estado siguiente: if-then-else y goto Opcionalmente ecuaciones de salida asociadas a las transiciones entre estados: with-endwith
Universidad de Zaragoza, IEC. Lenguaje ABEL - 19
t Transiciones condicionales
state_diagram ESTADO state S2: if E then S0 else S2; ...
E
S0
S2
E Y=1 E Y=0
S0
Lenguaje ABEL - 20
E/S
Detector 001...
E/S
S0
Detector 001...
E/S
E/S
S0
module Mly_001 CK,RST,E,S pin; Q1,Q0 pin istype 'reg'; EST = [Q1, Q0]; S0 = [0, 0]; S1 = [0, 1]; S2 = [1, 1]; state_diagram EST state S0: if !E then S1 else S0; state S1: if !E then S2 else S0; state S2: if E then S0 else S2; equations S = E & (EST == S2); EST.clk = CK; EST.aclr = RST; end
Universidad de Zaragoza, IEC.
4 Funcin de salida
module With_001 CK,RST,E,S pin; Q1,Q0 pin; ESTADO = [Q1, Q0]; S0 = [0, 0]; S1 = [0, 1]; S2 = [1, 1]; state_diagram EST state S0: S = 0; if !E then S1 else S0; state S1: S = 0; if !E then S2 else S0; state S2: if E then S0 with S = 1; endwith; else S2 with S = 0; endwith; equations EST.clk = CK; EST.aclr = RST; end
Universidad de Zaragoza, IEC.
E/S
Lenguaje ABEL - 21
Lenguaje ABEL - 22
Vectores de test
q
t .X. en simulacin: Como entrada, el simulador escoger un valor (0 1) Como salida, dar lo mismo el valor que aparezca a la salida
"Contador con reset asncrono activo en H y OEN test_vectors ([CLOCK, RESET, OE ] -> [ Q2, Q1, Q0]) [ .X., 1, 1 ] -> [ 0, 0, 0 ]; [ .C., 0, 1 ] -> [ 0, 0, 1 ]; [ .C., 0, 1 ] -> [ 0, 1, 0 ]; [ .C., 0 , 0 ] -> [.Z., .Z., .Z.];
Universidad de Zaragoza, IEC. Lenguaje ABEL - 23