求解决!!!SystemVerilog在ModelSim中的编译与运行

是在学习SV过程中,运行书上的例子,碰到的问题。

功能:函数返回数组。

Code1:

/*书上提供的例子,存在错误,不可运行

function void init(ref int f[5], int start);//主要是函数定义时没有声明automatic属性

foreach(f)

f = i + start;

endfunction

initial begin

int fa[5];

fa = init(fa,5);

foreach(fa)

$display("fa[%0d] = %0d", i, fa);

end

*/

#-----------------------------------------------------------------------------------

Code2:

//以下这段代码在modelsim下可成功运行。(在定义function时加上了automatic)

module enum_name;

int fa[5];

initial begin

//  fa = init(fa, 5);

init(fa, 5);

foreach(fa)

$display("fa[%0d] = %0d", i, fa);

end

function automatic void init(ref int f[5], input int start);

foreach(f)//初始化数组

f = i + start;

endfunction

endmodule

#-----------------------------------------------------------------------------------

Question:

在LRM中第16章,讲解program结果时有如下结构:

Code3:

module test(...)

int shared;
// variable shared by programs p1 and p1

program p1;

...

endprogram

program p2;

...

endprogram //
p1 and p2 are implicitly instantiated once in module test

endmodule

想问一下,Code2中的function怎么可以包在program...endprogram里面,形成Code3形式的代码结构。

其中,Code4是我尝试改的,但在ModelSim中编译可以通过,但运行时报错。

Code4:

module enum_name;

int fa[5];

initial begin

//  fa = init(fa, 5);

test.init(fa, 5); //对应报错信息中提示的第61行内容

foreach(fa)

$display("fa[%0d] = %0d", i, fa);

end

//------------------------------------------------------------;

program automatic test;

function automatic void init(ref int f[5], input int start);

foreach(f)//初始化数组

f = i + start;

endfunction

endprogram

endmodule

运行时报错内容:

# Compile of enum_name.sv was successful with warnings.

vsim -gui work.enum_name

# vsim -gui work.enum_name

# Loading sv_std.std

# Loading work.enum_name

# ** Error: (vsim-3927) D:/ModelSim/SysVerilog/enum/enum_name.sv(61) Accessing program item ‘/enum_name/test/init‘ from a non-program design unit enum_name is illegal.

#

#         Region: /enum_name

# ** Error: (vsim-3927) D:/ModelSim/SysVerilog/enum/enum_name.sv(61) Accessing program item ‘/enum_name/test/init‘ from a non-program design unit enum_name is illegal.

#

#         Region: /enum_name

# ** Error: (vsim-3927) D:/ModelSim/SysVerilog/enum/enum_name.sv(61) Accessing program item ‘/enum_name/test/init‘ from a non-program design unit enum_name is illegal.

#

#         Region: /enum_name

# Error loading design

时间: 2024-11-03 18:14:30

求解决!!!SystemVerilog在ModelSim中的编译与运行的相关文章

Sublime Text 3中配置编译和运行Java的两个方法

方法一: 打开Sublime Text 3,依次点击Preference, Browse Packages,在打开的窗口中双击User文件夹,新建文件JavaC.sublime-build,用记事本打开,粘贴下面的代码并保存关闭: { "cmd": ["javac","-encoding","UTF-8","-d",".","$file"], "file_r

在Sublime Text 3中配置编译和运行C++程序

下载解压MinGW至目标目录,本次安装的解压目录为C:\MinGW 设置环境变量.右击我的电脑,属性-->高级-->环境变量. 在系统环境变量PATH里添加C:\MinGW\bin(如果里面还有其他的变量,记得添加英文分号;),点击确定,确定,确定 测试MinGW是否安装成功.Win+R,运行cmd命令行,在cmd窗口中执行g++ -v,如下显示即为成功: 点击偏好,再点击浏览程序包,新建文件C++.sublime-build 文件内容如下: { "cmd": ["

解决zabbix 3.0中1151端口不能运行问题

修改PHP配置文件 shell> vim ...etc/php.ini post_max_size = 64M(之前是16MB,默认是8MB) 修改完后重启php-fpm 查看1151端口是否运行 shell> netstat -nptl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address               Foreign Address             State    

命令行中编译和运行JAVA程序出现“错误: 找不到或无法加载主类”

初学JAVA,今天在命令行界面中尝试编译和运行Hello.java (文件当前目录.....\src\chapter1) 1 package chapter1; 2 3 public class Hello { 4 public static void main(String[] args){ 5 if(args.length==0) 6 System.out.println("hello!"); 7 else{ 8 for(int i=0;i<args.length;i++)

求解决!!!SystemVerilog于ModelSim在编译和执行

我们正在学习SV流程,样品执行书.. 功能:函数返回数组. Code1: /*书上提供的样例.存在错误,不可执行 function void init(ref int f[5], int start);//主要是函数定义时没有声明automatic属性 foreach(f) f = i + start; endfunction initial begin int fa[5]; fa = init(fa,5); foreach(fa) $display("fa[%0d] = %0d",

关于xilinx ise10.1与modelsim仿真库编译

关于xilinx ise10.1与modelsim仿真库编译(2011-08-21 01:00:39)转载▼标签:杂谈 分类: FPGA 首先介绍一下Xilinx几个主要的仿真库(路径:D:\Xilinx\11.1\ISE\verilog\src\) 1. Unsim文件夹:Library of Unified component simulation models.仅用来做功能仿真,包括了Xilinx公司全部的标准元件.每个元件使用一个独立的文件,这样是为了方便一些特殊的编译向导指令,如`us

spring整合hibernate,在获取sessionFactory的时候报错,求解决办法!!

applicationContext.xml文件 <!-- 开启扫包 --> <context:component-scan base-package="cn.edu"></context:component-scan> <!-- 配置sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate

87.在ModelSim中添加Xilinx ISE仿真库

在ModelSim中添加Xilinx ISE仿真库 说明: l ModelSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下.如作者是安装在D:\softwares\Modelsim目录下. l ISE软件也最好安装在不带空格的目录下. 1.找到开始菜单->程序->Xilinx ISE Design Suite 11 -> ISE -> Accessories -> Simulation Library Compilation Wizard.

求救:如何在Eclipse IDE for C/C++ Developers中正确编译GTK程序?

出现错误信息如下,请问大牛该如何解决? 00:52:56 **** Incremental Build of configuration Debug for project Again **** make all  Building file: ../why.c Invoking: GCC C Compiler gcc "../why.c" -I/usr/include/glib-2.0 -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-