4、 关联数组当你需要建立一个超大容量的数组。关联数组,存放稀疏矩阵中的值。表示方法:采用在方括号中放置数据类型的形式声明:Bit[63:0]assoc[bit[63:0]]; l 常量:1)Verilog推荐使用文本宏。好处:全局作用范围,且可以用于位段或类型定义缺点:当需要局部常量时,可能引起冲突。2)Parameter 作用范围仅限于单个module3)Systemverilog: 参数可以在多个模块里共同使用,可以用typedef代替单调乏味的宏。 过程语句l 可以在for循环中定义变
5、量,作用范围仅在循环内部for(inti=0;i<10;i++)array[i]=i; l 任务、函数及void函数1)区别:Verilog中task和function最重要的区别是:task可以消耗时间而函数不能。函数中不能使用#100的延时或@的阻塞语句,也不能调用任务;Systemverilog中函数可以调用任务,但只能在fork joinnone生成的线程中。2)使用: 如果有一个不消耗时间的systemverilog任务,应该把它定义成void函数;这样它可以被任何函数或任务调用。 从最大灵活性角度
6、考虑,所有用于调用的子程序都应该被定义成函数而非任务,以便被任何其它任务或函数调用。(因为定义成任务,函数调用任务很有限制) l 类静态变量作用:1)类的静态变量,可以被这个类的对象实例所共享。当你想使用全局变量的时候,应该先想到创建一个类的静态变量静态变量在声明的时候初始化。2)类的每一个实例都需要从同一个对象获取信息。l 静态方法作用:当静态变量很多的时候,操作它们的代码是一个很大的程序,可以用在类中创建一个静态方法读写静态变量,但是静态方法不能读写非静态变量。l ref高级的参数类型Re