Anda di halaman 1dari 13

P ICOBLAZE

MICROCONTROLLER Xilinx
especfica

Capitulo 14
PicoBlaze PANORAMA
instancias ; : #d la memoria de picob.
convensiones enumere estructuras de
picoblaze cap.14 tipos de instrucciones. Ciclos
de reloj de picob.
14.1 INTRODUCCIN
El procesador PicoBlaze es un compacto ncleo microcontrolador de 8 bits para los
dispositivos FPGA de Xilinx.Se proporciona como una descripcin de HDL-nivel de la
clula (que se conoce como ncleo blando) y se puede sintetizar junto con otra
lgica.PicoBlaze est optimizado para la eficiencia y ocupa slo unos 200 celdas
lgicas, que ascienden a recursos menos del 5% de un dispositivo de 3.3200.Aunque
no se pretende como un procesador de alto rendimiento, que es compacto y flexible y
se puede utilizar para el procesamiento simple y control de datos, en particular para
mantenimiento de la casa no crticas en el tiempo "'' y E / S operaciones. El procesador
PicoBlaze puede integrarse fcilmente en un sistema ms grande y agrega otra
dimensin de la flexibilidad en un diseo basado en FPGA.
Aunque la cobertura detallada de la programacin en lenguaje ensamblador y
microcontroladores est ms all del alcance de este libro, esta parte ofrece
acomprehensive visin general de la organizacin de PicoBlaze y conjunto de
instrucciones, e ilustra el desarrollo del programa de la Asamblea General y la interfaz
de E / S a travs de un conjunto de ejemplos. Revisamos la organizacin y conjunto de
instrucciones en este captulo de PicoBlaze, presentamos la programacin en lenguaje
ensamblador en el captulo 15, y discutimos la Interfaz general 1/0 y Interrumpimos
interfaz en los captulos 16 y 17.
14.2 HARDWARE Y SOFTWARE DE DISEO A MEDIDA

14.2.1 Desde fines especiales FSMD al microcontrolador de propsito


general
El diseo a nivel RT y FSMD analizan en el captulo 6 proporciona una metodologa
general para convertir un algoritmo secuencial de hardware personalizado.El diagrama
de bloques reordenado se muestra en la Figura 14.1 (a). En un FSMD, todos los
componentes, incluyendo el nmero de registros, el enrutamiento de entrada y salida
registros ', el nmero y tipo de unidades funcionales, y el FSM de control, se adaptan a
la aplicacin de destino.La ruta de datos puede contener mltiples unidades de funcin
y mltiples rutas de enrutamiento, como se muestra en el diagrama. Una alternativa es
mantener el mismo hardware pero el uso de software a medida para diferentes

aplicaciones.La transformacin se puede realizar de la siguiente manera. En primer


lugar, se puede sustituir la ruta de datos personalizado con una configuracin fija,
como se muestra en la parte superior de la Figura 14.l (b).Los registros de datos y
redes de enrutamiento personalizados son reemplazados por un archivo de registro,
que tiene un nmero fijo de registros y contiene slo dos puertos de lectura y un puerto
de escritura. Las unidades funcionales personalizados son reemplazados con una ALU
(unidad aritmtica y lgica), que slo puede realizar un conjunto de funciones
predefinidas.La ruta de datos puede ahora realizar operaciones RT slo en el siguiente
formato:
rd rl op r2

donde rl, r2 y r son las direcciones de los dos registros de origen y un registro de
destino, y op es una de las funciones ALU disponibles.En segundo lugar, se puede
sustituir el FSM personalizado con una mquina de estado programable, como se
muestra en la parte inferior de la Figura 14.l (b).Recordemos que la operacin de un
FSM consta de tres partes:

El registro de estado hace un seguimiento de la situacin actual.

La lgica de salida se activa determinadas seales de salida de acuerdo con el


estado actual.

La lgica del estado siguiente determina el nuevo estado.


La mquina de estado programable modifica estas operaciones de la siguiente manera:

Reemplaza el registro de estado con el contador de programa.El contenido del


contador de programa representa el estado actual de la ruta de control.

