Cocotb

From Robin

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
=Cocotb og GHDL installasjon, full=
+
=For å kjøre Cocotb (etter installasjon - )=
-
== OS ==
+
== Om cocotb ==
-
Cocotb kjøres best under linux. Hvis du har en windowsmaskin, så må du installere Windows Subsystem for Linux (WSL).  
+
Cocotb sørger for at vi linker simulator (her: GHDL eller Questa) med python. Under simulering kjøres vekselvis simulator eller python fil- de kjører ikke samtidig. De triggerne (''await..'') vi bruker i python testbenken bestemmer når simulatoren overlater roret til python koden. Etter simuleringen er ferdig så ramser cocotb opp kjøreresultatet.  
-
cmd
+
== Kjøre cocotb ==
-
  wsl --install
+
* I folderen med makefile, kjør
 +
  make
-
[WSL|https://techcommunity.microsoft.com/t5/windows-11/how-to-install-the-linux-windows-subsystem-in-windows-11/m-p/2701207]
+
== Makefil ==
 +
Makefila sørger for kompilering og kjøring av Cocotb, samt evt kjøring av GUI eller lagring av waveform fil
 +
* tb_<modulnavn>.py må inneholde python-testbenken
-
== Python ==  
+
# Makefile for GHDL
-
I utgangspunktet skal python være installert med WS, men hvis det mangler (avinstallert)
+
# defaults
-
  sudo pip install pytest
+
SIM ?= ghdl
 +
TOPLEVEL_LANG ?= vhdl
 +
# VHDL 2008
 +
EXTRA_ARGS +=--std=08
 +
# TOPLEVEL is the name of the toplevel module in your VHDL file
 +
TOPLEVEL = first
 +
VHDL_SOURCES += $(PWD)/../lab1/$(TOPLEVEL).vhd
 +
  #VHDL_SOURCES += $(PWD)/../../hdl/*.vhdl
 +
SIM_ARGS +=--wave=$(TOPLEVEL).ghw
 +
# MODULE is the basename of the Python test file
 +
MODULE = tb_$(TOPLEVEL)
 +
# include cocotb's make rules to take care of the simulator setup
 +
include $(shell cocotb-config --makefiles)/Makefile.sim
 +
# removing generated binary of top entity and .o-file on make clean
 +
clean::
 +
-@rm -f $(TOPLEVEL)
 +
-@rm -f e~$(TOPLEVEL).o
-
For å bruke uint og int8
 
-
pip3 install numpy
 
-
 
-
== Ada og Gnats ==
 
-
Ada og gnat er en forutsetning for å kompilere GHDL
 
-
apt-get install gnat
 
-
#evt bruk 'sudo'
 
-
 
-
* last ned og pakk ut
 
-
 
-
[GNAT|https://sites.radford.edu/~nokie/classes/320/compileInstall.html]
 
-
 
-
==GHDL ==
 
-
* Last ned og pakk ut GHDL
 
-
** [GHDL|https://github.com/ghdl/ghdl]
 
-
* Følg guiden, ikke bruk apt. Vi trenger V2 eller V3 (ikke V1)
 
-
** https://github.com/ghdl/ghdl/tree/5726f0eccf874b872ce0729aab42f587d915a3f5
 
-
** [Github lokasjon|https://github.com/ghdl/ghdl/archive/5726f0eccf874b872ce0729aab42f587d915a3f5.zip]
 
-
** [Zip fil med versjon som kan bygges|https://ghdl.github.io/ghdl/development/building/]
 
-
 
-
* [Bygge GHDL| https://ghdl.github.io/ghdl/development/building/index.html]
 
-
** Last ned pakken til et sted i WSL filsystemet dersom det er i bruk.
 
-
** Pakke ut den nedlastede pakken og navigere inn i den i wsl cmd.
 
-
#når man lastet ned .tar.gz fil:
 
-
tar xf <pakkenavn>
 
-
 
-
#når man lastet ned .zip fil):
 
-
unzip <pakkenavn>
 
-
 
-
./configure --prefix=/usr/local
 
-
make
 
-
sudo make install
 
-
* Bygge GHDL fra patchet versjon (fungerer selv om en annen versjon var lastet ned fra før):
 
-
** Laste ned patched versjon fra github (code → download ZIP)
 
-
** Unzip filen og naviger til den iwsl cmd (resten er lik som før)
 
-
./configure --prefix=/usr/local
 
-
make
 
-
sudo make install
 
-
* Nå skal ghdl være installert. Kjør følgende kommando for å verifisere installasjon og riktig versjon: GHDL 3.0.0
 
-
ghdl version
 
-
== Installere Cocotb ==
 
-
pip install cocotb
 
-
# evt pip install cocotb[bus]
 
-
* Feilmelding om gammel pip versjon kan forekomme. 22.2.2 kan virke, men den ønsker 22.3.1
 
-
** Evt. Oppgrader pip først
 
-
python -m pip install --upgrade pip
 
-
* Verifiser versjon (1.7.2)
 
-
cocotb-config -v
 
-
 
-
* Sjekke path
 
-
echo $PATH
 
-
* Fixe Path (om det ikke er gjort fra før) [https://opensource.com/article/17/6/set-path-linux]
 
-
** Skal ikke være nødvendig å gjøre manuelt med Ubuntu 22, men cocotb bruker disse:
 
-
export PATH=$PATH:/usr/local/bin
 
-
export PATH=$PATH:/usr/bin
 
-
== Installere gtkwave ==
+
== WSL ==
-
  sudo apt install gtkwave
+
For å starte windows explorer under WSL (i katalogen du står i)
 +
explorer.exe .
 +
  # ikke glem punktumet

Revision as of 10:19, 6 December 2023

Contents

For å kjøre Cocotb (etter installasjon - )

Om cocotb

Cocotb sørger for at vi linker simulator (her: GHDL eller Questa) med python. Under simulering kjøres vekselvis simulator eller python fil- de kjører ikke samtidig. De triggerne (await..) vi bruker i python testbenken bestemmer når simulatoren overlater roret til python koden. Etter simuleringen er ferdig så ramser cocotb opp kjøreresultatet.

Kjøre cocotb

  • I folderen med makefile, kjør
make

Makefil

Makefila sørger for kompilering og kjøring av Cocotb, samt evt kjøring av GUI eller lagring av waveform fil

  • tb_<modulnavn>.py må inneholde python-testbenken
# Makefile for GHDL
# defaults
SIM ?= ghdl
TOPLEVEL_LANG ?= vhdl
# VHDL 2008
EXTRA_ARGS +=--std=08
# TOPLEVEL is the name of the toplevel module in your VHDL file
TOPLEVEL = first
VHDL_SOURCES += $(PWD)/../lab1/$(TOPLEVEL).vhd
#VHDL_SOURCES += $(PWD)/../../hdl/*.vhdl
SIM_ARGS +=--wave=$(TOPLEVEL).ghw
# MODULE is the basename of the Python test file
MODULE = tb_$(TOPLEVEL)
# include cocotb's make rules to take care of the simulator setup
include $(shell cocotb-config --makefiles)/Makefile.sim
# removing generated binary of top entity and .o-file on make clean
clean::
-@rm -f $(TOPLEVEL)
-@rm -f e~$(TOPLEVEL).o


WSL

For å starte windows explorer under WSL (i katalogen du står i)

explorer.exe .
# ikke glem punktumet
Front page