电子硬件工程师笔试题
下列是自己整理的各个公司电子硬件工程师笔试的题目与答案:
汉王笔试
1.什么是建立时间和保持时间?
建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在触发器时钟沿到来前,数据信号保持不变的时间。保持时间是指在触发器时钟沿到来以后,数据信号保持不变的时间。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现metastability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。2.什么是竞争与冒险现象?怎样判断?如何消除?
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。
产生毛刺叫冒险。
如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是接入滤波电容,二是引入选通脉冲,三是增加冗余项(只能消除逻辑冒险而不能消除功能冒险)。
3.请画出用D触发器实现2倍分频的逻辑电路?什么是状态图?
答D触发器的输出端加非门接到D端,实现二分频。
状态图是以图形方式表示输出状态转换的条件和规律。用圆圈表示各状态,圈内注明状态名和取值。用→表示状态间转移。条件可以多个
Verilog语言:
module divide2( clk , clk_o, reset);
input clk , reset;
output clk_o;
wire in;
reg out ;
always @ ( posedge clk or posedge reset)
if ( reset)
out <= 0;
else
out <= in;
assign in = ~out;
assign clk_o = out; endmodule
4. 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?
线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用OC/OD门来实现,由于不用OC门可能使灌电流过大,而烧坏逻辑门。同时在输出端口应加一个上拉电阻。
5.什么是同步逻辑和异步逻辑?
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步。
异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。
https://www.360docs.net/doc/d99428401.html,tch与Register的区别,为什么现在多用register.行为级描述中latch如何产生的。
Latch是电平触发,Register是边沿触发,register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch 则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。
7.什么是锁相环(PLL)?锁相环的工作原理是什么?
锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。
在数据采集系统中,锁相环是一种非常有用的同步技术,因为通过锁相环,可以使得不同的数据采集板卡共享同一个采样时钟。因此,所有板卡上各自的本地80MHz和20MHz时基的相位都是同步的,从而采样时钟也是同步的。因为每块板卡的采样时钟都是同步的,所以都能严格地在同一时刻进行数据采集。
8.你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?
逻辑电平参见硬件研发一文档。
TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。CMOS输出接到TTL 是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。
9.可编程逻辑器件在现代电子设计中越来越重要,请问:
a) 你所知道的可编程逻辑器件有哪些?
(简单)PROM,PAL,GAL,PLA,(复杂)CPLD,FPGA
FPGA: Field Programmable Gate Array
CPLD:Complex Programmable Logic Device
b) 试用VHDL或VERILOG、ABLE描述8位D触发器逻辑。
module dff8(clk , reset, d, q);
input clk;
input reset;
input [7:0] d;
output [7:0] q;
reg [7:0] q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
10.设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设计(包括原理图和PCB图)到调试出样机的整个过程。在各环节应注意哪些问题?
11.用逻辑门和cmos电路实现ab+cd
12.用一个二选一mux和一个inv实现异或?
13.给了reg的setup,hold时间,求中间组合逻辑的delay范围。
Delay < period - setup - hold
14.如何解决亚稳态
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
15.用verilog/vhdl写一个fifo控制器
16.用verilog/vddl检测stream中的特定字符串
分状态用状态机写
17.用mos管搭出一个二输入与非门?
Mos反向器二输入与非门
二输入或非门三输入与非门
18.集成电路前段设计流程,写出相关的工具。
1. 设计输入
1) 设计的行为或结构描述。
2) 典型文本输入工具有UltraEdit-32和Editplus.exe.。
3) 典型图形化输入工具-Mentor的Renoir。
4) 我认为UltraEdit-32最佳。
2. 代码调试
1) 对设计输入的文件做代码调试,语法检查。
2) 典型工具为Debussy。
3. 前仿真
1) 功能仿真2) 验证逻辑模型(没有使用时间延迟)。3) 典型工具有Mentor公司的ModelSim、Synopsys公司的VCS 和VSS、Aldec公司的Active、Cadense公司的NC。4) 我认为做功能仿真Synopsys公司的VCS和VSS速度最快,并且调试器最好用,Mentor公司的ModelSim对于读写文件速度最快,波形窗口比较好用。
4. 综合
1) 把设计翻译成原始的目标工艺2) 最优化3) 合适的面积要求和性能要求4) 典型工具有Mentor公司的LeonardoSpectrum、Synopsys公司的DC、Synplicity公司的Synplify。5) 推荐初学者使用Mentor公司的LeonardoSpectrum,由于它在只作简单约束综合后的速度和面积最优,如果你对综合工具比较了解,可以使用Synplicity公司的Synplify。
5. 布局和布线
1) 映射设计到目标工艺里指定位置2) 指定的布线资源应被使用3) 由于PLD市场目前只剩下Altera,Xilinx,Lattice,Actel,QuickLogic,Atmel六家公司,其中前5家为专业PLD公司,并且前3家几乎占有了90%的市场份额,而我们一般使用Altera,Xilinx公司的PLD居多,所以典型布局和布线的工具为Altera公司的Quartus II和Maxplus II、Xilinx公司的ISE和Foudation。4) Maxplus II和Foudation分别为Altera公司和Xilinx公司的第一代产品,所以布局布线一般使用Quartus II和ISE。
6. 后仿真
1) 时序仿真2) 验证设计一旦编程或配置将能在目标工艺里工作(使用时间延迟)。3) 所用工具同前仿真所用软件。
7. 时序分析
一般借助布局布线工具自带的时序分析工具,也可以使用Synopsys公司的 PrimeTime软件和Mentor Graphics公司的Tau timing analysis软件。
8. 验证合乎性能规范
1) 验证合乎性能规范,如果不满足,回到第一步。
9. 版图设计
1) 验证版版图设计。2) 在板编程和测试器件。
19.名词IRQ,BIOS,USB,VHDL,SDR
IRQ: Interrupt ReQuest
BIOS: Basic Input Output System
USB: Universal Serial Bus
VHDL: VHIC Hardware Description Language
SDR: Single Data Rate
20.unix 命令cp -r, rm,uname
21.用波形表示D触发器的功能
22.写异步D触发器的verilog module
module dff8(clk , reset, d, q);
input clk;
input reset;
input d;
output q;
reg q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
23.What is PC Chipset?