包装设计说明模板,佛山优化网站推广,哪里可以做公司网站备案,面试问你如何快速优化网站转一篇Systemverilog的一个牛人总结#xff1a; http://blog.sina.com.cn/s/blog_5e9b181a010188re.html 1、合并数组和非合并数组 1#xff09;合并数组#xff1a; 存储方式是连续的#xff0c;中间没有闲置空间。 例如#xff0c;32bit的寄存器#xff0c;可以看成是4…转一篇Systemverilog的一个牛人总结 http://blog.sina.com.cn/s/blog_5e9b181a010188re.html 1、合并数组和非合并数组 1合并数组 存储方式是连续的中间没有闲置空间。 例如32bit的寄存器可以看成是4个8bit的数据或者也可以看成是1个32bit的数据。 表示方法 数组大小和位必须在变量名前指定数组大小必须是【msblsb】 Bit[3:0] [7:0] bytes 2非合并数组 Bit [7:0] bytes [0:3] 或者 Bit [7:0] bytes [4] 2、二维数组和合并数组识别 合并数组 bit [3:0] [7:0] arrys; 大小在变量名前面放得且降序 二维数组 int arrays[0:7] [0:3] ; 大小在变量名后面放得可降序可升序 位宽在变量名前面用于识别合并和非合并数组位宽在后面用于识别数组中元素个数。 3、非合并数组 一般仿真器存放数组元素时使用32bit的字边界byte、shortint、int都放在一个字中。 非合并数组字的地位存放变量高位不用。 表示方法 Bit [7:0] bytes; 4、合并数组和非合并数组的选择 1当需要以字节或字为单位对存储单元操作。 2当需要等待数组中变化的则必须使用合并数组。例如测试平台需要通过存储器数据的变化来唤醒需要用到只能用于标量或者合并数组。 Bit[3:0] [7:0] barray[3] ; 表示合并数组合并数组中有3个元素每个元素时8bit4个元素可以组成合并数组 可以使用barry[0]作敏感信号。 5、动态数组 随机事物不确定大小。 使用方法数组在开始是空的同时使用new[]来分配空间在new[n]指定元素的个数。 int dyn[]; Dyn new[5]; //分配5个元素空间 Dyn.delete() ; //释放空间 6、队列 在队列中增加或删除元素比较方便。 7、关联数组 当你需要建立一个超大容量的数组。关联数组存放稀疏矩阵中的值。 表示方法 采用在方括号中放置数据类型的形式声明 Bit[63:0] assoc[bit[63:0]]; 8、常量 1Verilog 推荐使用文本宏。 好处全局作用范围且可以用于位段或类型定义 缺点当需要局部常量时可能引起冲突。 2Parameter 作用范围仅限于单个module 3Systemverilog 参数可以在多个模块里共同使用可以用typedef 代替单调乏味的宏。 9、可以在for循环中定义变量作用范围仅在循环内部 for(int i0;i10;i) array[i] i; 10、任务、函数及void函数 1 区别 Verilog中task 和function最重要的区别是task可以消耗时间而函数不能。函数中不能使用#100的延时或的阻塞语句也不能调用任务 Systemverilog中函数可以调用任务但只能在fork joinnone生成的线程中。 2使用 如果有一个不消耗时间的systemverilog任务应该把它定义成void函数这样它可以被任何函数或任务调用。 从最大灵活性角度考虑所有用于调用的子程序都应该被定义成函数而非任务以便被任何其它任务或函数调用。因为定义成任务函数调用任务很有限制 11、 类静态变量 作用 1类的静态变量可以被这个类的对象实例所共享。 当你想使用全局变量的时候应该先想到创建一个类的静态变量 静态变量在声明的时候初始化。 2 类的每一个实例都需要从同一个对象获取信息。 12、静态方法 作用 当静态变量很多的时候操作它们的代码是一个很大的程序可以用在类中创建一个静态方法读写静态变量但是静态方法不能读写非静态变量。 l ref高级的参数类型 Ref 参数传递为引用而不是复制。Ref比 input 、output、inout更好用。 Function void print_checksum(const ref bit [31:0] a[ ]); 1) 也可以不用ref进行数组参数传递这时数组会被复制到堆栈区代价很高。 2) 用带ref 进行数组参数传递仅仅是引用不需要复制向子程序传递数组时应尽量使用ref以获得最佳性能如果不希望子程序改变数组的值可以使用const ref。 3) Ref参数用ref 传递变量可以在任务里修改变量而且修改结果对调用它的函数可见相对于指针的功能。 转载于:https://www.cnblogs.com/littleMa/p/4761974.html