En una MEF, cada estado activa ciertas seales de salida para controlar el
funcionamiento de la ruta de datos. La mquina de estado programable codifica estos
patrones de salida en instrucciones y los almacena en un mdulo de memoria,
conocida memoria asprogram o instruccin de memoria.Direccin de la memoria
corresponde a un estado (es decir, un valor) del contador de programa.Durante la
ejecucin, la instruccin sealado por el contador de programa se recupera de la
memoria y decodificada para generar las seales de control. Menor instruccin y la
funcin lgica de decodificacin como un circuito lgico de salida sofisticado.

En un FSM, no hay ninguna limitacin sobre dnde ir despus.De un estado


dado, el FSM puede comprobar el estado de entrada y pasar a uno de los muchos
posibles estados prximos.En una mquina de estado programable, el siguiente estado
es por lo general el valor del estado actual ms 1 (es decir, el contador de programa se
incrementa en L), lo que refleja la naturaleza de la ejecucin secuencial. La ejecucin
secuencial puede ser alterada solamente por una serie de instrucciones especiales,
como una instruccin de salto, en el que el contador de programa se carga con un
valor diferente.El incrementador y la funcin lgica de multiplexacin asociado como
un circuito lgico siguiente estado simple.
Despus sustituimos la ruta de datos con un archivo de registro y una ALU y
reemplazamos los dedicados FSM con una mquina de estado programable, la
personalizacin del sistema se corresponde con el desarrollo de una nueva secuencia
de instrucciones (es decir, el desarrollo de un programa de software) y carga las
instrucciones para la instruccin memoria.La organizacin de la FSMD es ahora la
misma para diferentes aplicaciones y se convierte en una plataforma de hardware de
propsito general.La plataforma constituye el esqueleto bsico del microcontrolador
PicoBlaze.
14.2.2 Aplicacin de microcontrolador
En un FSMD personalizado, la ruta de datos se pueden crear para satisfacer las
necesidades de una aplicacin individual. Puede contener varias unidades funcionales

personalizadas y rutas de enrutamiento en paralelo, y puede completar la computacin


compleja en un solo estado (es decir, un ciclo de reloj). Por otro lado, el
microcontrolador PicoBlaze slo puede realizar una operacin de RT predefinida (es
decir, una instruccin) a la vez. Se puede necesitar muchas instrucciones para llevar a
cabo la misma tarea y por lo tanto requieren mucho ms tiempo.
Muchas tareas se puede hacer ya sea por un FSMD personalizadas o un
microcontrolador. La desventaja es entre la complejidad del hardware, el rendimiento y
la facilidad de desarrollo. No hay una regla exacta sobre cul elegir. Debido a que el
desarrollo de software suele ser ms fcil bronceado crear hardware personalizado, la
opcin microcontrolador es generalmente preferible para aplicaciones de no-tiempo
crtico. Podemos determinar la viabilidad de esta opcin mediante el examen de la
complejidad de clculo. PicoBlaze requiere dos ciclos de reloj para completar una
instruccin.
Si el reloj del sistema es de 50 MHz, de 25 millones de instrucciones se pueden realizar
en un segundo. Para una tarea (o una coleccin de tareas), podemos examinar la
frecuencia con que se emita una solicitud y qu tan rpido se debe completar la tarea
y, a continuacin, calcular el nmero de instrucciones disponibles. Por ejemplo,
supongamos que una interfaz de teclado genera una nueva entrada de datos cada 1
ms y los datos deben ser procesados dentro de este intervalo. Dentro del perodo de 1
ms, PicoBlaze puede completar 25.000 instrucciones. El controlador PicoBlaze ser una
opcin viable si el procesamiento requerido se puede hacer mediante el uso de menos
de 25.000 instrucciones. En general, el microcontrolador es conveniente para muchas
de E / S de la interfaz o de "mantenimiento de la casa'' tareas no crtica en tiempo.
14.3 RESUMEN DE PicoBlaze
14.3.1 Organizacin bsica
PicoBlaze es un compacto de microcontrolador de 8 bits con las siguientes
caractersticas:

Amplitud de datos de 8 bits

ALU de 8 bits con el acarreo y cero banderas

16 8-bits registros de propsito general

Memoria de datos de 64 bytes

Ancho de la instruccin de 18 bits

