Capitulo-14-Español.docx

17
P ICOBLAZE MICROCONTROLLER Xilinx específica 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 INTRODUCCIÓN El procesador PicoBlaze es un compacto núcleo microcontrolador de 8 bits para los dispositivos FPGA de Xilinx.Se proporciona como una descripción de HDL-nivel de la célula (que se conoce como núcleo blando) y se puede sintetizar junto con otra lógica.PicoBlaze está optimizado para la eficiencia y ocupa sólo unos 200 celdas lógicas, 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 críticas en el tiempo "'' y E / S operaciones. El procesador PicoBlaze puede integrarse fácilmente en un sistema más grande y agrega otra dimensión de la flexibilidad en un diseño basado en FPGA. Aunque la cobertura detallada de la programación en lenguaje ensamblador y microcontroladores está más allá del alcance de este libro, esta parte ofrece acomprehensive visión general de la organización de PicoBlaze y conjunto de instrucciones, e ilustra el desarrollo del programa de la Asamblea General y la interfaz de E / S a través de un conjunto de ejemplos. Revisamos la organización y conjunto de instrucciones en este capítulo de PicoBlaze, presentamos la programación en lenguaje ensamblador en el capítulo 15, y discutimos la Interfaz general 1/0 y Interrumpimos interfaz en los capítulos 16 y 17.

Transcript of Capitulo-14-Español.docx

Page 1: Capitulo-14-Español.docx

P ICOBLAZEMICROCONTROLLER Xilinx específica Capitulo 14PicoBlaze PANORAMAinstancias ; : #d la memoria de picob. convensiones enumere estructuras de picoblaze cap.14 tipos de instrucciones. Ciclos de reloj de picob.

14.1 INTRODUCCIÓNEl procesador PicoBlaze es un compacto núcleo microcontrolador de 8 bits para los dispositivos FPGA de Xilinx.Se proporciona como una descripción de HDL-nivel de la célula (que se conoce como núcleo blando) y se puede sintetizar junto con otra lógica.PicoBlaze está optimizado para la eficiencia y ocupa sólo unos 200 celdas lógicas, 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 críticas en el tiempo "'' y E / S operaciones. El procesador PicoBlaze puede integrarse fácilmente en un sistema más grande y agrega otra dimensión de la flexibilidad en un diseño basado en FPGA.Aunque la cobertura detallada de la programación en lenguaje ensamblador y microcontroladores está más allá del alcance de este libro, esta parte ofrece acomprehensive visión general de la organización de PicoBlaze y conjunto de instrucciones, e ilustra el desarrollo del programa de la Asamblea General y la interfaz de E / S a través de un conjunto de ejemplos. Revisamos la organización y conjunto de instrucciones en este capítulo de PicoBlaze, presentamos la programación en lenguaje ensamblador en el capítulo 15, y discutimos la Interfaz general 1/0 y Interrumpimos interfaz en los capítulos 16 y 17. 14.2 HARDWARE Y SOFTWARE DE DISEÑO A MEDIDA14.2.1 Desde fines especiales FSMD al microcontrolador de propósito general El diseño a nivel RT y FSMD analizan en el capítulo 6 proporciona una metodología 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 número de registros, el enrutamiento de entrada y salida registros ', el número y tipo de unidades funcionales, y el FSM de control, se adaptan a la aplicación de destino.La ruta de datos puede contener múltiples unidades de función y múltiples rutas de enrutamiento, como se muestra en el diagrama. Una alternativa es

Page 2: Capitulo-14-Español.docx

mantener el mismo hardware pero el uso de software a medida para diferentes aplicaciones.La transformación se puede realizar de la siguiente manera. En primer lugar, se puede sustituir la ruta de datos personalizado con una configuración 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 número fijo de registros y contiene sólo dos puertos de lectura y un puerto de escritura. Las unidades funcionales personalizados son reemplazados con una ALU (unidad aritmética y lógica), que sólo puede realizar un conjunto de funciones predefinidas.La ruta de datos puede ahora realizar operaciones RT sólo en el siguiente formato:

