硬件岗面试问题记录(一)

本文主要记录一些专业面问题及面后的想法,文章根据各岗位、各公司以及时间进行排版(想法仅代表个人-更新至找完工作)。

  • 硬件工程师(Z)

a.谈谈对晶体管的理解

晶体管又称双极结型晶体管 (BJT),是由电流驱动的半导体器件,用于控制电流的流动,其中,基极引线中的较小电流控制集电极和发射极之间较大的电流。它们能用于放大弱信号,用作振荡器或开关。

可以谈的很多,例如细的方向上晶体管的参数、晶体管的工作状态、MOS管和三极管的区别等等,也可以就大概念即什么是晶体管、工作原理等等。

b.串口:

你了解哪些串口协议?

RS232、RS422和RS485。

那说说RS232和485的区别?

波特率方面:232规定的速率最高一般只是19200;485则要高的多。

电气方面:232使用负逻辑关系,与TTL不兼容,只允许一对一通信,全双工;485采用查分方式,使用两线的电压差判断,电平与TTL兼容,可串联多个收发器,半双工。

传输距离方面:232传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右;485接口的最大传输距离标准值4000英尺,实际上可达3000米。

根本区别就是485以差动方式发送和接受,不需要数字地线,差动工作是485同速率条件下传输距离远的根本原因。

该问题回答前应先理清思路,否则将东一句西一句,抓不住重点,给人感觉对知识没有梳理,不够系统。

你知道RS232有几根线吗?

3根 收、发、地

RS232的标准接口为D型9针,应该根据信号定义回答

c.你对FPGA跨时钟域数据传输有了解吗?可以说说处理方法吗?

一般使用三种方法:一是采用寄存器打两拍;二是使用FIFO、双口RAM;三是使用握手协议确保数据正确接收。

能说说你处理的实际经验吗?

根据自己所做的项目进行讲述。

  • 硬件电路设计(G)

a.看简历上面关于**项目的介绍,那能否谈下该项目中使用了哪些硬件设计呢?

根据自身实际项目经历,采用该设计架构时的考虑事项(或者简单说来应该也可以谈谈芯片选型时的想法)。

b.有没有做过一些传感器方面的研究?

根据项目中使用的传感器,谈谈传感器数据的使用,包括从传感器数据大小、频率的参数获取-根据参数进行芯片选型、仿真-电路、PCB绘制-后期调试时的问题&&感想。

  • FPGA工程师(Z)

a.谈谈你对异步复位和同步复位的理解

异步复位在边沿敏感的always语句的事件列表中,除了时钟信号还有异步控制信号,复位信号和系统不相关;同步复位在列表中只需给出时钟即可。

那么他们各自的优缺点是什么?

同步复位缺点:复位响应不及时;复位信号宽度与驱动时钟有关;通常来讲需要耗费更多的器件,无法充分利用触发器的专用复位端口CLR。

异步复位存在隐患:异步时钟域的亚稳态问题同样存在于异步复位信号和系统时钟信号之间;同步复位在时钟信号clk的上升沿触发时进行系统是否复位的判断,这将会降低亚稳态出现的概率(只是降低,不能完全避免),即异步复位出现亚稳态的概率要远高于同步复位。

另:1、异步复位的亚稳态隐患在于,异步复位信号释放(对低电平有效的复位来说就是上跳沿)如果落在落在trecovery与tremoval的窗口之内(可见《异步复位设计中的亚稳态问题及其解决方案》),触发器的输出端的值将是不确定的, 可能是高电平, 可能是低电平, 可能处于高低电平之间, 也可能处于震荡状态,并且在未知的时刻会固定到高电平或低电平。这种状态就称为亚稳态。反映到仿真模型中, 输出端的值是不定态X;2、由于同步复位的大量应用,因此Xilinx公司才定制了具有同步复位管脚的FDR寄存器。在ASIC设计层面,理想的复位解决方案时异步复位同步释放;3、在ASIC设计中,同步电路比异步电路占用面积大,但是在FPGA设计中,是以逻辑单元衡量电路面积的,因此同步设计和异步设计相比,并不会浪费太多资源。4、同步逻辑设计的优点主要有:可以有效避免毛刺额产生,提高设计的可靠性;可以简化时序分析;可以减少工作环境对设计的影响;目前商用的FPGA都是面向同步电路设计而优化的,包括全局时钟布线,时钟管理模块等等。5、异步数据传输时亚稳态发生的原因与时钟频率无关,但随着clk频率的增加,亚稳态发生的几率是增加的。同步复位仅在时钟的有效沿生效,可有效避免因毛刺造成的亚稳态和错误。毛刺信号是由FPGA内部结构特征决定的,同步复位在进行复位和释放复位信号时,仅当时钟沿采到复位信号电平变化时进行相关操作,若复位信号树的组合逻辑出现了某种毛刺,此时时钟沿采到毛刺的概率较低,由此通过时钟沿采样,可有效过波复位电路组合逻辑产生的毛刺,增强了电路稳定性。

回答该问题时,需要对自己了解、掌握的方面进行回答,切忌给出自己不了解的答案,否则接下来会面对的提问、针对的方向可能不是自己预想的。

b.对时序分析的了解

设计中常用得到时序概念主要是:最大时钟频率、时钟建立时间、时钟保持时间、时钟到输出延时、管脚到管脚延时等。

此概念因项目中用到的较少可尽量避免,可结合具体工具再做说明。

c.时钟抖动

时钟抖动是指芯片的某一个给定点上时钟周期发生暂时的变化,即相邻两个时钟周期之间存在差值。这个误差是时钟发生器内部产生的,和晶振或者PLL内部电路有关,时钟信号传播过程中的噪声对其也有影响。

那怎么降低时钟抖动?

1、选择相位噪声特性好(时钟抖动小)的晶体振荡器。

2、采用合理的逻辑电平并以差分形式传输时钟信号。诸如采用LVDS或LVPECL等差分方式传输信号,都能极大地降低时钟抖动;这种差分通路还能消减信号通路上的所有共模噪声、干扰和串扰。

3、谨慎处理印制板时钟信号的走线。

4、采用FPGA片内的锁相环(PLL)对输入时钟进行锁相。

该问题回答时应思路开阔,切忌受前面问题的影响,从编程上考虑。

d.对跨时钟域的输入信号可以作哪些处理?

增加握手协议?

该项可能是用得较少仍是盲点。

 

 

你可能感兴趣的:(Hard)