Direccin de la instruccin de 10 bits, lo que apoya un programa de hasta 1024


instrucciones

Pila call/return 31 palabras

256 puertos de entrada y 256 puertos de salida

2 ciclos de reloj por instruccin

5 ciclos de reloj para el procesamiento de alarmas


PicoBlaze se basa en el esqueleto se describe en la Figura 14.l (b) y aade varias
mejoras para que sea ms verstil.El diagrama ampliado se muestra en la figura 14.2.
Para reducir el desorden, slo se muestra el flujo de datos principal. Los tamaos de los
componentes principales de almacenamiento se enumeran entre parntesis. El
procesador tiene varias mejoras sobre el esqueleto original de:
******************** Imagen pdf 345 *************************

Aadir una memoria de datos 44-palabra. Se conoce como memoria RAM cero
en la literatura Xilinx pero lo llamamos memoria RAM de datos. La memoria RAM
de datos puede ser considerado como un depsito para almacenar datos
adicionales.Tenga en cuenta que no hay camino directo entre la RAM de datos y ALU.
Los datos se deben recoger en un registro para su procesamiento y luego se almacenan
de nuevo a la RAM de datos.


Aadir un constantfield inmediato en algunas instrucciones. Esto permite una
constante, ms que el contenido de un registro, para ser utilizado en ALU y otras
operaciones.El multiplexor de dos a uno antes de la entrada inferior de la ALU se utiliza
para seleccionar la salida de registro o el campo constante.

Aadir una pila 31-palabra para apoyar las funciones callheturn. Se discute
la llamada y Procedimiento de devolucin en ms detalle en la seccin 14.5.8.

Aadir caminos para entrada y salida de datos externos. Una seal de puertoIdentificacin de 8 bits se utiliza para identificar un puerto y por lo tanto hasta 256
puertos de entrada y 256 puertos de salida puede ser soportada.La interfaz de E / S se
discute en detalle en el captulo 16.

Aadir un circuito de manejo de interrupciones (no mostrado en el


diagrama).El mecanismo de interrupcin se discute en detalle en el captulo 17.

14.3.2 Mdulos de HDL de nivel superior


Durante la sntesis, un sistema PicoBlaze est organizado como dos mdulos de HDL de
nivel superior, como se muestra en la figura 14.3.El mdulo KCPSM3 es el procesador
PicoBlaze.KCPSM3, que significa constante (K) de mquina de estados
codedprogrammable, refleja el nombre original del procesador PicoBlaze.Tiene las
siguientes seales de entrada y de salida:

CLK (entrada, 1 bit): seal de reloj del sistema

reset (entrada, 1 bit): seal de reinicio

direccin (de salida, 10 bits): direccin de la memoria de instrucciones, que


especifica la ubicacin de la instruccin a recuperar.

instruccin (entrada, 18 bits): instruccin extrada

puerto-id (salida, 8 bits): direccin del puerto de entrada o salida

en puertos de entrada, (8 bits): datos de entrada de los perifricos de E / S

leer-storbe (salida, 1 bit): estroboscpica asociado con la operacin de entrada

fuera de puerto (de salida, 8 bits): los datos de salida a los perifricos de E / S

escritura storbe (salida, 1 bit): estroboscpico asociado a la operacin de salida

interrumpir (entrada, 1 bit): solicitud de interrupcin de los perifricos de E / S

interrumpir-ack (salida, 1 bit): reconocimiento de interrupcin de 110 perifricos


El segundo mdulo es para la memoria de instrucciones. Durante el desarrollo, solemos
almacenar el cdigo ensamblado compilado en la memoria de antemano y configurarlo
como un ROM de cdigo HDL. Por tanto, se conoce como una ROM de instrucciones.

FLUJO 14.4 DESARROLLO


