mchwang233 / wmchappy_cn

评论库
0 stars 0 forks source link

AMBA协议 - Gavin的碎碎念 #70

Open mchwang233 opened 1 year ago

mchwang233 commented 1 year ago

https://wmchappy.cn/2015/07/31/jsjl-AMBA/

AMBA 协议交流~

mchwang233 commented 1 year ago

!/usr/bin/python3

--coding :utf-8 --

import os

def do_lib(): cmd = "mkdir -p work_dut" os.system(cmd) cmd = "mkdir -p work_dut/64" os.system(cmd)

def do_rtl(): cmd = "vhdlan -vhdl93 -kdb -work WORK_DUT -f ../cfg/vhdl.f -l vhdl.log" os.system(cmd) cmd = "vlogan -f ../cfg/vlog.f -kdb -timescale=1ns/1ns -full64 -R +vc +v2k -sverilog -debug_all +define+UNIT_DELAY +lint=PCWM -work WORK_DUT -l rtl.log" os.system(cmd)

def do_tb(): cmp_cmd = "vlogan -full64 -work work -sverilog -lca -kdb +y2k -timescale=1ns/10ps -debug_access+all -f ../cfg/tb.f ${UVM_HOME}/src/dpi/uvm_dpi.cc -CFLAGS -DVCS +vcs+initreg+random" vcs_files = os.environ["verif"]+'/cfg/vcs.cfg' f=open(vcs_files) l_list = f.readlines() for vcs_cfg in l_list: vcs_cfg=vcs_cfg.replace('\n','') cmp_cmd = cmp_cmd + " " + vcs_cfg os.system(cmp_cmd+" -l tb.log")

def do_elab(): cmd = "vcs -full64 -sverilog harness -lca -kdb ${UVM_HOME}/src/dpi/uvm_dpi.cc -CFLAGS -DVCS +vcs+initreg+random -timescale=1ns/10ps -debug_access+all -partcomp +nospecify +notimingcheck -o simv -l elab.log" os.system(cmd)

def get_cmp_cmd() : rtl_files = '${RTL_HOME}/dut.f' tb_files = '../cfg/tb.f' tb_top = 'harness' vcs_files = os.environ["verif"]+'/cfg/vcs.cfg'

cmp_cmd = 'vcs -ntb_opts uvm-1.2 -full64 -sverilog -debug_all -partcomp -kdb -lca -timescale=1ps/1fs'

cmp_cmd = cmp_cmd + ' -f '+rtl_files 
cmp_cmd = cmp_cmd + ' -f '+tb_files
cmp_cmd = cmp_cmd + ' -top '+ tb_top

f=open(vcs_files)

l_list = f.readlines()
for vcs_cfg in l_list:
    vcs_cfg=vcs_cfg.replace('\n','')
    cmp_cmd = cmp_cmd + " " + vcs_cfg
#print(cmp_cmd)
return cmp_cmd
mchwang233 commented 1 year ago

!/usr/bin/python3

--coding :utf-8 --

import ConfigParser

def get_cmp_cfg() : cmp_str = ""

return cmp_str

def get_sim_cfg() : sim_str = ""

return sim_str

def get_rgs_cfg() : rgs_str = ""

return rgs_str

def sim_ini() :

def get_sim_cfg(sim_cfg): all_cfg = '' f = open(sim_cfg) l_list = f.readlines() for l_cfg in l_list: if "=" in l_cfg : l_cfg=l_cfg.replace('\n','') all_cfg = all_cfg+" +"+l_cfg+" "
if "simv:" in l_cfg: l_cfg=l_cfg.replace('\n','') l_cfg=l_cfg.replace('simv:','') all_cfg = all_cfg+" "+l_cfg+" " return all_cfg

mchwang233 commented 1 year ago

!/usr/bin/python3

--coding :utf-8 --

import os import cmp import re import sys

is_two = 0

for part in sys.argv: if "-two" in part: is_two = 1

if is_two == 1 : cmp_cmd = cmp.get_cmp_cmd() os.system(cmp_cmd+" -l cmp.log") else : cmp.do_lib() cmp.do_rtl() cmp.do_tb() cmp.do_elab()

mchwang233 commented 1 year ago

!/usr/bin/python3

--coding :utf-8 --

import re import sys import os import cmp import comm

run_cmd = '' tc_mode = '' tc_name = '' all_cfg = '' rst_cfg = '' skipc = 0 is_help = 0 is_two = 0

help_info = '''use info: run_tc and keyword
-skipc : skip compile
tc= : tell me tc_name mode= : which sim mode wave= : wave name
'''

for part in sys.argv:

print(part)

if "tc=" in part:
    tc_name_l = re.findall("tc=(.*?)$",part)
    tc_name   = "".join(tc_name_l)
    #print(tc_name)
if "mode=" in part:
    tc_mode_l = re.findall("mode=(.*?)$",part)
    tc_mode   = "".join(tc_mode_l)
    tc_mode   = tc_mode + '/'
if "wave=" in part:
    tc_wave_l = re.findall("wave=(.*?)$",part)
    tc_wave   = "".join(tc_wave_l)
if "-skipc" in part:
    skipc = 1
if "-two" in part:
    is_two = 1
if "-help" in part:
    print(help_info)
    skipc = 1
    is_help = 1
if "cfg=" in part:
    part = part.replace('cfg=','')  
    all_cfg = all_cfg + comm.get_sim_cfg(part)
else :
    rst_cfg = rst_cfg + ' ' + part

if is_two==1 : cmp_cmd = cmp.get_cmp_cmd() run_cmd = './simv -ucli -do wave.do +fsdbfile+'+ tc_mode +tc_name +'.fsdb'+' +UVM_TESTNAME='+ tc_name + ' ' + all_cfg +' ' +rst_cfg + ' ' + '-l' + ' ' + tc_mode +tc_name + '.log'

print(run_cmd)

if skipc == 0 : if is_two == 1: os.system(cmp_cmd+" -l cmp.log") os.system(run_cmd) else: cmp.do_lib() cmp.do_rtl() cmp.do_tb() cmp.do_elab() os.system(run_cmd) else : if is_help == 0: os.system(run_cmd)

mchwang233 commented 1 year ago

ifndef GUARD_CUST_SVT_AMBA_SYSTEM_CONFIGURATION_SV define GUARD_CUST_SVT_AMBA_SYSTEM_CONFIGURATION_SV

class cust_svt_amba_system_configuration extends svt_amba_system_configuration;

/**

endclass `endif // GUARD_CUST_SVT_AMBA_SYSTEM_CONFIGURATION_SV