IC笔试面试经验分享之寒武纪
验证方向
1、请简述:定宽数组,动态数组,关联数组,队列四种数据类型的各自特点。
解析:
(1)定宽数组:其宽度在声明的时候就指定了,故其宽度在编译时就确定了。
(2)动态数组:可以在仿真时分配空间或者调整宽度,这样在仿真中就可以使用最小的存储量。在声明时,其下标为空[ ],使用 new[ ]操作符来分配空间。
(3)关联数组:SystemVerilog 提供关联数组来保存稀疏矩阵的元素。一般用在对非常大的空间进行寻址,当对一个非常大的地址空间进行寻址时,SystemVerilog 只为实际写入的元素分配空间,这样可以节省空间。
(4)队列:结合了链表和数组的优点。可以在队列中额任何位置增加或者删除元素,这类操作在性能上的损失比动态数组小得多,因为动态数组需要分配新的数组并复制所有元素的值。队列也可以通过索引实现对任何一元素的访问。
2、简述在 TB 中使用 interface 和 clocking block 的好处
解析:
(1)由于在设计当中往往含有几百个端口信号,需要数页来声明信号与端口。所有这些连接都是极易出错的。因为一个信号可能流经过几个设计层次,它必须一遍又一遍的声明和互联,最糟糕的是如果你想添加一个新的信号,它必须在多个文件中定义和连接。而通过interface,便可以解决这些问题,interface 包含了连接,同步,甚至是两个或者多个块之间的通信,只要在 interface 里面声明过的信号与端口,在其它模块都可以共用。
(2)使用 clocking block,可以保证测试平台在正确的时间点与信号交互,而不只是随着一个同步时钟采样与验证,一个时钟块,可以对应一个时钟域。
3、以下代码中,x 取各个值的概率是多少?x dist {0:=1,[1:3]:=1};
解析:
x 取 0,1,2,3 的概率都为 1/4
#23届找工作求助阵地##牛客在线求职答疑中心##寒武纪#
1、请简述:定宽数组,动态数组,关联数组,队列四种数据类型的各自特点。
解析:
(1)定宽数组:其宽度在声明的时候就指定了,故其宽度在编译时就确定了。
(2)动态数组:可以在仿真时分配空间或者调整宽度,这样在仿真中就可以使用最小的存储量。在声明时,其下标为空[ ],使用 new[ ]操作符来分配空间。
(3)关联数组:SystemVerilog 提供关联数组来保存稀疏矩阵的元素。一般用在对非常大的空间进行寻址,当对一个非常大的地址空间进行寻址时,SystemVerilog 只为实际写入的元素分配空间,这样可以节省空间。
(4)队列:结合了链表和数组的优点。可以在队列中额任何位置增加或者删除元素,这类操作在性能上的损失比动态数组小得多,因为动态数组需要分配新的数组并复制所有元素的值。队列也可以通过索引实现对任何一元素的访问。
2、简述在 TB 中使用 interface 和 clocking block 的好处
解析:
(1)由于在设计当中往往含有几百个端口信号,需要数页来声明信号与端口。所有这些连接都是极易出错的。因为一个信号可能流经过几个设计层次,它必须一遍又一遍的声明和互联,最糟糕的是如果你想添加一个新的信号,它必须在多个文件中定义和连接。而通过interface,便可以解决这些问题,interface 包含了连接,同步,甚至是两个或者多个块之间的通信,只要在 interface 里面声明过的信号与端口,在其它模块都可以共用。
(2)使用 clocking block,可以保证测试平台在正确的时间点与信号交互,而不只是随着一个同步时钟采样与验证,一个时钟块,可以对应一个时钟域。
3、以下代码中,x 取各个值的概率是多少?x dist {0:=1,[1:3]:=1};
解析:
x 取 0,1,2,3 的概率都为 1/4
#23届找工作求助阵地##牛客在线求职答疑中心##寒武纪#
全部评论
嗨!我是AI牛可乐,看到你分享了寒武纪的笔试面试经验,很厉害呀!不过我还是个小牛,对这些内容还不太了解。你觉得寒武纪的面试难吗?有没有什么特别有趣的问题?如果你还有其他的面试经验,也可以和我分享哦。另外,如果你想了解更多关于求职的话题,可以点击我的头像私信我,我们可以继续聊聊!😄
相关推荐

点赞 评论 收藏
分享
05-11 11:58
中国矿业大学 Java 点赞 评论 收藏
分享