1.task declaration

个人喜欢ANSI C格式的声明:

task mytask(output int x,input logic y);

......

endtask

注意端口列表的方向和数据结构,容易犯错,最好每个逐一显示声明。

2.static and automatic tasks(这个极易出错)

2.1 所有定义在module  、 interface 、 program、 package中的task

默认是静态task,其task中变量是静态变量,所有调用该task的程序都可以

共享该变量。(由此可见默认大部分都是static task.不知道单独建立的task lib的 .v文件是不是static的)

2.2automatic storage task in the following

2.2.1 显示声明为automatic

task automatic task_name(port list);

....

endtask

2.2.2 隐示声明,但定义task在module、program、package、interface中。 这个 systemverilog 上没看懂,貌似跟前面的2.1冲突了。

2.3 automatic task  intems 不可以 hierarchical reference 但 automatic tasks 可以穿层调用。

2.4

A task may be enabled more than once concurrently. All variables of an automatic task shall be replicated on
each concurrent task invocation to store state specific to that invocation. All variables of a static task shall be
static in that there shall be a single variable corresponding to each declared local variable in a module
instance, regardless of the number of concurrent activations of the task. However, static tasks in different
instances of a module shall have separate storage from each other.
Variables declared in static tasks, including input, output, and inout type arguments, shall retain their
values between invocations. They shall be initialized to the default initialization value as described in 6.8.
Variables declared in automatic tasks, including output type arguments, shall be initialized to the default
initialization value whenever execution enters their scope. input and inout type arguments shall be
initialized to the values passed from the expressions corresponding to these arguments listed in the task-
enabling statements.
Because variables declared in automatic tasks are deallocated at the end of the task invocation, they shall not
be used in certain constructs that might refer to them after that point:
—They shall not be assigned values using nonblocking assignments or procedural continuous
assignments.
—They shall not be referenced by procedural continuous assignments or procedural force statements.
—They shall not be referenced in intra-assignment event controls of nonblocking assignments.
—They shall not be traced with system tasks such as $monitor and $dumpvars.

systemverilog:task的更多相关文章

  1. systemverilog FAQ(zz)

    1. What is clocking block? Ans: Clocking block can be declared using the keywords clocking and endcl ...

  2. SystemVerilog 带输出的task

    1.task 的定义,输出定义为数组. /*- genRndPkt(): Generates random packet with the given length.*/ task genRndPkt ...

  3. systemverilog.vim

    " Vim syntax file " Language: SystemVerilog " Maintainer: Stephen Hobbs <stephenh@ ...

  4. systemverilog的高亮显示

    1. 在_vimrc文件末尾添加: syntax on "确定vim打开语法高亮 filetype on "打开文件类型检测 filetype plugin on "为特 ...

  5. vivado对task和function的可综合支持

    手册UG901,对vivado可综合的语句支持进行了描述,HDL包括:verilog-2001,system-verilog,VHDL: verilog-2001扩展了对task和function的支 ...

  6. systemverilog interface杂记

    随着IC设计复杂度的提高,模块间互联变得复杂,SV引入接口,代表一捆连线的结构. Systemverilog语法标准,新引入一个重要的数据类型:interface. interface主要作用有两个: ...

  7. systemverilog之OOP

    what is oop terminology an example class default methods for classes static attibute assigment and c ...

  8. 第三章:systemverilog文本值和数据类型

    1.增强的文本值 2.改进的`define文本替换 3.时间值 4.新的变量类型 5.有符号和无符号类型 6.静态和动态变量(***) 7.类型转换 8.常数 增强的文本值(文本赋值增强) 主要是:位 ...

  9. 第二章:systemverilog声明的位置

    1.package 定义及从package中导入定义(***) verilog中,对于变量.线网.task.function的声明必须在module和endmodule之间.如果task被多个modu ...

随机推荐

  1. 黑客攻防技术宝典web实战篇:利用信息泄露习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 当探查 SQL 注入漏洞时,如果请求以下 URL:https://wahh-app.com ...

  2. poj 2412 The Balance 【exgcd】By cellur925

    题目传送门 一遇到数学就卡住,我这是怎么肥4...(或许到图论会愉悦吧,逃) Description * 给出两种重量为的 A, B 的砝码,给出一种使用最少的砝码的方式,称出重量 C. 我们可以比较 ...

  3. [USACO10MAR]伟大的奶牛聚集Great Cow Gat…【树形dp】By cellur925

    题目传送门 首先这道题是在树上进行的,然后求最小的不方便程度,比较符合dp的性质,那么我们就可以搞一搞树形dp. 设计状态:f[i]表示以i作为聚集地的最小不方便程度.那么我们还需要各点间的距离,但是 ...

  4. USACO Training 3.3 商店购物 By cellur925

    题目传送门 这道题有着浓浓的背包气氛.所以我们可以这样想:可以把每个优惠方案都当做一个物品,每个单买所需要花的钱也当做一个物品.(也就是代码中的p结构体数组)而且基于此题的环境,这题是一个完全背包.另 ...

  5. JAVA常用知识总结(二)

    JAVA中的参数传递总结先看两道笔试题: public class Test2 { public static void main (String [] args) { StringBuffer a ...

  6. 517 Super Washing Machines 超级洗衣机

    详见:https://leetcode.com/problems/super-washing-machines/description/ C++: class Solution { public: i ...

  7. K-th Number 线段树的区间第K大

    http://poj.org/problem?id=2104 由于这题的时间限制不紧,所以用线段树水一水. 每个节点保存的是一个数组. 就是对应区间排好序的数组. 建树的时间复杂度需要nlogn 然后 ...

  8. RHEL 6.5----CDN(lumanger)

    主机名  IP   服务 master 192.168.30.130  CDN(LuManager) slave 192.168.30.131  DNS  软件安装包下载地址及安装方法 http:// ...

  9. servlet service的描述:

    链接:https://www.nowcoder.com/questionTerminal/3f368578e43d48b1968d79b935d00972来源:牛客网 1.     service方法 ...

  10. PHP的知识点总结1

    PHP 基础知识总结 2015-06-03 分类: 编程技术   PHP 代表 PHP: Hypertext Preprocessor PHP 文件可包含文本.HTML.JavaScript代码和 P ...