Durante el desarrollo de un sistema basado en un microcontrolador convencional,
examinamos las funcionalidades requeridas y seleccionamos un procesador con
capacidad de clculo adecuado y una interfaz adecuada IiO. Fichas adicionales se
necesitan con frecuencia para realizar funciones especiales. Una ventaja de utilizar un
microcontrolador soft-core es que podemos tener tanto un circuito especialmente
adaptado y un microcontrolador desarrollado e implementado en el mismo dispositivo
FPGA. Una aplicacin de gran tamao por lo general incluye muchas tareas
diferentes.En una plataforma FPGA, podemos implementar las tareas de tiempo crtico
en un circuito especialmente adaptado (es decir, "hardware") para el funcionamiento y
realizar las funciones de E / S de mantenimiento de la casa y de baja velocidad que
quedan en un microcontrolador
(Es decir, "software").
El flujo bsico de desarrollo basado en PicoBlaze se muestra en la Figura 14.4. Se
compone de los siguientes pasos:

1 Determine la particin de software-hardware.


2 Desarrollar el programa de montaje de la parte de software.
3 Compile el programa de montaje para generar una ROM de instrucciones. La ROM es
un archivo de HDL.
(4) Realizar la simulacin a nivel de instruccin-set.
(5) Derivar cdigo HDL para la parte de hardware. El hardware incluye circuitos
personalizados para realizar funciones de E / S y de tiempo crtico y circuitos
personalizados para interactuar con PicoBlaze.
6 Cree el cdigo HDL alto nivel que combina los cdigos para el ncleo PicoBlaze, la
ROM de la instruccin, y el hardware personalizado.
7 Desarrollar un banco de pruebas y realizar la simulacin HDL para todo el sistema.
8 Sintetizar y aplicar el cdigo HDL y programar el chip FPGA en la placa de prototipos.
Los captulos siguientes explican estos pasos en detalle.
El paso 9 se muestra en la lnea de puntos no es una parte del flujo de desarrollo
normal. Se vuelve a cargar la memoria de instrucciones despus de todo el sistema se
sintetiza. Este paso se discute en la Seccin 15.5.3

14,5 del conjunto de instrucciones


PicoBlaze tiene 57 instrucciones.Las instrucciones tienen cinco formatos generales.
Organizamos las instrucciones de acuerdo a la naturaleza de sus operaciones y los
dividen en las categoras siguientes:

Instrucciones lgicas
Instrucciones aritmticas
Compara y las instrucciones de la prueba
De desplazamiento y rotacin
Instrucciones de movimiento de datos
Instrucciones de control de flujo Programa
Interrumpir instrucciones relacionadas

****************************** Imagen pdf 348 ***************** ********


14.5.1 Modelo de programacin
Desde el punto de vista de programacin en ensamblador, PicoBlaze contiene 16
registros de 8 bits, una memoria RAM de datos de 64 bytes, tres banderas (para cero,
conducir e interrumpir), el contador de programa y el puntero del tope de la pila.El
modelo, a veces conocida como la arquitectura del conjunto de instrucciones, se
muestra en la Figura 14.5. Despus de que se ejecuta una instruccin, el contenido de
estos componentes se modifican de forma explcita o implcitamente. Las operaciones
asociadas con cada instruccin se discuten en la Seccin 14.5.3.
Utilizamos las siguientes anotaciones para estos componentes de memoria y algunas
definiciones de constantes:

sx, sy: cada uno representando uno de los 16 registros de propsito general, en
la que X e Y toman valores hexadecimales de 0 a f

pc: contador de programa

puntero de la pila callheturn tope de la pila: tos

c, z, i: llevar, cero, e interrumpir las banderas

KK: valor o puerto de 8 bits constante id, que por lo general se expresa como
dos dgitos hexadecimales

SS: 6-bit de direccin de memoria de datos constante, lo que por lo general se


expresa como dos dgitos hexadecimales


AAA: 10-bit de direccin de memoria de instrucciones constante, que por lo
general se expresa como tres dgitos hexadecimales
14.5.2 Formato de instruccin
En un programa de la asamblea, por lo general, seguimos las convenciones que se
utilizan en nuestro cdigo HDL, en el que una palabra clave (un mnemnico de
instruccin) est en letra negrita y una constante es en maysculas. Las instrucciones
del PicoBalze tienen cinco formatos:

op sx, sy el sistema: Registrarse registrar formato.El trmino op especifica la


operacin.Los trminos SX y SY son los dos operandos y SX tambin sirve como el
registro de destino.Lo realiza el SX Operacin SX OP SY.

op sX, KK: Registrarse constante de formato.Este formato es similar al formato


