ESTRATEGIAS DE VERIFICACIÓN FUNCIONAL DE INSTRUCCIONES EN DESCRIPCIONES HARDWARE DE MICROPROCESADOR (FUNCTIONAL VERIFICATION STRATEGIES OF INSTRUCTIONS IN MICROPROCESSOR HARDWARE DESCRIPTIONS)
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 PDFReferencias
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
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