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
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:
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.
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.
fuera de puerto (de salida, 8 bits): los datos de salida a los perifricos de E / S
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
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
KK: valor o puerto de 8 bits constante id, 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:
y SX, SY
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
- Pseudo operacin:
aadir sX, KK
- Add sin la bandera de acarreo
- Pseudo operacin:
- Pseudo operacin:
addcy sX, KK (ADDC s X, KK)
- Aadir a la bandera de acarreo
- Pseudo operacin:
sub sx, sy
- Pseudo operacin:
sub sX, KK
- Pseudo operacin:
- Pseudo operacin:
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 **************************
s10 sx
- Cambiar un registro deja 1 bit y cambie 0 a la LSB
- Pseudo operacin:
sll sx
slx
sx
sla sx
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:
cargar sx, sy
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
Jumpz, AAA
llamada c, AAA
z llamada, AAA
retorno (RET)
- Regresar incondicionalmente
c retorno (ret c)
- Regresar si la bandera de acarreo se establece
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
. Org
equ
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"