如何使用Debussy与ModelSim做Co-Simulation (SOC) (Verilog) (VH(3)

2019-05-18 23:15

vlib work vcom novas.vhd vcom counter.vhd vcom counter_tb.vhd vsim counter_tb run 200ns q 复制代码

因為是VHDL,所以全部改用vcom編譯。

其中novas.vhd是從Debussy目錄複製過來的,為什麼需要編譯這個檔案呢?

VHDL FLI (Foreign Language Interface)與Verilog PLI (Programming Language Interface)不同的地方在於,當你自己提供由C寫的function給simulator使用時,Verilog PLI會自己到所提供的dll去找是否有此function,但VHDL FLI需要自己去提供mapping的動作,告訴simulator哪一個function對應dll內那ㄧ個function,novas.vhd就是提供這個mapping的腳色。

若直接使用Debussy所提供的novas.vhd,在執行ModelSim會有以下錯誤訊息。

# ** Warning: (vsim-FLI-3159) Failed to find foreign function 'fliparseVariableInFile' in FLI object file \复制代码

意思是novas.vhd定義的fliparseVariableInFile在novas_fli.dll找不到,致於為什麼會有此錯誤,我並不清楚。

將novas.vhd修改成如下所示: novas.vhd / VHDL

1 package pkg is

2 attribute foreign : string; 3

4 procedure fsdbDumpfile (file_name : in string);

5 attribute foreign of fsdbDumpfile : procedure is \as_fli.dll\; 6

7 procedure fsdbDumpvars (depth : in integer; 8 region_name : in string);

9 attribute foreign of fsdbDumpvars : procedure is \_fli.dll\; 10 end; 11

12 package body pkg is

13 procedure fsdbDumpfile(file_name : in string) is 14 begin

15 assert false report \ severity note; 16 end; 17

18 procedure fsdbDumpvars(depth : in integer; 19 region_name : in string) is 20 begin

21 assert false report \ severity note; 22 end; 23 end; 24

25 entity novas is end; 26

27 architecture novas_arch of novas is 28 attribute foreign : string;

29 attribute foreign of novas_arch : architecture is \fli.dll\; 30 begin 31 end; 32 复制代码

也就是僅留下fsdbDumpfile()與fsdbDumpvars()兩個function,其他的都刪除。 根據我使用Debussy的經驗,只要留這兩個function就夠用了,其他Debussy的function我還真的沒用過。

在novas.vhd也看到了這些是定義在pkg這個package下,所以在counter_tb.vhd必須use work.pkg.all。 Step 5:

執行ModelSim的批次檔 mod.bat

vsim -c -do sim.do

執行結果

D:\\0Clare\\VerilogLab\\ModelSim\\counter_vhdl>vsim -c -do sim.do Reading C:/Modeltech_6.3e/tcl/vsim/pref.tcl

# 6.3e

# do sim.do

# ** Warning: (vlib-34) Library already exists at \

# Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 Feb 2 2008 # -- Loading package standard # -- Compiling package pkg # -- Compiling package body pkg # -- Loading package pkg # -- Compiling entity novas

# -- Compiling architecture novas_arch of novas

# Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 Feb 2 2008 # -- Loading package standard # -- Loading package std_logic_1164 # -- Loading package std_logic_arith # -- Loading package std_logic_unsigned # -- Compiling entity counter

# -- Compiling architecture arc of counter

# Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 Feb 2 2008 # -- Loading package standard # -- Loading package std_logic_1164 # -- Loading package std_logic_arith # -- Loading package std_logic_unsigned # -- Loading package pkg

# -- Compiling entity counter_tb

# -- Compiling architecture arc of counter_tb # vsim counter_tb

# Loading C:\\Modeltech_6.3e\\win32/novas.dll # // ModelSim SE 6.3e Feb 2 2008 # //

# // Copyright 1991-2008 Mentor Graphics Corporation # // All Rights Reserved. # //

# // THIS WORK CONTAINS TRADE SECRET AND

# // PROPRIETARY INFORMATION WHICH IS THE PROPERTY # // OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS # // AND IS SUBJECT TO LICENSE TERMS. # //

# Loading std.standard

# Loading ieee.std_logic_1164(body) # Loading ieee.std_logic_arith(body) # Loading ieee.std_logic_unsigned(body) # Loading work.pkg(body)

# Loading C:\\Modeltech_6.3e\\win32/./novas_fli.dll # Loading work.counter_tb(arc) # Loading work.counter(arc)

# Novas FSDB Dumper for ModelSim 5.4 (FLI), Release 5.4v9 (Win95/NT) 05/04/2005

# Copyright (C) 1996 - 2004 by Novas Software, Inc. # *Novas* Create FSDB file 'counter.fsdb' 复制代码

Step 6:

執行Debussy批次檔部份 deb.bat

debussy –vhdl –93 novas.vhd counter_tb.vhd counter.vhd –top counter_tb -ssf counter.fsdb -sswr counter.rc 复制代码

-vhdl 表示支援VHDL語法,因為Debussy預設支援Verilog -93 表示支援VHDL 93的語法

-top 指定top module,在Verilog可以不指定top,Debussy可以自動判斷而抓到top module,但是VHDL沒辦法,需要自己指定,若不指定,待會會有GUI要你手動挑選top module 執行結果

3.RTL使用VHDL,testbench使用Verilog Step 1:

設定ModeSim使用Verilog PLI (因為testbench使用Verilog) 將C:\\Novas\\Debussy\\share\\PLI\\modelsim_pli\\WINNT\\novas.dll複製到C:\\Modeltech_6.3e\\win32\\下

修改C:\\Modeltech_6.3e\\modelsim.ini,將Veriuser部分修改成如下所示:

; List of dynamically loaded objects for Verilog PLI applications ; Veriuser = veriuser.sl ; use by verilog Veriuser = novas.dll ; use by vhdl

; Veriuser = novas_fli.dll 复制代码

modelsim.ini是個read only檔,要修改前記得修改其屬性才能存檔。 Step 2:


如何使用Debussy与ModelSim做Co-Simulation (SOC) (Verilog) (VH(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:湖南省2014年4月自学考试开考课程安排表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: