La construcción de hardware en un lenguaje incrustado de Scala (Chisel) [1] es un lenguaje de descripción de hardware de código abierto (HDL) que se utiliza para describir la electrónica digital y los circuitos en el nivel de transferencia de registro . [2] [3] Chisel se basa en Scala como un lenguaje específico de dominio integrado (DSL). Chisel hereda los aspectos de programación funcional y orientados a objetos de Scala para describir el hardware digital. El uso de Scala como base permite describir generadores de circuitos. Existe documentación de alta calidad y acceso gratuito en varios idiomas. [4]
Paradigmas | Multi-paradigma : concurrente , funcional , imperativo , orientado a objetos |
---|---|
Familia | Scala |
Desarrollador | Universidad de California, Berkeley |
Apareció por primera vez | Junio de 2012 |
Lanzamiento estable | 3.4.2 / 2021 |
Versión de vista previa | 3.4.3 / 2021 |
Disciplina de mecanografía | Inferido , estático , fuerte , estructural |
Alcance | Léxico (estático) |
Lenguaje de implementación | Scala |
Plataforma | Máquina virtual Java (JVM) JavaScript ( Scala.js ) LLVM ( Scala Native ) (experimental) |
Sitio web | www |
Los circuitos descritos en Chisel se pueden convertir a una descripción en Verilog para síntesis y simulación.
Ejemplos de código
Un ejemplo simple que describe un circuito sumador y muestra la organización de los componentes en el módulo con puertos de entrada y salida :
clase Agregar amplía Módulo { val io = IO ( nuevo paquete { val a = Entrada ( UInt ( 8. W )) val b = Entrada ( UInt ( 8. W )) val y = Salida ( UInt ( 8. W )) } ) io . y : = io . a + io . b }
Un registro de 32 bits con un valor de reinicio de 0:
val reg = RegInit ( 0. U ( 32. W ))
Un multiplexor es parte de la biblioteca de Chisel:
val resultado = Mux ( sel , a , b )
Usar
Aunque Chisel aún no es un lenguaje de descripción de hardware convencional, ha sido explorado por varias empresas e instituciones. El uso más destacado de Chisel es una implementación del conjunto de instrucciones RISC-V , el chip Rocket de código abierto. [5] Chisel es mencionado por la Agencia de Proyectos de Investigación Avanzada de Defensa ( DARPA ) como una tecnología para mejorar la eficiencia del diseño electrónico, donde los equipos de diseño más pequeños hacen diseños más grandes. [6] Google ha utilizado Chisel para desarrollar una unidad de procesamiento de tensores para la informática de borde . [7]
Ver también
Referencias
- ↑ Bachrach, J .; Vo, H .; Richards, B .; Lee, Y .; Waterman, A .; Avižienis, R .; Wawrzynek, J .; Asanović, K. (junio de 2012). "Chisel: construyendo hardware en un lenguaje incrustado Scala" . Actas de la 49ª Conferencia Anual de Automatización del Diseño (DAC 2012) . San Francisco, California, Estados Unidos: Asociación de Maquinaria de Computación (ACM). págs. 1216-25. doi : 10.1145 / 2228360.2228584 . ISBN 978-1-4503-1199-1.
- ^ "Cincel" . people.eecs.berkeley.edu . California, EE.UU .: Universidad de California, Berkeley . Consultado el 8 de julio de 2020 .
- ^ Bachrach, Jonathan (ed.). "Cincel: Aceleración del diseño de hardware" (PDF) . RISC-V . California, EE.UU .: RISC-V International.
- ^ Schoeberl, Martin (30 de agosto de 2019). Diseño digital con cincel (en inglés, chino, japonés y vietnamita) (2ª ed.). Publicación directa de Kindle. ISBN 978-1689336031.
- ^ Asanović, Krste ; et al. "cohete-chip" . GitHub . RISC-V Internacional . Consultado el 11 de noviembre de 2016 .
- ^ Moore, Samuel K. (16 de julio de 2018). "DARPA planea una importante remodelación de la electrónica de Estados Unidos" . Espectro IEEE . Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) . Consultado el 10 de junio de 2020 .
- ^ Derek Lockhart, Stephen Twigg, Ravi Narayanaswami, Jeremy Coriell, Uday Dasari, Richard Ho, Doug Hogberg, George Huang, Anand Kane, Chintan Kaur, Tao Liu, Adriana Maggiore, Kevin Townsend, Emre Tuncer (16/11/2018). Experiencias construyendo Edge TPU con Chisel . Consultado el 10 de junio de 2020 .
enlaces externos
- Página web oficial
- Cincel 3 en GitHub