¿Necesito una licencia de Questa, VCS o Xcelium?
No. El curso corre entero con Verilator, que es software libre, más la
implementación de referencia de UVM de Accellera (uvm-core 2020.3.1), que se
baja sola. No hay flujo Questa en el repositorio: los run.do se borraron.
¿Sirve si vengo de diseño RTL y nunca escribí una clase?
Sí, y está pensado justo para eso. El día 2 completo es programación orientada a
objetos en SystemVerilog —clases, herencia, polimorfismo, clases paramétricas, la
factory— porque es el muro real del que llega desde RTL. UVM recién aparece el día 3.
Instalé todo y algo no anda: ¿por dónde empiezo?
Por make doctor. Dice si esta máquina puede correr el curso y qué falta,
con el comando exacto para tu gestor de paquetes. Los dos modos de falla más caros son
mudos: sin z3, randomize() devuelve 0 sin decir
nada; con un Verilator anterior a 5.050, la cobertura funcional reporta 0 % sin una
advertencia.
Y si el problema es que el testbench corre pero miente, la lista está en
las 21
trampas mudas: todo lo que compila, corre y no da un warning.
¿Cuánto tiempo lleva?
Siete días de clase dictado, unas 30 horas y media — y un día 8 opcional,
después del cierre, con RAL, el modelo de referencia en C por DPI y un segundo capstone.
Si lo hacés solo, calculá el doble: la mitad del tiempo se va en correr los ejemplos, y
esa mitad es la que enseña. Como materia
de cuatrimestre, el mapa de 15 semanas está en
docs/para-docentes.md.
¿Qué versión de UVM usa?
UVM 2020.3.1, la implementación de referencia de Accellera para
IEEE 1800.2-2020. No la 1.2, que es pre-IEEE. Verilator la soporta
oficialmente desde la 5.052.
¿Puedo dictarlo en mi universidad o empresa?
Sí, incluso cobrando. Las slides están bajo CC BY 4.0, los ejemplos de
code/ bajo Apache-2.0 y las herramientas bajo MIT:
la única condición es citar la fuente y conservar el NOTICE. El repositorio trae
el deck en PDF y en PPTX con texto editable y notas del orador.
Y para dictarlo como materia hay tres cosas más:
docs/para-docentes.md —el curso de siete
días pasado a un cuatrimestre de 15 semanas, qué se puede saltear y qué evaluar en cada
parcial—, el banco con las 58 preguntas sin
la respuesta marcada, y un CITATION.cff para el botón Cite this
repository de GitHub.
¿Esto es The UVM Primer traducido?
No. Es el libro con el que aprendí UVM, está en las referencias, y varios de los
ejemplos de code/ derivan de los suyos —que su autor publicó bajo
Apache-2.0 y acá están acreditados en el NOTICE—. Pero la estructura es
otra: 8 unidades agrupadas por el problema que resuelven, no 24
capítulos por feature. El DUT es otro. El simulador es otro. Y hay cuatro unidades de
material que el libro no cubre: el plan de verificación como columna vertebral,
assertions (SVA), sequences virtuales y callbacks, y un capstone con un DUT
distinto que se escribe desde una hoja en blanco. La lista completa está en
docs/en-que-se-diferencia.md.
¿Qué queda afuera?
uvm_event y uvm_barrier, las
fases de run-time, y el TLM2. Están nombrados en la slide de cierre, con dónde seguir.
El curso es introductorio y prefiere decir qué no cubre.
¿Todo funciona igual que en un simulador comercial?
Casi. Verilator 5.052 todavía no compila los bins de transición de los
covergroups, ignora binsof/intersect en un cross, y
tiene dos limitaciones con dist y solve…before. Las cuatro están
documentadas con repro mínimo y con el rodeo portable, porque esconderlas sería peor
que no tenerlas.
¿Cómo aviso de un error o pregunto algo?
En las Discussions
del repositorio para preguntas, y en los
Issues si encontraste algo
roto. Las correcciones por pull request son bienvenidas.