随笔分类 -  IC

IC设计和验证的学习资料和学习记录
摘要:SystemVerilog foreach loop SystemVerilog数组是允许在单个变量中存储多个值的数据结构。循环仅用于遍历此类数组,并且是执行此操作的最简单和最简单的方法。foreach Syntax 循环从0开始循环访问每个索引。如果循环中有多个语句,则必须像所有其他过程块一样用f 阅读全文
posted @ 2024-05-05 18:37 松—松 阅读(463) 评论(0) 推荐(0)
摘要:SystemVerilog while and do-while loop 两者都是循环构造,只要给定条件为真,就会执行给定的语句集。while do while 循环首先检查条件是否为true,如果条件为true,则执行语句。如果条件被证明是假的,则循环就在哪里结束。while 循环首先执行一次语 阅读全文
posted @ 2024-05-05 17:56 松—松 阅读(722) 评论(0) 推荐(0)
摘要:SystemVerilog Loops What are loops ? loop是一段不断执行的代码。条件语句通常包含在循环中,以便在条件变为真时终止。如果loop永远运行,那么模拟将无限期挂起。 下表给出了 SystemVerilog 中不同类型的循环构造。 \ \ forever Runs t 阅读全文
posted @ 2024-05-03 20:27 松—松 阅读(126) 评论(0) 推荐(0)
摘要:SystemVerilog typedef and alias Typedef 在复杂的测试平台中,某些变量声明可能具有更长的数据类型规范,后者需要在测试平台的多个位置使用。 在这种情况下,我们可以使用a为现有数据类型提供用户定义的名称。然后,可以在整个代码中使用新的数据类型,因此如果需要,无需在多 阅读全文
posted @ 2024-05-03 18:36 松—松 阅读(148) 评论(0) 推荐(0)
摘要:SystemVerilog Structure Structure可以包含不同数据类型的元素,这些元素可以作为一个整体引用,也可以通过其名称单独引用。这些元素具有相同数据类型的数组完全不同。 // Normal arrays -> a collection of variables of same 阅读全文
posted @ 2024-05-03 18:13 松—松 阅读(100) 评论(0) 推荐(0)
摘要:SystemVerilog Queue 目录SystemVerilog QueueTypes of QueuesSystemVerilog Queue UsageSystemVerilog Queue ExampleWhat are queue slice expressions ?SystemVe 阅读全文
posted @ 2024-05-03 17:25 松—松 阅读(251) 评论(0) 推荐(0)
摘要:SystemVerilog Array Manipulation SystemVerilog 中有许多内置方法,可帮助数组搜索和排序。 数组操作方法只需循环访问数组元素,每个元素都用于计算子句指定的表达式。迭代器参数指定一个局部变量,该变量可在表达式中用于引用迭代中的当前元素。如果未提供参数,ite 阅读全文
posted @ 2024-05-03 11:21 松—松 阅读(68) 评论(0) 推荐(0)
摘要:SystemVerilog Associative Array 当集合的大小未知或数据空间稀疏时,关联数组是更好的选择。关联数组在使用之前不会分配任何存储,并且索引表达式不限于整数表达式,而是可以是任何类型。 关联数组实现其声明类型的元素的查找表。要用作索引的数据类型用作查找键并强制排序。 Synt 阅读全文
posted @ 2024-05-02 21:14 松—松 阅读(49) 评论(0) 推荐(0)
摘要:SystemVerilog Dynamic Arrays Dynamic Arrays是一个unpacked Arrays,其大小可以在运行时设置或更改。因此与静态数组完全不同,静态数组的大小是在数组声明期间预先确定的。Dynamic Arrays的默认大小为零,直到由构造函数设置。new() Sy 阅读全文
posted @ 2024-05-02 20:02 松—松 阅读(84) 评论(0) 推荐(0)
摘要:SystemVerilog Unpacked Arrays Unpacked Arrays用于引用在变量名称之后声明的维度。 Unpacked Arrays可以是固定大小的数组、动态数组、关联数组、队列。 Single Dimensional Unpacked Array module tb; by 阅读全文
posted @ 2024-05-02 18:36 松—松 阅读(79) 评论(0) 推荐(0)
摘要:SystemVerilog Packed Arrays SystemVerilog 中有两种类型的数组- packed array 和 unpacked array。 packed array用于引用在变量名称之前声明的维度。 bit [3:0] data; // Packed array or v 阅读全文
posted @ 2024-05-02 17:58 松—松 阅读(168) 评论(0) 推荐(0)
摘要:SystemVerilog Arrays SystemVerilog 在通过不同类型的数组构建复杂的数据结构方面提供了很大的灵活性。 静态阵列 动态阵列 关联数组 队列 Static Arrays 静态数组是指其大小在编译时间之前已知的数组。在下面显示的示例中,声明了一个8位宽的静态数组,为其分配了 阅读全文
posted @ 2024-05-02 17:20 松—松 阅读(56) 评论(0) 推荐(0)
摘要:SystemVerilog Enumeration 枚举类型定义一组命名值。在以下示例中,light_*是一个枚举变量,可以存储三个可能的值(0,1,2)之一。默认情况下,枚举列表中的第一个名称获取值0,以下名称获取增量值(如1和2)。 enum {RED, YELLOW, GREEN} light 阅读全文
posted @ 2024-05-02 16:52 松—松 阅读(276) 评论(0) 推荐(0)
摘要:SystemVerilog Strings What is a SystemVerilog string ? 数据类型是有序的字符集合。变量的长度是集合中的字符数,这些字符数可以具有动态长度,并且在模拟过程中会发生变化。字符串变量表示字符串的方式与字符串文本不同。使用变量时不会发生截断。string 阅读全文
posted @ 2024-04-29 21:46 松—松 阅读(124) 评论(0) 推荐(0)
摘要:SystemVerilog 'integer' and 'byte' 除了 verilog 支持的所有数据类型外,SystemVerilog 还具有许多其他2-state的数据类型。现代testbench中最常用的数据类型是bit、int、logic和byte。 integer 整数是没有小数部分的 阅读全文
posted @ 2024-04-29 21:34 松—松 阅读(141) 评论(0) 推荐(0)
摘要:SystemVerilog Clocking Block Part II 时钟模块允许在指定的时钟事件对输入进行采样并驱动输出。如果提到时钟模块的输入skew,则该模块中的所有输入信号都将在时钟事件之前以skew时间单位进行采样。如果提到时钟模块的输出skew,则该模块中的输出信号都将在相应的时钟事 阅读全文
posted @ 2024-04-28 21:48 松—松 阅读(551) 评论(0) 推荐(0)
摘要:SystemVerilog Clocking Blocks 默认情况下,模块端口和接口不指定信号之间的任何时序要求或同步方案。在clocking和endclocking之间定义的时钟块正是这样做的。它是与特定时钟同步的信号集合,有助于指定时钟和信号之间的定时要求。 这将允许测试编写者更多地关注事务, 阅读全文
posted @ 2024-04-27 09:35 松—松 阅读(454) 评论(0) 推荐(0)