de registro-registro, excepto que el segundo operando se sustituye por una constante
inmediata. Se realiza la operacin op KK SX SX.

op sX: formato de un solo registro.Este formato se utiliza en desplazamiento y


rotacin, que implican un solo operando. Se realiza la operacin SX SX t op.

op AAA: formato de direccin nica.Este formato se utiliza en operaciones de


salto y de llamadas. El trmino AAA es una direccin de la memoria de instrucciones.Si
se cumple la condicin especificada, la AAA se carga en el contador de programa.

op: formato de cero-operando.Este formato se utiliza en algunas instrucciones


diversas que no implican ningn operando.
Hay dos programas en ensamblador para PicoBlaze: KCPSM3 de Xilinx y PBlazeZDE de
Mediatronix.Los dos programas utilizan diferentes mnemotcnicos para varias
instrucciones. En los apartados siguientes, los mnemnicos alternativos utilizados en
PBlazeIDE se muestran entre parntesis.
14.5.3 instrucciones lgicas
Hay seis instrucciones lgicas, que apoyan la AND, OR, y XOR. Una instruccin realiza
la operacin lgica bit a bit entre dos registros o un registro y una constante. La
bandera de acarreo, c, siempre se borra.La bandera cero, z, refleja el resultado de la
operacin.Los mnemnicos, breves descripciones, y las operaciones de los pseudo de
estas instrucciones son:

y SX, SY

- A nivel de bits y operacin


- Pseudo operacin:
SX
c

sX ySy;

0;

y SX, KK
- A nivel de bits y operacin
- Pseudo operacin:

o sx, SY
- A nivel de bits o la operacin
- Pseudo operacin:

o sX, KK
- A nivel de bits o la operacin
- Pseudo operacin:


xor SX, SY
- XOR operacin
- Pseudo operacin:

xor s X, KK
- XOR operacin
- Pseudo operacin:
14.5.4 Instrucciones aritmticas
Hay ocho instrucciones aritmticas, n .. ich adicin de soporte y resta con o sin la
bandera de acarreo.La bandera de acarreo, c, y la bandera de cero, z, reflejan el
resultado de la operacin.Los mnemnicos, breves descripciones, y las operaciones de
los pseudo de estas instrucciones son:

aadir SX, SY

Add sin la bandera de acarreo

- Pseudo operacin:
aadir sX, KK
- Add sin la bandera de acarreo

- Pseudo operacin:

addcy SX, SY (ADDC s X, s Y)

- Aadir a la bandera de acarreo

- Pseudo operacin:
addcy sX, KK (ADDC s X, KK)
- Aadir a la bandera de acarreo

- Pseudo operacin:

sub sx, sy

- Restar sin la bandera de acarreo

- Pseudo operacin:

sub sX, KK

- Restar sin la bandera de acarreo


- Pseudo operacin:

subcy sx, sy (SUBC sx, sy)

- Restar con la bandera de acarreo (funcionamiento de la bandera como un poco de


prstamo)

- Pseudo operacin:

subcy sX, KK (SUBC sX, KK)


- Restar con la bandera de acarreo (funcionamiento de la bandera como un poco de
prstamo)

- Pseudo operacin:

14.5.5 Compara y las instrucciones de la prueba


El comparar y instrucciones de prueba examinan dos registros o un registro y
constante, y establecer el acarreo y cero banderas en consecuencia. Los contenidos de
los registros permanecen intactos. Estas instrucciones se utilizan generalmente en
conjuncin con un salto o llamada instruccin condicional, cuyo funcionamiento est
basado en los valores de las banderas. Una instruccin de comparacin realiza la
operacin de resta.El resultado se utiliza para ajustar el arrastre y cero banderas y no
se almacena en cualquier registro. Los mnemnicos, breves descripciones, y las
operaciones de los dos pseudo-instrucciones son:

Comparar SX, SY (comp sx, sy)

- Comparar los dos registros y establecer los indicadores


- Pseudo operacin:
si sX = sY entonces z 1 else z 0;
si sY> sX entonces c 1 persona c 0;

comparar sX, KK (comp sX, KK)

- Comparar un registro y una constante y establecer los indicadores