rd rl op r2donde 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 máquina de estado programable, como se muestra en la parte inferior de la Figura 14.l (b).Recordemos que la operación de un FSM consta de tres partes:  El registro de estado hace un seguimiento de la situación actual. La lógica de salida se activa determinadas señales de salida de acuerdo con el estado actual. La lógica del estado siguiente determina el nuevo estado. La máquina 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 señales de salida para controlar el funcionamiento de la ruta de datos. La máquina de estado programable codifica estos patrones de salida en instrucciones y los almacena en un módulo de memoria, conocida memoria asprogram o instrucción de memoria.Dirección de la memoria corresponde a un estado (es decir, un valor) del contador de programa.Durante la ejecución, la instrucción señalado por el contador de programa se recupera de la memoria y decodificada para generar las señales de control. Menor instrucción y la función lógica de decodificación como un circuito lógico de salida sofisticado. En un FSM, no hay ninguna limitación sobre dónde ir después.De un estado dado, el FSM puede comprobar el estado de entrada y pasar a uno de los muchos posibles estados próximos.En una máquina de estado programable, el siguiente estado es por lo general el valor del estado actual más 1 (es decir, el contador de programa se incrementa en L), lo que refleja la naturaleza de la ejecución secuencial. La ejecución secuencial puede ser alterada solamente por una serie de instrucciones especiales, como una instrucción de salto, en el que el contador de programa se carga con un valor diferente.El incrementador y la función lógica de multiplexación asociado como un circuito lógico siguiente estado simple. Después sustituimos la ruta de datos con un archivo de registro y una ALU y reemplazamos los dedicados FSM con una máquina de estado programable, la personalización 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 instrucción memoria.La organización de la FSMD es ahora la misma para diferentes aplicaciones y se convierte en una plataforma de hardware de propósito general.La plataforma constituye el esqueleto básico del microcontrolador PicoBlaze. 14.2.2 Aplicación de microcontrolador

Page 3: Capitulo-14-Español.docx

En un FSMD personalizado, la ruta de datos se pueden crear para satisfacer las necesidades de una aplicación individual. Puede contener varias unidades funcionales personalizadas y rutas de enrutamiento en paralelo, y puede completar la computación compleja en un solo estado (es decir, un ciclo de reloj). Por otro lado, el microcontrolador PicoBlaze sólo puede realizar una operación de RT predefinida (es decir, una instrucción) a la vez. Se puede necesitar muchas instrucciones para llevar a cabo la misma tarea y por lo tanto requieren mucho más 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 cuál elegir. Debido a que el desarrollo de software suele ser más fácil bronceado crear hardware personalizado, la opción microcontrolador es generalmente preferible para aplicaciones de no-tiempo crítico. Podemos determinar la viabilidad de esta opción mediante el examen de la complejidad de cálculo. PicoBlaze requiere dos ciclos de reloj para completar una instrucción.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 colección de tareas), podemos examinar la frecuencia con que se emita una solicitud y qué tan rápido se debe completar la tarea y, a continuación, calcular el número 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 período de 1 ms, PicoBlaze puede completar 25.000 instrucciones. El controlador PicoBlaze será una opción 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 crítica en tiempo. 14.3 RESUMEN DE PicoBlaze14.3.1 Organización básicaPicoBlaze es un compacto de microcontrolador de 8 bits con las siguientes características: Amplitud de datos de 8 bits ALU de 8 bits con el acarreo y cero banderas 16 8-bits registros de propósito general Memoria de datos de 64 bytes Ancho de la instrucción de 18 bits Dirección de la instrucción 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 instrucción 5 ciclos de reloj para el procesamiento de alarmas PicoBlaze se basa en el esqueleto se describe en la Figura 14.l (b) y añade varias mejoras para que sea más versátil.El diagrama ampliado se muestra en la figura 14.2. Para reducir el desorden, sólo se muestra el flujo de datos principal. Los tamaños de los componentes principales de almacenamiento se enumeran entre paréntesis. El procesador tiene varias mejoras sobre el esqueleto original de: ******************** Imagen pdf 345 *************************  Añadir 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 depósito para almacenar datos adicionales.Tenga en cuenta que no hay camino directo entre la RAM de datos y ALU.

Page 4: Capitulo-14-Español.docx

