赞
踩
一些面试的时候经常会被问到的问题,把还能记得的几个整理了一下。
数字电路中有哪几种逻辑电路,讲一下它们的区别。
组合逻辑,时序逻辑。
组合逻辑是依靠时钟触发的逻辑,组合逻辑是不依靠时钟触发的逻辑。
常见组合逻辑电路:加法器、比较器、译码器、编码器、
常见时序逻辑电路:触发器、移位寄存器、计数器、序列信号发生器、
D触发器的主要输入端口和输出端口有哪些。
数据输入端D,时钟端clk,复位端rst,输出端Q,还有一个反向输出端。
阻塞赋值和非阻塞赋值的区别,各自在什么时候使用。
阻塞赋值(=)是阻塞赋值完成后,才进行下一条语句的执行;赋值一旦完成,等号左边的变量值立即变化。
非阻塞赋值(<=)是在赋值开始时计算表达式右边的值,在本次仿真周期结束时才更新被赋值变量,即赋值不是立即生效的。
建议在组合逻辑中使用阻塞赋值,在时序逻辑中使用非阻塞赋值。
如何用MOS管搭出一个二输入的与非门。
上面两个 PMOS 并联,下面两个 NMOS 串联。
具体电路参考:CMOS门电路
是否了解跨时钟域的概念,在电路设计的过程中应该采取哪些方法去避免。
从单bit信号和多bit信号两种情况去聊。
OOP的三要素,讲一下SV的多态。
此外OOP方面还问了浅拷贝和深拷贝,这里要注意二者都是对象拷贝而不是句柄拷贝。
简述一下UVM中factory机制存在的意义以及如何去实现。
有关UVM机制的问题最好都先从代码的复用性以及平台的规范性来答。
在一个通信中driver和sequencer的交互过程。
要注意虽然sequencer负责仲裁,但是发起者是driver。
简述下寄存器模型在验证平台中的作用,如果要对寄存器模型以及DUT中的寄存器的值进行修改应该分别用什么方法。
对DUT中的寄存器进行访问的话有哪些方法,区别在哪里。
异步FIFO在哪个时钟域判断空满,如何判断空满。
简历上写了熟悉Linux环境,问了一下我平常在Linux环境下常用的命令有哪些。
说几个常用的,以及具体的用法,别说rm -f *就行…
八股的问题基本都还好,基本都是书上和网上能查到的,而且也没占多少时间,大头都是在问项目。
项目部分因为简历上写的是AHB to APB bridge、APB-UART、APB-I2C这三个总线项目,所以都是先从协议开始问,然后再去问项目里的代码是怎么写的。
看的APB的协议是哪个版本的。
为什么APB发送数据需要两个周期。
为什么需要APB这样一个低速发送数据的协议,与AHB以及AXI传输速度差距的主要原因在哪里。
项目中AHB的interface中有哪些信号。
AHB发送一个single的数据的时候,如果HREADY信号拉低3个周期,一共需要几拍。
AHB的burst操作有哪些类型,区别在哪里。
AHB的HTRANS信号的用途。
AXI的out of order,是怎么实现的。
APB-UART项目中波特率的部分是如何定义的,driver和monitor部分有什么不同吗。
AHB to APB bridge中,如果出现burst操作,APB侧只能实现single传输,如何对数据进行匹配。
APB的driver中,具体将数据发送出去的部分是怎么写的。
I2C发送数据的结构的特点,以及和串口协议的区别。
I2C的线与逻辑,硬件上是怎么实现的。
I2C中ack信号是什么时候发送的。
I2C中不发送数据时SCL与SDA是高电平还是低电平。
UART和I2C分别是什么类型的通信协议,以及工作方式是什么。
APB-I2C有验到哪些寄存器,具体是怎么做的。
对项目进行仿真的时候用的什么仿真器,大概是什么样的一个流程。
选一个项目讲一下验证平台的结构。
感觉问的难的问题大部分还都是和设计有关的,有条件的话最好可以做一点小的设计的项目。还有就是面试前最好多看下协议,今年感觉好多问题都不是问你TB里的组件是怎么写的,都是上来先从协议开始问,所以具体的信号和常见的机制最好多看一下。而且项目中类似的可能会让你回答他们之间的异同,比如UART和I2C这俩经常问完一个就让你回答另外一个的相关机制。AMBA总线协议里AXI问的不是很多,最多问下五个独立通道和 out of order,AHB和APB两个经常被拿到一起问,AHB里哪些信号是APB中有的,哪些是APB中没有的。
能记起来问过的问题就这些了,还有一些项目里问过的问题当时没答太好,也记不太清了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。