- Pseudo operacin:
Una instruccin de prueba realiza una operacin AND.El resultado se utiliza para
establecer las banderas y no almacenados en ningn registro. Si el resultado es 0, el
indicador de cero se establece en 1. El resultado tambin se alimenta a un circuito XOR
de ocho de entrada para obtener la braga impar. Si hay un nmero impar de 1 de en el
resultado, la bandera de acarreo se pone a 1.Los mnemnicos, breves descripciones, y
las operaciones de seudo de las dos instrucciones se muestran a continuacin.El t es el
resultado temporal de 8 bits y se descartar.

prueba SX, SY
- examen de dos registros y establecer los indicadores
- Pseudo operacin:

prueba sX, KK
- Probar un registro y una constante y establecer los indicadores

- Pseudo operacin:
********************* Imagen pdf 353 **************************

14.5.6 desplazamiento y rotacin


Hay cuatro instrucciones de desplazamiento izquierda, cuatro instrucciones de
desplazamiento de la derecha, y dos instrucciones de rotacin. Estas instrucciones de
utilizar el formato de un solo registro y tienen un solo operando. Las representaciones
grficas de estas instrucciones se muestran en la figura 14.6. Los mnemnicos, breves
descripciones, y las operaciones de los pseudo de estas instrucciones se muestran
abajo. El smbolo & significa para concatenar dos operandos.

s10 sx
- Cambiar un registro deja 1 bit y cambie 0 a la LSB
- Pseudo operacin:

sll sx

- Cambiar un registro deja 1 bit y cambie 1 en el LSB


- Pseudo operacin:

slx

sx

- Cambiar un registro deja 1 bit y cambiar SX (0) en la LSB


- Pseudo operacin:

sla sx

- Cambiar un registro deja 1 bit y cambie c en el LSB


- Pseudo operacin:

sr0 sX
- Cambiar un registro de derecho 1 bit y trasladar 0 en el MSB
- Pseudo operacin:
Sr1 sX
- Cambiar un registro de derecho 1 bit y desplazarte 1 en el MSB
- Pseudo operacin:

************************ Mas Funciones pdf 354 ********************** ***


14.5.7 instrucciones de movimiento de datos
En PicoBlaze, el clculo se realiza a travs de los registros y la ALU. El suministro de
datos RAM de almacenamiento adicional y los puertos de E / S proporcionan rutas a los
perifricos. Hay varias instrucciones para mover datos entre los registros, memoria
RAM de datos y puertos I / O.Las instrucciones se pueden dividir en tres categoras:

Entre los registros: la instruccin de carga


Entre un registro y los datos de la RAM: la captacin y almacenar
instrucciones

Entre un registro y un puerto de E / S: las instrucciones de entrada y salida


Los mnemnicos, breves descripciones, y las operaciones de los pseudo de las
instrucciones de movimiento de datos se muestran a continuacin. La notacin [] RAM
representa el contenido de la RAM de datos. Tenga en cuenta que en algunas
instrucciones, la notacin direccin indirecta, como en (SY), se utiliza en
mnemnico hacer hincapi en que se utiliza el contenido del registro sy.

cargar sx, sy

- mover datos entre dos registros


- Pseudo operacin:
cargar sX, KK
- Mover una constante a un registro
- Pseudo operacin:

