Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

thinkoco/systemverilog-python

Repository files navigation

systemverilog-python

Systemverilog DPI-C call Python function

 SystemVerilog C Python
 ___________________ __________________ _________________
| | | | | |
| | | py_initial(){}; | | import module |
| DPI-C func1(a,b); | | | | |
| DPI-C func2(c,d); | | func1(a,b){ | | |
| | | py_func1_wrap | | |
| py_initial(); | | }; | | |
| | <---> | | <---> | def py_func1() |
| func1(x,x); | | func2(c,d){ | | |
| func2(x,x); | | py_func2_wrap | | def py_func2() |
| | | }; | | |
| py_final(); | | | | |
| | | py_final(){}; | | |
|___________________| |__________________| |_________________|

Feature

  • Synopsys,Mentor Graphics,Cadence EDA Tools
  • Python Function Call
  • Python modules e.g. Scapy
  • systemverilog data form/to python

Use Guide

0.c_call_py_only

 cd 0.c_call_py_only
 make

1.systemverilog_demo

 cd 0.systemverilog_demo
 make -f makefile.vcs #for Synopsys VCS
 make -f makefile.questa #for Mentor Graphics Questa
 make -f makefile.irun #for Cadence INCISIVE 

1.systemverilog_with_python_module_code

 cd 1.systemverilog_with_python_module_code
 tar xvf scapy-2.4.4.tar.gz
 make

2.systemverilog_with_installed_python_module

 python3 -m pip install scapy
 cd 2.systemverilog_with_installed_python_module
 make

logs

\rm -rf simv* csrc* *.log __pycache__ ucli.key vc_hdrs.h stack.info.*
vcs -full64 -LDFLAGS -Wl,--no-as-needed +incdir+./c -CC -lpython3.6m -CC -lpthread -CC -ldl -CC -lutil -lm -LDFLAGS -lpython3.6m -CC -I/usr/include/python3.6m -CC -I./ -sverilog gen_pkt_tb.sv c_call_py.c -l comp.log
 Chronologic VCS (TM)
 Version O-2018.09-SP2_Full64 -- Sat Mar 6 23:51:16 2021
 Copyright (c) 1991-2018 by Synopsys Inc.
 ALL RIGHTS RESERVED
This program is proprietary and confidential information of Synopsys Inc.
and may be used and disclosed only as authorized in a license agreement
controlling such use and disclosure.
Parsing design file 'gen_pkt_tb.sv'
Top Level Modules:
 hello_world
No TimeScale specified
Starting vcs inline pass...
1 module and 0 UDP read.
recompiling module hello_world
make[1]: Entering directory '/home/knat/tmp/c_call_py/0.systemverilog_only/csrc'
rm -f _csrc*.so pre_vcsobj_*.so share_vcsobj_*.so
gcc -w -pipe -fPIC -lpython3.6m -lpthread -ldl -lutil -I/usr/include/python3.6m -I./ -O -I/opt/synopsys/O-2018.09-SP2/include -c ../c_call_py.c
if [ -x ../simv ]; then chmod -x ../simv; fi
g++ -o ../simv -Wl,-rpath-link=./ -Wl,-rpath='$ORIGIN'/simv.daidir/ -Wl,-rpath=./simv.daidir/ -Wl,-rpath='$ORIGIN'/simv.daidir//scsim.db.dir -Wl,--no-as-needed -lpython3.6m -rdynamic -Wl,-rpath=/opt/synopsys/O-2018.09-SP2/linux64/lib -L/opt/synopsys/O-2018.09-SP2/linux64/lib c_call_py.o objs/amcQw_d.o _4021_archive_1.so SIM_l.o rmapats_mop.o rmapats.o rmar.o rmar_nd.o rmar_llvm_0_1.o rmar_llvm_0_0.o -lzerosoft_rt_stubs -lvirsim -lerrorinf -lsnpsmalloc -lvfs -lm -lvcsnew -lsimprofile -luclinative /opt/synopsys/O-2018.09-SP2/linux64/lib/vcs_tls.o -Wl,-whole-archive -lvcsucli -Wl,-no-whole-archive ./../simv.daidir/vc_hdrs.o /opt/synopsys/O-2018.09-SP2/linux64/lib/vcs_save_restore_new.o -ldl -lc -lm -lpthread -ldl
../simv up to date
make[1]: Leaving directory '/home/knat/tmp/c_call_py/0.systemverilog_only/csrc'
CPU time: .160 seconds to compile + .141 seconds to elab + .251 seconds to link
./simv -l run.log
Chronologic VCS simulator copyright 1991-2018
Contains Synopsys proprietary information.
Compiler version O-2018.09-SP2_Full64; Runtime version O-2018.09-SP2_Full64; Mar 6 23:51 2021
initialize Python runtime !
###[ Ethernet ]###
 dst = 33:32:33:44:55:66
 src = 33:22:22:34:56:33
 type = IPv4
###[ IP ]###
 version = 4
 ihl = 5
 tos = 0x0
 len = None
 id = 1
 flags =
 frag = 0
 ttl = 64
 proto = udp
 chksum = None
 src = 127.0.0.1
 dst = 127.0.0.1
 \options \
###[ UDP ]###
 sport = domain
 dport = 18944
 len = None
 chksum = None
###[ Raw ]###
 load = 'This is Python Data !'
33 32 33 44 55 66 33 22 22 34 56 33 08 00 45 00 00 31 00 01 00 00 40 11 7C B9 7F 00 00 01 7F 00 00 01 00 35 4A 00 00 1D 2D EE 54 68 69 73 20 69 73 20 50 79 74 68 6F 6E 20 44 61 74 61 20 21
print data in systemverilog !
get len ='h3f
get data ='h3332334455663322223456330800450000310001000040117cb97f0000017f00000100354a00001d2dee5468697320697320507974686f6e2044617461202100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
get data = 323DUf3""4V E 1 @|� 5J -�This is Python Data !
finalize Python runtime !
$finish called from file "gen_pkt_tb.sv", line 22.
$finish at simulation time 0
 V C S S i m u l a t i o n R e p o r t
Time: 0
CPU Time: 2.060 seconds; Data structure size: 0.0Mb
Sat Mar 6 23:51:18 2021

About

Systemverilog DPI-C call Python function

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /