我已经开始学习SystemVerilog了,我正在阅读有关新类型的内容,例如:
的字符串
动态/关联数组
队列
我想知道这些是如何在硬件中实现的,因为它们具有动态特性;它们仅用于测试/模拟目的,因此它们实际上从未在硬件中实例化过吗?
如果是这样,如果必须更改为普通数组以在硬件上运行设计,为什么还要使用这些类型的数组呢?
答案 0 :(得分:0)
Verilog和现在的SystemVerilog包含分为两类的功能:可综合和不可综合。没有固定的标准来定义每个类别中的哪些功能。理想情况下,如果可以模拟功能,则可以找到一种综合功能的方法。
根据使用方式的不同,某些功能会同时出现在这两个类别中。例如,如果您可以静态确定(例如,在编译时而不是在运行时)它有多少次迭代,那么for
循环是可以合成的。队列或动态数组也是如此-如果您可以定义最大大小,则可以在硬件中实现它们。