Automatic Code Generator for a Customized High Performance Microprocessor Simulator

  • Alfredo Cristóbal-Salas
  • Juan D. Santiago-Domínguez
  • Bardo Santiago-Vicente
  • Marco Antonio Ramírez-Salinas
  • Luis Alfonso Villa-Vargas
  • Neiel Israel Layva-Santes
  • Cesar Alejandro Hernández-Calderón
  • Carlos Rojas-Morales
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 948)


This paper presents a software that generates code that implements a microprocessor simulator based on features defined by user. Software receives a set of microprocessor architecture description that includes: number of cores, operations to be executed in the ALU, cache memory details, and number of registers, among others. After configuration, the software generates Java code that implements the microprocessor simulator described. Software can generates more than forty different codes depending on the configurations defined. Each simulator follows a standard four stages pipeline: fetch, decode, execute and store. Code generator has been used as a learning tool in an undergraduate course with interesting effects in the student’s learning process. Preliminary results show that students understand better how a microprocessor works and they felt ready to propose new microprocessor architectures.


Code generator Microprocessor Simulator Architecture ISA 



Authors would like to thank to students from Facultad de Ingeniería en Electrónica y Comunicaciones, Universidad Veracruzana and students from Centro de Investigación en Cómputo, Instituto Politécnico Nacional who participated during the research activities. Likewise, authors would like to thank to both institutions authorities who make possible this research collaboration.


  1. 1.
    CACEI A. C. Accessed 12 Feb 2018
  2. 2.
    CACEI A. C.: Marco de Referencia 2018 del CACEI en el Contexto Internacional, pp. 143–145 (2017)Google Scholar
  3. 3.
    CACEI A. C.: Marco de Referencia 2018 del CACEI en el Contexto Internacional, p. 67 (2017)Google Scholar
  4. 4.
    Grace-Alcalde, J., Chua, G., Marlowe-Demabildo, I., Ahsley-Ong, M., Luis-Uy, R.: CALVIS32: customizable assembly language visualizer and simulator for Intel x86-32 architecture. In: IEEE Region 10 Conference (TENCON 2016), pp. 214–217 (2016)Google Scholar
  5. 5.
    Vasudeba, A., Kumar-Sharma, A., Kumar, A.: Saksham: customizable x86 based multi-core microprocessor simulator. In: IEEE First International Conference on Computational Intelligence, Communication Systems and Networks, pp. 220–225 (2009)Google Scholar
  6. 6.
    Alegrechi, D., Almirón, E.: Introducción al entorno emu8086 Archive Accessed 12 Feb 2018
  7. 7.
    Cocheiro, R., Loureiro, M., Amor, M., Gonzáles, P.: Simula3MS: simulador pedagógico de un procesador. In: Actas de las XI Jornadas de Enseñanza universitaria de la Informática, pp. 490–495 (2005)Google Scholar
  8. 8.
    Larus, J.: SPIM A MIPS32 Simulator. Accessed 12 Feb 2018
  9. 9.
    Nova, B., Ferreira, J.C., Araújo, A.: Tool to support computer architecture teaching and learning. In: 1st International Conference of the Portuguese Society for Engineering Education, pp. 1–8 (2013)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Laboratorio de Cómputo de Alto RendimientoUniversidad VeracruzanaVeracruzMexico
  2. 2.Centro de Investigación en ComputaciónInstituto Politécnico NacionalDelegación Gustavo A. MaderoMexico

Personalised recommendations