Los datos se deben recoger en un registro para su procesamiento y luego se almacenan de nuevo a la RAM de datos. Añadir un constantfield inmediato en algunas instrucciones. Esto permite una constante, más 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. Añadir una pila 31-palabra para apoyar las funciones callheturn. Se discute la llamada y Procedimiento de devolución en más detalle en la sección 14.5.8. Añadir caminos para entrada y salida de datos externos. Una señal de puerto-Identificación 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 capítulo 16. Añadir un circuito de manejo de interrupciones (no mostrado en el diagrama).El mecanismo de interrupción se discute en detalle en el capítulo 17. 14.3.2 Módulos de HDL de nivel superiorDurante la síntesis, un sistema PicoBlaze está organizado como dos módulos de HDL de nivel superior, como se muestra en la figura 14.3.El módulo KCPSM3 es el procesador PicoBlaze.KCPSM3, que significa constante (K) de máquina de estados codedprogrammable, refleja el nombre original del procesador PicoBlaze.Tiene las siguientes señales de entrada y de salida:  CLK (entrada, 1 bit): señal de reloj del sistema reset (entrada, 1 bit): señal de reinicio dirección (de salida, 10 bits): dirección de la memoria de instrucciones, que especifica la ubicación de la instrucción a recuperar. instrucción (entrada, 18 bits): instrucción extraída puerto-id (salida, 8 bits): dirección del puerto de entrada o salida en puertos de entrada, (8 bits): datos de entrada de los periféricos de E / S leer-storbe (salida, 1 bit): estroboscópica asociado con la operación de entrada fuera de puerto (de salida, 8 bits): los datos de salida a los periféricos de E / S escritura storbe (salida, 1 bit): estroboscópico asociado a la operación de salida interrumpir (entrada, 1 bit): solicitud de interrupción de los periféricos de E / S interrumpir-ack (salida, 1 bit): reconocimiento de interrupción de 110 periféricos El segundo módulo es para la memoria de instrucciones. Durante el desarrollo, solemos almacenar el código ensamblado compilado en la memoria de antemano y configurarlo como un ROM de código HDL. Por tanto, se conoce como una ROM de instrucciones. FLUJO 14.4 DESARROLLODurante el desarrollo de un sistema basado en un microcontrolador convencional, examinamos las funcionalidades requeridas y seleccionamos un procesador con capacidad de cálculo 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 aplicación de gran tamaño por lo general incluye muchas tareas diferentes.En una plataforma FPGA, podemos implementar las tareas de tiempo crítico 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 básico de desarrollo basado en PicoBlaze se muestra en la Figura 14.4. Se compone de los siguientes pasos:

Page 5: Capitulo-14-Español.docx

 1 Determine la partición 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 simulación a nivel de instrucción-set.(5) Derivar código HDL para la parte de hardware. El hardware incluye circuitos personalizados para realizar funciones de E / S y de tiempo crítico y circuitos personalizados para interactuar con PicoBlaze.6 Cree el código HDL alto nivel que combina los códigos para el núcleo PicoBlaze, la ROM de la instrucción, y el hardware personalizado.7 Desarrollar un banco de pruebas y realizar la simulación HDL para todo el sistema.8 Sintetizar y aplicar el código HDL y programar el chip FPGA en la placa de prototipos.Los capítulos siguientes explican estos pasos en detalle.El paso 9 se muestra en la línea de puntos no es una parte del flujo de desarrollo normal. Se vuelve a cargar la memoria de instrucciones después de todo el sistema se sintetiza. Este paso se discute en la Sección 15.5.3 

14,5 del conjunto de instruccionesPicoBlaze 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 categorías siguientes:  Instrucciones lógicas Instrucciones aritméticas Compara y las instrucciones de la prueba De desplazamiento y rotación Instrucciones de movimiento de datos Instrucciones de control de flujo Programa Interrumpir instrucciones relacionadas ****************************** Imagen pdf 348 ***************** ******** 14.5.1 Modelo de programaciónDesde el punto de vista de programación 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. Después de que se ejecuta una instrucción, el contenido de estos componentes se modifican de forma explícita o implícitamente. Las operaciones asociadas con cada instrucción se discuten en la Sección 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 propósito 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 dígitos hexadecimales SS: 6-bit de dirección de memoria de datos constante, lo que por lo general se expresa como dos dígitos hexadecimales AAA: 10-bit de dirección de memoria de instrucciones constante, que por lo general se expresa como tres dígitos hexadecimales

