| Circuitos IV: Arquitectura de Computadoras |
| Simulador de procesador PIC - fase 4: Funciona! |
Como �ltimo paso: el propio simulador. Quiz�s el 'coraz�n' del programa completo, pero lo dem�s era necesario para que coraz�n funcione!
El simulador fue encargado a los alumnos como trabajo pr�ctico, y durante clases se present� otra soluci�n, que quiz�s no fue la �ptima por su falta de velocidad, pero que muestra algunas t�cnicas de programaci�n que hasta este momento no se ense�aron, como el uso de procedimientos como argumentos y valores.
tPic es el objeto que implementa dos m�todos importantes: Step (ejecuci�n de un solo paso del programa) y Reset (que inicializa los registros internos al estado especificado para esta condici�n).
Ficha t�cnica del objeto tSource:
Descripcion
El objeto tPic contiene las partes criticas del procesador.
Todavia no es configurable, pero tratamos de disenar las partes
para que sea facilmente adaptable a diferentes PICs.
Metodos:
<p>.Reset
vuelve el micro a su estado de reset. Una buena extension seria
agregar un parametro para indicar si el reset fue por hardware,
watchdog u otro motivo.
<p>.Step(Opc: word)
Ejecuta el Opc provisto a la instruccion.
<p>.GetFile(Nr: byte): byte
Acceso al contenido de los files - simula IND, timer,
puertos etc. Tambien toma en cuenta los bancos de registros.
<p>.SetFile(Nr, V: byte);
Modificar los registros - mismas observaciones que GetRec
Datos:
PC: word Program counter actual
Opcode: byte Ultima instruccion ejecutada
Files: array Arreglo con los registros
W: byte El acumulador
|
Las unidades de la fase 4:
| Unidad | Descripci�n |
| test.pas | Programa principal |
| config.pas | Unidad de configuraci�n de la fase 2 |
| screen.pas | Unidad de manejo de 'paneles' (actualizado) |
| strings.pas | Utilitarios para manejo de strings |
| pic.pas | La unidad con el simulador propio. |
| defin.pas | Unidad de definiciones (y alguna rutina que no entr� en otra unidad...) |
| Licencia GPL | Licencia bajo la cual se libera el c�digo fuente |
| (c) John Coppens ON6JC/LW3HAZ | correo |