ESTRATEGIAS DE VERIFICACIÓN FUNCIONAL DE INSTRUCCIONES EN DESCRIPCIONES HARDWARE DE MICROPROCESADOR (FUNCTIONAL VERIFICATION STRATEGIES OF INSTRUCTIONS IN MICROPROCESSOR HARDWARE DESCRIPTIONS)

Carlos Andrés Guerra Sandoval, Luis García Magallón, Karen Estefania González Hernández, Salatiel García Moreno, Iván Rodrigo Padilla Cantoya, Marco Antonio Gurrola Navarro

Resumen


Resumen
Se presenta una estrategia para verificar la correcta ejecución de las instrucciones en la descripción hardware de una microarquitectura de procesador. El proceso de diseño de un microprocesador implica realizar una descripción hardware (empleando VHDL o Verilog) capaz de decodificar y ejecutar todas las instrucciones de la arquitectura de procesador seleccionada (por ejemplo, ARM, RISC V, etc.). En este trabajo se presenta una estrategia para verificar que una descripción hardware (microarquitectura) como la mencionada realmente ejecuta las instrucciones de la manera esperada ante un amplio conjunto de condiciones. Aunque lo ideal sería comprobar que una instrucción se ejecute correctamente ante todas las combinaciones de datos de entrada y de registros posibles, en el presente trabajo se muestra cómo establecer un compromiso entre la cantidad de combinaciones y el tiempo requerido para su simulación. Además, se explica cómo evitar que el tamaño de los archivos generados durante la simulación sature la memoria o el disco duro de nuestro equipo de cómputo.
Palabras Clave: microarquitectura, microprocesador, verificación funcional, VHDL.

Abstract
A strategy is presented to verify the correct execution of the instructions in the hardware description of a processor microarchitecture. The process of designing a microprocessor involves making a hardware description (using VHDL or Verilog) capable of decoding and executing all the instructions of the selected processor architecture (e.g., ARM, RISC-V, etc.). In this work, a strategy is presented to verify that a hardware description (microarchitecture) like the one mentioned really executes the instructions in the expected way under a wide set of conditions. Although the ideal would be to check that an instruction is executed correctly before all possible combinations of input data and registers, in this paper we show how to establish a compromise between the number of combinations and the time required for their simulation. In addition, it explains how to prevent the size of the files generated during the simulation from saturating the memory or hard drive of our computer equipment.
Keywords: functional verification, microarchitecture, microprocessor, VHDL.

Texto completo:

526-544 PDF

Referencias


Parai, M. K., Das, B., & Das, G. (2013). An overview of microcontroller unit: from proper selection to specific application. International Journal of Soft Computing and Engineering (IJSCE), 2(6), 228-231.

Muse Semiconductor, (2023). https://www.musesemi.com/

RISC-V International, (2021). RISC-V Exchange: https://riscv.org/exchange/

OpenCores, (2023). Projects: https://opencores.org/projects

Chávez Bracamontes, R., Gurrola Navarro, M. A., Jiménez Flores, H. J., Bandala Sánchez, M., IEICE Electronics Express, Volume 13, Issue 6, (2016). VLSI architecture of a Kalman filter optimized for real-time applications: https://doi.org/10.1587/elex.13.20160043

Gurrola, M. A., Quiroga, J. V., Avelar, Á. E., Bonilla, C. A., Padilla, I. R., & Medina, A. S., Pistas Educativas, Vol. 44, Núm. 143 (2022). DISEÑO DE PROCESADOR RISC-V DE 32-BITS DE CICLO ÚNICO: https://pistaseducativas.celaya.tecnm.mx/index.php/pistas/article/view/2835

The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 20191213, Editors Andrew Waterman and Krste Asanovi´c, RISC-V Foundation, December 2019: https://riscv.org/technical/specifications/

OpenPOWER Foundation. (2023). Linux on POWER Architecture Reference: https://openpowerfoundation.org/specifications/linuxonpower/

Sparc International, Inc, (2023). The SPARC Architecture Manual, Version 9: https://sparc.org/technical-documents/#V8

Synopsys, Inc., (2023). Silicon Design: https://www.synopsys.com/silicon-design.html

Cadence Design Systems, Inc., (2023). Digital Design and Signoff: https://www.cadence.com/en_US/home/tools/digital-design-and-signoff.html

Siemens, (2023). Siemens EDA: https://eda.sw.siemens.com/en-US/

Sorbonne Université. Laboratoire d'Informatique de Paris 6 (LIP6), (2017). Alliance. A Free VLSI/CAD System: https://www-soc.lip6.fr/equipe-cian/logiciels/alliance/

Sorbonne Université. Laboratoire d'Informatique de Paris 6 (LIP6), (2020). Alliance/Coriolis VLSI CAD Tools: https://coriolis.lip6.fr/

The-OpenROAD-Project/OpenLane, (2020). OpenLane: https://github.com/The-OpenROAD-Project/OpenLane

Open Circuit Design, (2019). Qflow 1.3 An Open-Source Digital Synthesis Flow: http://opencircuitdesign.com/qflow/index.html

Muse Semiconductor, (2023). TSMC MPW SHARED TAPEOUTS: https://www.musesemi.com/shared-block-tapeout-pricing

Europractice IC Service. GENERAL MPW & MINI@SIC SCHEDULES - 2023: https://europractice-ic.com/schedules-prices-2023/

Terasic Inc. DE10-Lite Board: https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=1021

Ghoshal, S., (2010). 8051 Microcontroller. Internals, instructions, programming, and interfacing. Pearson.

Singh, J., Raghavendra, S., & Kumar, S., (2020). A Text Book On Embedded System Design for Engineering Students. Nitya Publications.

Intel Corporation, (1994). MCS-51 Microcontroller Family User’s Manual.






URL de la licencia: https://creativecommons.org/licenses/by/3.0/deed.es

Barra de separación

Licencia Creative Commons    Pistas Educativas está bajo la Licencia Creative Commons Atribución 3.0 No portada.    

TECNOLÓGICO NACIONAL DE MÉXICO / INSTITUTO TECNOLÓGICO DE CELAYA

Antonio García Cubas Pte #600 esq. Av. Tecnológico, Celaya, Gto. México

Tel. 461 61 17575 Ext 5450 y 5146

pistaseducativas@itcelaya.edu.mx

http://pistaseducativas.celaya.tecnm.mx/index.php/pistas