Page 6: Capitulo-14-Español.docx

 14.5.2 Formato de instrucciónEn un programa de la asamblea, por lo general, seguimos las convenciones que se utilizan en nuestro código HDL, en el que una palabra clave (un mnemónico de instrucción) está en letra negrita y una constante es en mayúsculas. Las instrucciones del PicoBalze tienen cinco formatos:  op sx, sy el sistema: Registrarse registrar formato.El término op especifica la operación.Los términos SX y SY son los dos operandos y SX también sirve como el registro de destino.Lo realiza el SX Operación 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 operación op KK SX SX. op sX: formato de un solo registro.Este formato se utiliza en desplazamiento y rotación, que implican un solo operando. Se realiza la operación SX SX t op. op AAA: formato de dirección única.Este formato se utiliza en operaciones de salto y de llamadas. El término AAA es una dirección de la memoria de instrucciones.Si se cumple la condición 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 ningún operando. Hay dos programas en ensamblador para PicoBlaze: KCPSM3 de Xilinx y PBlazeZDE de Mediatronix.Los dos programas utilizan diferentes mnemotécnicos para varias instrucciones. En los apartados siguientes, los mnemónicos alternativos utilizados en PBlazeIDE se muestran entre paréntesis.14.5.3 instrucciones lógicasHay seis instrucciones lógicas, que apoyan la AND, OR, y XOR. Una instrucción realiza la operación lógica 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 operación.Los mnemónicos, breves descripciones, y las operaciones de los pseudo de estas instrucciones son:  y SX, SY- A nivel de bits y operación- Pseudo operación:              SX sX y Sy;

c 0; 

y SX, KK- A nivel de bits y operación- Pseudo operación:  o sx, SY- A nivel de bits o la operación- Pseudo operación:  o sX, KK- A nivel de bits o la operación- Pseudo operación:  xor SX, SY- XOR operación

Page 7: Capitulo-14-Español.docx

- Pseudo operación:  xor s X, KK- XOR operación- Pseudo operación: 14.5.4 Instrucciones aritméticasHay ocho instrucciones aritméticas, n .. ich adición 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 operación.Los mnemónicos, breves descripciones, y las operaciones de los pseudo de estas instrucciones son:  añadir SX, SY

- Add sin la bandera de acarreo- Pseudo operación:  añadir sX, KK- Add sin la bandera de acarreo

- Pseudo operación:  addcy SX, SY (ADDC s X, s Y)- Añadir a la bandera de acarreo

- Pseudo operación:  addcy sX, KK (ADDC s X, KK)- Añadir a la bandera de acarreo

- Pseudo operación:  sub sx, sy- Restar sin la bandera de acarreo

- Pseudo operación:  sub sX, KK- Restar sin la bandera de acarreo- Pseudo operación:  subcy sx, sy (SUBC sx, sy)

- Restar con la bandera de acarreo (funcionamiento de la bandera como un poco de préstamo)

- Pseudo operación:  subcy sX, KK (SUBC sX, KK)- Restar con la bandera de acarreo (funcionamiento de la bandera como un poco de préstamo)

- Pseudo operación: 14.5.5 Compara y las instrucciones de la pruebaEl 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

Page 8: Capitulo-14-Español.docx

los registros permanecen intactos. Estas instrucciones se utilizan generalmente en conjunción con un salto o llamada instrucción condicional, cuyo funcionamiento está basado en los valores de las banderas. Una instrucción de comparación realiza la operación de resta.El resultado se utiliza para ajustar el arrastre y cero banderas y no se almacena en cualquier registro. Los mnemónicos, 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 operación: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 operación: Una instrucción de prueba realiza una operación AND.El resultado se utiliza para establecer las banderas y no almacenados en ningún registro. Si el resultado es 0, el indicador de cero se establece en 1. El resultado también se alimenta a un circuito XOR de ocho de entrada para obtener la braga impar. Si hay un número impar de 1 de en el resultado, la bandera de acarreo se pone a 1.Los mnemónicos, breves descripciones, y las operaciones de seudo de las dos instrucciones se muestran a continuación.El t es el resultado temporal de 8 bits y se descartará.  prueba SX, SY- examen de dos registros y establecer los indicadores- Pseudo operación:  prueba sX, KK- Probar un registro y una constante y establecer los indicadores

- Pseudo operación: ********************* Imagen pdf 353 ************************** 14.5.6 desplazamiento y rotaciónHay cuatro instrucciones de desplazamiento izquierda, cuatro instrucciones de desplazamiento de la derecha, y dos instrucciones de rotación. Estas instrucciones de utilizar el formato de un solo registro y tienen un solo operando. Las representaciones gráficas de estas instrucciones se muestran en la figura 14.6. Los mnemónicos, breves descripciones, y las operaciones de los pseudo de estas instrucciones se muestran abajo. El símbolo & significa para concatenar dos operandos. s10 sx- Cambiar un registro deja 1 bit y cambie 0 a la LSB- Pseudo operación:  sll sx- Cambiar un registro deja 1 bit y cambie 1 en el LSB- Pseudo operación:  slx sx

