5 private links
Matthew continue sa série d'article sur le développement d'un BFM avec CocoTB + verilator
If you are designing your gateware with Chisel-HDL and testing it with CocoTB, you will need some script like that.
- to add waveform under verilog TOP generated for Icarus simulation
- To generate all cocotb files for testing a Chisel module
- To inject some SystemVerilog code in verilog generated for Formal verification (assume/assert/cover/...)
Vous connaissez UVM, mais vous avez du mal avec SystemVerilog. Et puis surtout, vous n'avez pas les moyens d'investir dans un simulateur supportant SystemVerilog ?
Voici donc un portage de UVM en Python ... qui utilise Cocotb bien sur ! et Icarus (vivement verilator).
Sortie de la version 1.3.0 de Cocotb. \o/
Writing a Task-Based Cocotb BFM
Comment tester l'usb avec cocotb
Si jamais vous avez des erreurs du genre :
gcc -Werror -Wcast-qual -Wcast-align -Wwrite-strings -Wall -Wno-unused-parameter -fno-common -g -DDEBUG -fpic -DICARUS -Wstrict-prototypes -Waggregate-return -DFILTER -DICARUS -shared -Xlinker -L/usr/local/lib -o /usr/local/projects/videautom/gateware/hw_validation/spi2ksz/cocotb/build/libs/x86_64/libgpilog.so /usr/local/projects/videautom/gateware/hw_validation/spi2ksz/cocotb/build/obj/x86_64/gpi_logging.o -lpython3.7m
/usr/bin/ld: /usr/local/lib/libpython3.7m.a(ceval.o): relocation R_X86_64_PC32 against symbol `_PyRuntime' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
/usr/local/cocotb/envp37/lib/python3.7/site-packages/cocotb/share/makefiles/Makefile.rules:58: recipe for target '/cocotb/build/libs/x86_64/libgpilog.so' failed
La vidéo de la présentation de CocoTB à l'enseirb (ORConf 2019)
Cocotb et verilator, par Antmicro.
Note pour moi même:
Se compiler un python 3 pour soit:
$ wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
Ne pas oublier l'option --enable-shared
$ tar -Jxvf Python-3.7.4.tar.xz
$ cd Python-3.7.4
$ ./configure --enable-shared
$ make
$ sudo make install
Une fois qu'on a installé sa version de python officielle dans /usr/local/bin. Se mettre dans le répertoire ou l'on veut utiliser la version puis :
$ virtualenv --python=/usr/local/bin/python3.7 envp37
$ source envp37/bin/activate
$ python -m pip install cocotb
Support de cocotb ?
\o/ cool ! \o/
Il y a un packet python maintenant pour la couverture de code avec cocotb
Sortie de Cocotb 1.1 \o/
Une présentation de Cocotb
Une présentation de Cocotb à l'orconf 2018 par un ingénieur de chez broadcom.
Oyé oyé si vous souhaitez vous impliquer dans le développement de cocotb c'est maintenant !
Documentation pdf de cocotb version 1.0
Pour réduire la taille des lignes dans cocotb, il suffit d'exporter la variable suivante dans son makefile :
export COCOTB_REDUCED_LOG_FMT=1
Sinon la largeur des lignes est ... infinie et c'est illisible.