buscar sX, (s Y> (traiga sx, sy)


- mover datos desde la RAM de datos a un registro
- Pseudo operacin:

******************** Funciones pdf 355 *************************

No hay ninguna instruccin explcita para mover datos hacia o desde la memoria de
instrucciones. Sin embargo, muchas instrucciones incluyen un campo para una
constante inmediata. Dado que la constante es parte de la instruccin y almacenado
en la memoria de instrucciones, que puede ser considerada como datos que se
trasladaron implcitamente de la memoria de instrucciones a un registro.
14.5.8 instrucciones de control de flujo Programa
En PicoBlaze, el contador de programa indica el lugar para ir a buscar la instruccin.
Por defecto, la ejecucin pasa a la siguiente direccin en la memoria de instrucciones y
el contador de programa se incrementa de manera implcita. Las instrucciones de
salto, de llamada y retorno pueden cargar explcitamente un valor para el contador
de programa y modificar el flujo del programa.Estas instrucciones pueden ser
ejecutadas reservas o sin ellas en base a los valores de la prrroga y cero banderas.
Una instruccin de salto se carga un nuevo valor al contador de programa si se
cumple la condicin correspondiente.La ejecucin del programa cambia el flujo regular
y ramas a la nueva direccin. El flujo del programa contina normalmente despus de
este punto. Los mnemnicos, breves descripciones, y las operaciones de los pseudo de
estas instrucciones se muestran abajo. Recordemos que AAA es para la direccin de
memoria de instrucciones de 10 bits y PC es para el contador de programa.

saltar AAA
- Incondicionalmente saltar
- Pseudo operacin:
Pc AAA

salto c, AAA

- Salta si la bandera de acarreo se establece


- Pseudo operacin:

saltar nc, AAA

- Salto si la bandera de acarreo no se establece


- Pseudo operacin:
si c = O entonces aaa pc otra pc pc 1

Jumpz, AAA

- Salta si el flag de cero se establece


- Pseudo operacin:
si z = 1, entonces AAA pc otra pc pc 1

saltar nz, AAA

- Salto si el flag de cero no est definida


- Pseudo operacin:
si z = O entonces AAA pc otra pc pc 1

Las instrucciones de la llamada y de retorno se utilizan para implementar una


funcin de software.Cuando una funcin es llamada, el procesador suspende la
ejecucin actual y las ramas a la rutina correspondiente.Cuando se completa el clculo
de rutina, el procesador vuelve al punto suspendido y contina la ejecucin.Al igual
que una instruccin de salto, una instruccin de llamada carga un nuevo valor en el
contador de programa si se cumple la condicin correspondiente.Adems, tambin se
guarda el valor actual del contador de programa en una memoria intermedia especial,
conocido como la pila.La nueva direccin representa el punto de partida de una rutina.

La rutina debe incluir una instruccin de retorno al final.La instruccin de retorno


obtiene el valor guardado de la pila, se incrementa el valor en 1, y lo carga en el
contador de programa.Esto permite la ejecucin para volver a la instruccin que sigue
inmediatamente a la instruccin de llamada original.Un flujo de programa
representativo se muestra en la figura 14.7. PicoBlaze permite llamadas a funciones
anidadas, lo que significa que una funcin puede ser llamada dentro de otra funcin.
Para apoyar esta funcin, una pila, que es un ltimo en entrar, primero en salir de
amortiguamiento, se utiliza para almacenar los valores del contador de programa.En
este buffer, la direccin de la llamada ms reciente se inserta en la parte superior de la
pila (es decir, el "ltimo-in"). Supongamos que esta rutina no contiene otra llamada a la
funcin dentro. Se complet primera y la direccin devuelta ahorrado es en la parte
superior de la pila.Hay que extrae de la pila (es decir, "el primero en salir") para
reanudar la ejecucin anterior. PicoBlaze proporciona una pila de 31 palabras para la
llamada anidada y las operaciones de retorno. Los mnemnicos, breves descripciones,
y las operaciones de los pseudo de las instrucciones de llamada y de retorno se
muestran a continuacin.Recordemos que tos y es para el puntero del tope de la pila.
La notacin [] PILA representa el contenido de la pila.
llamar a AAA
- Incondicionalmente llamar a subrutina
Pseudo-operacin:
Tos tos + 1
Stack [tos] pc
Pc AAA

llamada c, AAA

- Llamar a subrutina si la bandera de acarreo se establece


- Pseudo operacin:

Llamar NC, AAA

- Llamar a subrutina si la bandera de acarreo no est establecido


- Pseudo operacin:

z llamada, AAA

- Llamar a subrutina si la bandera de cero se establece

llamar nz, AAA

- Llamar a subrutina si la bandera de cero no est definida

retorno (RET)

- Regresar incondicionalmente

c retorno (ret c)
- Regresar si la bandera de acarreo se establece

volver nc (nc ret)

- Devolver si la bandera de cana no se ha establecido


14.5.9 instrucciones de interrupcin relacionadas
Interrupcin es otro mecanismo para alterar la ejecucin del programa y su detalle se
trata en el Captulo 17.A diferencia de las instrucciones de salto y de llamada, se

inicia a partir de una solicitud externa. Cuando la bandera de interrupcin est


habilitada y la solicitud de interrupcin se afirma, PicoBlaze completa la ejecucin de la
instruccin actual, guarda la direccin de la siguiente instruccin en la pila de llamadas
/ retorno, conserva el acarreo y cero banderas, desactiva el indicador de interrupcin, y
carga el contador de programa con 3FF, que es la direccin de partida de la rutina de
servicio de interrupcin.PicoBlaze tiene dos vuelta-de-interrupcin instrucciones, que
resume la operacin de la ubicacin interrumpido.Tambin cuenta con dos
instrucciones que activar y desactivar la peticin de interrupcin mediante el
establecimiento o la limpieza de la bandera de interrupcin, i.Los mnemnicos, breves
descripciones y operaciones seudo de estas instrucciones son:

desactivar returni (deshabilitar retina)

- Retorno de la rutina de servicio de interrupcin y mantener la bandera de


interrupcin deshabilitado

returni permiten (reti permiten)

- Retorno de la rutina de servicio de interrupcin y mantener la bandera de


interrupcin habilitado

permitir interrupcin (eint)


- Enable solicitud de interrupcin

deshabilitar interrupcin (fuerza)

- Solicitud de interrupcin desactivar


Tenga en cuenta que el mecanismo de interrupcin guarda la direccin de la siguiente
instruccin. Cuando se ejecuta una instruccin returni, la direccin guardada en la
parte superior de la pila (es decir, PILA [tos]) se restaura.Esto es diferente de una
instruccin de retorno regular, en la que (es decir, STACK [TOS] 1) se restaura la
direccin incrementada.
14.6 DIRECTIVAS ENSAMBLADOR
Una directiva de ensamblador parece una instruccin en un programa SAMBLEA.Sin
embargo, no forma parte del conjunto de instrucciones del microcontrolador, pero se
utiliza para ayudar al desarrollo del programa.Como su nombre indica, una directiva
"dirige" el ensamblador para realizar una tarea especfica, como la definicin de un
espacio de datos constante o la reserva.Los montadores KCPSM3 y PBlazeIDE tienen
algo diferentes directivas y tambin son discutidos en las siguientes subsecciones.
14.6.1 Las directivas KCPSM3
Los mnemnicos, descripciones y ejemplos de las directivas clave utilizados en el
ensamblador KCPSM3 son:

direccin
- La directiva especifica el cdigo despus de ser condenado a una direccin especfica
en la ROM de instrucciones.
abordar 3FF

namereg
- La directiva da un nombre simblico para un registro.Hace cdigo ms descriptivo.
namereg s 5, el ndice de

constante

- La directiva da un nombre simblico para una constante.Hace cdigo ms descriptivo.


mx constante, FO

14.6.2 Las directivas PBlazelDE


Los mnemnicos, descripciones y ejemplos de las directivas clave utilizados en el
ensamblador PBlazeIDE se muestran abajo.Tenga en cuenta que se necesita un signo $
para un nmero en formato hexadecimal.

. Org

- La directiva especifica el cdigo despus de ser condenado a una direccin especfica


en el:
ROM de instrucciones (es decir, "originar" de esta direccin).
org $ 3FF

equ

- La directiva "iguala" el smbolo de un valor o r registro.Le da un nombre simblico


para una constante o un registro.
max EQU 128/8
ndice equ s5

DSIN, dsout, dsio


Estas directivas equiparan un nombre simblico para un identificador de puerto de E /
S.El puerto correspondiente se puede definir como la entrada, salida o entrada y
salida.La diferencia entre estas directivas y equ es que PBlazeIDE genera "indicadores
de puerto" para estas directivas en la pantalla de simulacin.Las actividades de E / S se
pueden visualizar y simular a travs de estos indicadores.
DSIN teclado $ 0E
cambiar DSIN $ 0F
llevado dsout $ 15

VHDL

- Esta directiva genera ROM de instrucciones en formato VHDL.El detalle est dis
maldijo en el captulo 15.
VHDL "template.vd", "target.vhd", "ROM"

Anda mungkin juga menyukai