prosesador en digitales

8
P3 .1 ESPECIFICACIÓN ESTRUCTURAL (continuación) Lluís Terés Instituto de Microelectrónica de Barcelona, IMB-CNM (CSIC) Universitat Autònoma de Barcelona (UAB)

Upload: cigua

Post on 24-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

estructura digital del proceso de calculos en la electronica

TRANSCRIPT

Page 1: Prosesador en digitales

P3.1 ESPECIFICACIÓN ESTRUCTURAL(continuación)

Lluís TerésInstituto de Microelectrónica de Barcelona, IMB-CNM (CSIC)Universitat Autònoma de Barcelona (UAB)

Page 2: Prosesador en digitales

recursos de cálculo 

go to

selección salidaselección entrada

{X(i)}

banco de registros

2 DESCRIPCIÓN DE BLOQUES (cont.) P3.12.3 BANCO DE REGISTROS number := 0;

loopcase program(number) iswhen (ASSIGN_VALUE, k, A) => X(k) := A; number := number + 1;

when (DATA_INPUT, k, j) => X(k) := IN(j); number := number + 1;

when (DATA_OUTPUT, i, j) => OUT(i) := X(j); number := number + 1;

when (OUTPUT_VALUE, i, A) => OUT(i) := A; number := number + 1;

when (OPERATION, i, j, k, f) => X(k) := f(X(i), X(j)); number := number + 1;

when (JUMP, N) => number := N;

when (JUMP_POS, i, N) => if X(i) > 0 then number := N; else number := number + 1; end if;

when (JUMP_NEG, i, N) => if X(i) < 0 then number := N; else number := number + 1; end if;

end case;end loop;

2

Page 3: Prosesador en digitales

(banco de registros)

number := 0;loopcase program(number) iswhen (ASSIGN_VALUE, k, A) => X(k) := A; number := number + 1;

when (DATA_INPUT, k, j) => X(k) := IN(j); number := number + 1;

when (DATA_OUTPUT, i, j) => OUT(i) := X(j); number := number + 1;

when (OUTPUT_VALUE, i, A) => OUT(i) := A; number := number + 1;

when (OPERATION, i, j, k, f) => X(k) := f(X(i), X(j)); number := number + 1;

when (JUMP, N) => number := N;

when (JUMP_POS, i, N) => if X(i) > 0 then number := N; else number := number + 1; end if;

when (JUMP_NEG, i, N) => if X(i) < 0 then number := N; else number := number + 1; end if;

end case;end loop;

Especificación Funcionalloopcase program(number) iswhen (ASSIGN_VALUE, k, A) => X(k) := reg_in; left_out := don't care; right_out := don't care;

when (DATA_INPUT, k, j) => X(k) := reg_in; left_out := don't care; right_out := don't care;

when (DATA_OUTPUT, i, j) => left_out := don't care; right_out := X(j);

when (OUTPUT_VALUE, i, A) => left_out := don't care; right_out := don't care;         

when (OPERATION, i, j, k, f) => left_out := X(i); right_out := X(j); X(k) := reg_in;         

when (JUMP, N) => left_out := don't care; right_out := don't care;

when (JUMP_POS, i, N) => left_out := X(i); right_out := don't care;

when (JUMP_NEG, i, N) => left_out := X(i); right_out := don't care;

end case;end loop;

P3.1banco de registros

{X(i)}

3

Page 4: Prosesador en digitales

2.4 RECURSOS DE CÁLCULO number := 0;loopcase program(number) iswhen (ASSIGN_VALUE, k, A) => X(k) := A; number := number + 1;

when (DATA_INPUT, k, j) => X(k) := IN(j); number := number + 1;

when (DATA_OUTPUT, i, j) => OUT(i) := X(j); number := number + 1;

when (OUTPUT_VALUE, i, A) => OUT(i) := A; number := number + 1;

when (OPERATION, i, j, k, f) => X(k) := f(X(i), X(j)); number := number + 1;

when (JUMP, N) => number := N;

when (JUMP_POS, i, N) => if X(i) > 0 then number := N; else number := number + 1; end if;

when (JUMP_NEG, i, N) => if X(i) < 0 then number := N; else number := number + 1; end if;

end case;end loop;

P3.1

go to

selección salidaselección entrada

{X(i)}

banco de registros

recursos de cálculo 

4

Page 5: Prosesador en digitales

(recursos de cálculo)

number := 0;loopcase program(number) iswhen (ASSIGN_VALUE, k, A) => X(k) := A; number := number + 1;

when (DATA_INPUT, k, j) => X(k) := IN(j); number := number + 1;

when (DATA_OUTPUT, i, j) => OUT(i) := X(j); number := number + 1;

when (OUTPUT_VALUE, i, A) => OUT(i) := A; number := number + 1;

when (OPERATION, i, j, k, f) => X(k) := f(X(i), X(j)); number := number + 1;

when (JUMP, N) => number := N;

when (JUMP_POS, i, N) => if X(i) > 0 then number := N; else number := number + 1; end if;

when (JUMP_NEG, i, N) => if X(i) < 0 then number := N; else number := number + 1; end if;

end case;end loop;

Especificación Funcionalif f = 0 then result := left_in + right_in;else result := left_in ‐ right_in;end if;

P3.1

recursos de cálculo 

5

Page 6: Prosesador en digitales

2.5 GO TO (instrucción siguiente) number := 0;loopcase program(number) iswhen (ASSIGN_VALUE, k, A) => X(k) := A; number := number + 1;

when (DATA_INPUT, k, j) => X(k) := IN(j); number := number + 1;

when (DATA_OUTPUT, i, j) => OUT(i) := X(j); number := number + 1;

when (OUTPUT_VALUE, i, A) => OUT(i) := A; number := number + 1;

when (OPERATION, i, j, k, f) => X(k) := f(X(i), X(j)); number := number + 1;

when (JUMP, N) => number := N;

when (JUMP_POS, i, N) => if X(i) > 0 then number := N; else number := number + 1; end if;

when (JUMP_NEG, i, N) => if X(i) < 0 then number := N; else number := number + 1; end if;

end case;end loop;

P3.1

go to

selección salidaselección entrada

{X(i)}

banco de registros

recursos de cálculo 

go to

6

Page 7: Prosesador en digitales

(go to) P3.1

number := 0;loopcase program(number) iswhen (JUMP, N) => number := N;

when (JUMP_POS, i, N) => if data > 0 then number := N; else number := number + 1; end if;

when (JUMP_NEG, i, N) => if data < 0 then number := N; else number := number + 1; end if;

when others => number := number + 1;

end case;end loop;

number := 0;loopcase program(number) iswhen (ASSIGN_VALUE, k, A) => X(k) := A; number := number + 1;

when (DATA_INPUT, k, j) => X(k) := IN(j); number := number + 1;

when (DATA_OUTPUT, i, j) => OUT(i) := X(j); number := number + 1;

when (OUTPUT_VALUE, i, A) => OUT(i) := A; number := number + 1;

when (OPERATION, i, j, k, f) => X(k) := f(X(i), X(j)); number := number + 1;

when (JUMP, N) => number := N;

when (JUMP_POS, i, N) => if X(i) > 0 then number := N; else number := number + 1; end if;

when (JUMP_NEG, i, N) => if X(i) < 0 then number := N; else number := number + 1; end if;

end case;end loop;

7

Page 8: Prosesador en digitales

RESUMEN

Descripción estructural completada

Descripción funcional de los bloques: Banco de redistros, Recursos de cálculo, Bloque go to.

P3.1

8