共100道经典笔试、面试题目(文末可全领)
FPGA 中可以综合实现为 RAM/ROM/CAM 的三种资源及其注意事项?
三种资源:BLOCK RAM,触发器(FF),查找表(LUT);注意事项:
1:在生成 RAM 等存储单元时,应该首选 BLOCK RAM 资源;
其原因有二:
第一:使用 BLOCK RAM 等资源,可以节约更多的 FF 和 4-LUT 等底层可编程单元。使用BLOCK RAM 可以说是“不用白不用”,是最大程度发挥器件效能,节约成本的一种体现;
第二:BLOCK RAM 是一种可以配置的硬件结构,其可靠性和速度与用LUT 和 REGISTER 构建的存储器更有优势。
2:弄清 FPGA 的硬件结构,合理使用 BLOCK RAM 资源;
3:分析 BLOCK RAM 容量,高效使用 BLOCK RAM 资源;
4:分布式 RAM 资源(DISTRIBUTE RAM)
IC 设计前端到后端的流程和 EDA 工具?
设计前端也称逻辑设计,后端设计也称物理设计,两者并没有严格的界限,一般涉及到与工艺有关的设计就是后端设计。
1:规格制定:客户向芯片设计公司提出设计要求。
2:详细设计:芯片设计公司(Fabless)根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。目前架构的验证一般基于 systemC 语言,对价后模型的仿真可以使用 systemC 的仿真工具。例如:CoCentric 和 Visual Elite等。
3:HDL 编码:设计输入工具:ultra ,visual VHDL 等
4:仿真验证:modelsim
5:逻辑综合:synplify
6:静态时序分析:synopsys 的 Prime Time
7:形式验证:Synopsys 的 Formality.
寄生效应在 IC 设计中怎样加以克服和利用?
所谓寄生效应就是那些溜进你的 PCB 并在电路中大施破坏、令人头痛、原因不明的小故障。它们就是渗入高速电路中隐藏的寄生电容和寄生电感。其中包括由封装引脚和印制线过长形成的寄生电感;焊盘到地、焊盘到电源平面和焊盘到印制线之间形成的寄生电容;通孔之间的相互影响,以及许多其它可能的寄生效应。理想状态下,导线是没有电阻,电容和电感的。而在实际中,导线用到了金属铜,它有一定的电阻率,如果导线足够长,积累的电阻也相当可观。
两条平行的导线,如果互相之间有电压差异,就相当于形成了一个平行板电容器(你想象一下)。通电的导线周围会形成磁场(特别是电流变化时),磁场会产生感生电场,会对电子的 移动产生影响,可以说每条实际的导线包括元器件的管脚都会产生感生电动势,这也就是寄生电感。在直流或者低频情况下,这种寄生效应看不太出来。而在交流特别是高频交流条件下,影响就非常巨大了。根据复阻抗公式,电容、电感会在交流情况下会对电流的移动产生巨大阻碍,也就可以折算成阻抗。这种寄生效应很难克服,也难摸到。只能通过优化线路,尽量使用管脚短的 SMT 元器件来减少其影响,要完全消除是不可能的。
Xilinx 中与全局时钟资源和 DLL 相关的硬件原语:
常 用 的 与 全 局 时 钟 资 源 相 关 的 Xilinx 器 件 原 语 包 括 :IBUFG,IBUFGDS,BUFG,BUFGP,P,BUFGCE,BUFGMUX,BUFGDLL,DCM 等。关于各个器件原语的解释可以参考《FPGA 设计指导准则》p50 部分。
HDL 语言的层次概念?
HDL 语言是分层次的、类型的,最常用的层次概念有系统与标准级、功能模块级,行为级,寄存器传输级和门级。系统级,算法级,RTL 级(行为级),门级,开关级。
寄生效应在 IC 设计中怎样加以克服和利用?
所谓寄生效应就是那些溜进你的 PCB 并在电路中大施破坏、令人头痛、原因不明的小故障。它们就是渗入高速电路中隐藏的寄生电容和寄生电感。其中包括由封装引脚和印制线过长形成的寄生电感;焊盘到地、焊盘到电源平面和焊盘到印制线之间形成的寄生电容;通孔之间的相互影响,以及许多其它可能的寄生效应。理想状态下,导线是没有电阻,电容和电感的。而在实际中,导线用到了金属铜,它有一定的电阻率,如果导线足够长,积累的电阻也相当可观。两条平行的导线,如 果互相之间有电压差异,就相当于形成了一个平行板电容器(你想象一下)。
通电的导线周围会形成磁场(特别是电流变化时),磁场会产生感生电场,会对电子的 移动产生影响,可以说每条实际的导线包括元器件的管脚都会产生感生电动势,这也就是寄生电感。在直流或者低频情况下,这种寄生效应看不太出来。而在交流特别是高频交流条件下,影响就非常巨大了。根据复阻抗公式,电容、电感会在交流情况下会对电流的移动产生巨大阻碍,也就可以折算成阻抗。这种寄生效应很难克服,也难摸到。只能通过优化线路,尽量使用管脚短的 SMT 元器件来减少其影响,要完全消除是不可能的。
用 Verilog 或 VHDL 写一段代码,实现消除一个 glitch(毛刺)?
将传输过来的信号经过两级触发器就可以消除毛刺。
module(clk,data,q_out)
input clk,data;
output reg q_out;
reg q1;
always@(posedgeclk)
begin
q1<=data;
q_out<=q1;
end
endmodule
什么是“线与”逻辑,要实现它,在硬件特性上有什么具体要求?
线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用 oc 门来实现, 由于不用 oc 门可能使灌电流过大,而烧坏逻辑门. 同时在输出端口应加一个上拉电阻。oc 门就是集电极开路门。od 门是漏极开路门。
什么是竞争与冒险现象?怎样判断?如何消除?
在组合电路中,某一输入变量经过不同途径传输后,到达电路中某一汇合点的时间有先有后,这种现象称竞争;由于竞争而使电路输出发生瞬时错误的现象叫做冒险。(也就是由于竞争产生的毛刺叫做冒险)。判断方法:代数法(如果布尔式中有相反的信号则可能产生竞争和冒险现象);卡诺图:有两个相切的卡诺圈并且相切处没有被其他卡诺圈包围,就有可能出现竞争冒险;实验法:示波器观测;
解决方法:1:加滤波电容,消除毛刺的影响;2:加选通信号,避开毛刺;3:增加冗余项消除逻辑冒险。门电路两个输入信号同时向相反的逻辑电平跳变称为竞争;由于竞争而在电路的输出端可能产生尖峰脉冲的现象称为竞争冒险。
如果逻辑函数在一定条件下可以化简成 Y=A+A’或 Y=AA’则可以判断存在竞争冒险现象(只是一个变量变化的情况)。消除方法,接入滤波电容,引入选通脉冲,增加冗余逻辑。
需要上述面试题目的同学可按需领,可以直接分享给大家~
这里放个口:IC笔面试题目