Page 9: Capitulo-14-Español.docx

- Cambiar un registro deja 1 bit y cambiar SX (0) en la LSB- Pseudo operación:  sla sx- Cambiar un registro deja 1 bit y cambie c en el LSB - Pseudo operación:  sr0 sX- Cambiar un registro de derecho 1 bit y trasladar 0 en el MSB- Pseudo operación:  Sr1 sX- Cambiar un registro de derecho 1 bit y desplazarte 1 en el MSB- Pseudo operación: ************************ Mas Funciones pdf 354 ********************** *** 14.5.7 instrucciones de movimiento de datosEn PicoBlaze, el cálculo se realiza a través de los registros y la ALU. El suministro de datos RAM de almacenamiento adicional y los puertos de E / S proporcionan rutas a los periféricos. Hay varias instrucciones para mover datos entre los registros, memoria RAM de datos y puertos I / O.Las instrucciones se pueden dividir en tres categorías:  Entre los registros: la instrucción de carga Entre un registro y los datos de la RAM: la captación y almacenar instrucciones Entre un registro y un puerto de E / S: las instrucciones de entrada y salida Los mnemónicos, breves descripciones, y las operaciones de los pseudo de las instrucciones de movimiento de datos se muestran a continuación. La notación [] RAM representa el contenido de la RAM de datos. Tenga en cuenta que en algunas instrucciones, la notación dirección indirecta, como en (SY), se utiliza en mnemónico hacer hincapié en que se utiliza el contenido del registro sy.  cargar sx, sy- mover datos entre dos registros- Pseudo operación:  cargar sX, KK- Mover una constante a un registro- Pseudo operación:  buscar sX, (s Y> (traiga sx, sy)- mover datos desde la RAM de datos a un registro- Pseudo operación: ******************** Funciones pdf 355 ************************* No hay ninguna instrucción explícita 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 instrucción y almacenado

Page 10: Capitulo-14-Español.docx

en la memoria de instrucciones, que puede ser considerada como datos que se trasladaron implícitamente de la memoria de instrucciones a un registro. 14.5.8 instrucciones de control de flujo ProgramaEn PicoBlaze, el contador de programa indica el lugar para ir a buscar la instrucción. Por defecto, la ejecución pasa a la siguiente dirección en la memoria de instrucciones y el contador de programa se incrementa de manera implícita. Las instrucciones de salto, de llamada y retorno pueden cargar explícitamente 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 prórroga y cero banderas. Una instrucción de salto se carga un nuevo valor al contador de programa si se cumple la condición correspondiente.La ejecución del programa cambia el flujo regular y ramas a la nueva dirección. El flujo del programa continúa normalmente después de este punto. Los mnemónicos, breves descripciones, y las operaciones de los pseudo de estas instrucciones se muestran abajo. Recordemos que AAA es para la dirección de memoria de instrucciones de 10 bits y PC es para el contador de programa.  saltar AAA- Incondicionalmente saltar- Pseudo operación:Pc AAA  salto c, AAA- Salta si la bandera de acarreo se establece- Pseudo operación:  saltar nc, AAA

- Salto si la bandera de acarreo no se establece

- Pseudo operación:si c = O entonces aaa pc otra pc pc 1

  Jumpz, AAA- Salta si el flag de cero se establece- Pseudo operación:

si z = 1, entonces AAA pc otra pc pc 1  saltar nz, AAA

- Salto si el flag de cero no está definida- Pseudo operación:              si z = O entonces AAA pc otra pc pc 1 Las instrucciones de la llamada y de retorno se utilizan para implementar una función de software.Cuando una función es llamada, el procesador suspende la ejecución actual y las ramas a la rutina correspondiente.Cuando se completa el cálculo de rutina, el procesador vuelve al punto suspendido y continúa la ejecución.Al igual que una instrucción de salto, una instrucción de llamada carga un nuevo valor en el contador de programa si se cumple la condición correspondiente.Además, también se guarda el valor actual del contador de programa en una memoria intermedia especial, conocido como la pila.La nueva dirección representa el punto de partida de una rutina. La rutina debe incluir una instrucción de retorno al final.La instrucción de retorno

Page 11: Capitulo-14-Español.docx

obtiene el valor guardado de la pila, se incrementa el valor en 1, y lo carga en el contador de programa.Esto permite la ejecución para volver a la instrucción que sigue inmediatamente a la instrucción 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 función puede ser llamada dentro de otra función. Para apoyar esta función, 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 dirección de la llamada más 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 función dentro. Se completó primera y la dirección 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 ejecución anterior. PicoBlaze proporciona una pila de 31 palabras para la llamada anidada y las operaciones de retorno. Los mnemónicos, breves descripciones, y las operaciones de los pseudo de las instrucciones de llamada y de retorno se muestran a continuación.Recordemos que tos y es para el puntero del tope de la pila. La notación [] PILA representa el contenido de la pila.llamar a AAA- Incondicionalmente llamar a subrutinaPseudo-operación:Tos tos + 1Stack [tos] pcPc AAA  llamada c, AAA- Llamar a subrutina si la bandera de acarreo se establece- Pseudo operación:  Llamar NC, AAA

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

- Pseudo operación:  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 interrupción relacionadasInterrupción es otro mecanismo para alterar la ejecución del programa y su detalle se trata en el Capítulo 17.A diferencia de las instrucciones de salto y de llamada, se inicia a partir de una solicitud externa. Cuando la bandera de interrupción está

Page 12: Capitulo-14-Español.docx

habilitada y la solicitud de interrupción se afirma, PicoBlaze completa la ejecución de la instrucción actual, guarda la dirección de la siguiente instrucción en la pila de llamadas / retorno, conserva el acarreo y cero banderas, desactiva el indicador de interrupción, y carga el contador de programa con 3FF, que es la dirección de partida de la rutina de servicio de interrupción.PicoBlaze tiene dos vuelta-de-interrupción instrucciones, que resume la operación de la ubicación interrumpido.También cuenta con dos instrucciones que activar y desactivar la petición de interrupción mediante el establecimiento o la limpieza de la bandera de interrupción, i.Los mnemónicos, breves descripciones y operaciones seudo de estas instrucciones son:  desactivar returni (deshabilitar retina)

- Retorno de la rutina de servicio de interrupción y mantener la bandera de interrupción deshabilitado  returni permiten (reti permiten)

- Retorno de la rutina de servicio de interrupción y mantener la bandera de interrupción habilitado  permitir interrupción (eint)- Enable solicitud de interrupción  deshabilitar interrupción (fuerza)

- Solicitud de interrupción desactivar Tenga en cuenta que el mecanismo de interrupción guarda la dirección de la siguiente instrucción. Cuando se ejecuta una instrucción returni, la dirección guardada en la parte superior de la pila (es decir, PILA [tos]) se restaura.Esto es diferente de una instrucción de retorno regular, en la que (es decir, STACK [TOS] 1) se restaura la dirección incrementada. 14.6 DIRECTIVAS ENSAMBLADORUna directiva de ensamblador parece una instrucción 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 específica, como la definición de un espacio de datos constante o la reserva.Los montadores KCPSM3 y PBlazeIDE tienen algo diferentes directivas y también son discutidos en las siguientes subsecciones. 14.6.1 Las directivas KCPSM3Los mnemónicos, descripciones y ejemplos de las directivas clave utilizados en el ensamblador KCPSM3 son:  dirección- La directiva especifica el código después de ser condenado a una dirección específica en la ROM de instrucciones.              abordar 3FF  namereg- La directiva da un nombre simbólico para un registro.Hace código más descriptivo.

namereg s 5, el índice de 

Page 13: Capitulo-14-Español.docx

constante

- La directiva da un nombre simbólico para una constante.Hace código más descriptivo.

máx constante, FO 14.6.2 Las directivas PBlazelDELos mnemónicos, 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 número en formato hexadecimal.  . Org

- La directiva especifica el código después de ser condenado a una dirección específica en el:ROM de instrucciones (es decir, "originar" de esta dirección).

org $ 3FF  equ

- La directiva "iguala" el símbolo de un valor o r registro.Le da un nombre simbólico para una constante o un registro.

max EQU 128/8Índice equ s5

  DSIN, dsout, dsioEstas directivas equiparan un nombre simbólico 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 simulación.Las actividades de E / S se pueden visualizar y simular a través de estos indicadores.              DSIN teclado $ 0E

cambiar DSIN $ 0Fllevado dsout $ 15

  VHDL

- Esta directiva genera ROM de instrucciones en formato VHDL.El detalle está dis maldijo en el capítulo 15.

VHDL "template.vd", "target.vhd", "ROM"