FPGA 设计一个很重要的设计是时序设计,而时序设计的实质就是满足每一个触发器的建立(Setup)/保持
(Hold)时间的要求。
建立时间(Setup Time):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间
不够,数据将不能在这个时钟上升沿被打入触发器;
保持时间(Hold Time):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间
不够,数据同样不能被打入触发器。
FPGA 设计分为同步电路设计和同步电路设计,然而很多异步电路设计都可以转化为同步电路设计,在设
计时尽量采用同步电路进行设计。对于同步电路可以转化的逻辑必须转化,不能转化的逻辑,应将异步的
部分减到最小,而其前后级仍然应该采用同步设计。
为了让同步电路可靠地运行,就要对时钟偏差进行控制,以使时钟偏差减小到可用的范围。影响时钟偏差
的主要有以下几个因素:
� 用于连接时钟树的连线
� 钟树的拓扑结构
� 时钟的驱动
� 时钟线的负载
� 时钟的上升及下降时间
在通常的 FPGA 设计中对时钟偏差的控制主要有以下几种方法:
� 控制时钟信号尽量走可编程器件的的全局时钟网络。在可编程器件中一般都有专门的时钟驱动器
及全局时钟网络,不同种类、型号的可编程器件,它们中的全局时钟网络数量不同,因此要根据
不同的设计需要选择含有合适数量全局时钟网络的可编程器件。一般来说,走全局时钟网络的时
钟信号到各使用端的延时小,时钟偏差很小,基本可以忽略不计。
� 若设计中时钟信号数量很多,无法让所有的信号都走全局时钟网络,那么可以通过在设计中加约
束的方法,控制不能走全局时钟网络的时钟信号的时钟偏差。
� 异步接口时序裕度要足够大。局部同步电路之间接口都可以看成是异步接口,比较典型的是设计
中的高低频电路接口、I/O 接口,那么接口电路中后一级触发器的建立-保持时间要满足要求,时
序裕度要足够大。
� 在系统时钟大于 30MHz 时,设计难度有所加大,建议采用流水线等设计方法。采用流水线处理
方式可以达到提高时序电路的速度,但使用的器件资源也成倍增加。
� 要保证电路设计的理论最高工作频率大于电路的实际工作频率。
FPGA 工程师面试试题 00
1、同步电路和异步电路的区别是什么?(仕兰微电子)
2、什么是同步逻辑和异步逻辑?(汉王笔试)
同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.
3、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?(汉王笔试)
线与逻辑是两个输出信号相连可以实现与的功能.在硬件上,要用 oc 门来实现,由于不用 oc 门可
能使灌电流过大,而烧坏逻辑门. 同时在输出端口应加一个上拉电阻.
4、什么是 Setup 和 Holdup 时间?(汉王笔试)
5、setup 和 holdup 时间,区别.(南山之桥)
6、解释 setup time 和 hold time 的定义和在时钟信号延迟时的变化.(未知)
7、解释 setup 和 hold time violation,画图说明,并说明解决办法.(威盛 VIA
2003.11.06 上海笔试试题)
Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求.建立时间是指触发 器的时
钟信号上升沿到来以前,数据稳定不变的时间.输入信号应提前时钟上升沿(如上升沿有效)T 时间
到达芯片,这个 T 就是建立时间-Setup time.如不满足 setup time,这个数据就不能被这一时钟打
入触发器,只有在下一个时钟上升沿,数据才能被打入触发器. 保持时间是指触发器的时钟信号上
升沿到来以后,数据稳定不变的时间.如果 hold time 不够,数据同样不能被打入触发器.
建立时间(Setup Time)和保持时间(Hold time).建立时间是指在时钟边沿前,数据信 号需要保持不
变的时间.保持时间是指时钟跳变边沿后数据信号需要保持不变的时间.如果不满足建立和保持
时间的话,那么 DFF 将不能正确地采样到数据,将会出现 metastability 的情况.如果数据信号在时
钟沿触发前后持续的时间均超过建立和保持时 间,那么超过量就分别被称为建立时间裕量和保持
时间裕量.
8、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除.(仕兰微 电子)
9、什么是竞争与冒险现象?怎样判断?如何消除?(汉王笔试)
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争.
产生毛刺叫冒险.如果布尔式中有相反的信号则可能产生竞争和冒险现象.解决方法:一是添加布
尔式的消去项,二是在芯片外部加电容.
10、你知道那些常用逻辑电平?TTL 与 COMS 电平可以直接互连吗?(汉王笔试)
常用逻辑电平:12V,5V,3.3V;TTL 和 CMOS 不可以直接互连,由于 TTL 是在 0.3-3.6V 之间,而
CMOS 则是有在 12V 的有在 5V 的.CMOS 输出接到 TTL 是可以直接互连.TTL 接到 CMOS 需
要在输出端口加一上拉电阻接到 5V 或者 12V.
11、如何解决亚稳态.(飞利浦-大唐笔试)
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态.当一个触发器进入亚
稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平
上.在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无
用的输出电平可以沿信号通道上的各个触发器级联式传播下去.
12、IC 设计中同步复位与 异步复位的区别.(南山之桥)
13、MOORE 与 MEELEY 状态机的特征.(南山之桥)
14、多时域设计中,如何处理信号跨时域.(南山之桥)
15、给了 reg 的 setup,hold 时间,求中间组合逻辑的 delay 范围.(飞利浦-大唐笔试)
Delay < period - setup – hold
16、时钟周期为 T,触发器 D1 的建立时间最大为 T1max,最小为 T1min.组合逻辑电路最大延
迟为 T2max,最小为 T2min.问,触发器 D2 的建立时间 T3 和保持时间应满足什么条件.(华
为)
17、给出某个一般时序电路的图,有 Tsetup,Tdelay,Tck->q,还有 clock 的 delay,写出决
定最大时钟的因素,同时给出表达式.(威盛 VIA 2003.11.06 上海笔试试题)
18、说说静态、动态时序模拟的优缺点.(威盛 VIA 2003.11.06 上海笔试试题)
19、一个四级的 Mux,其中第二级信号为关键信号 如何改善 timing.(威盛 VIA
2003.11.06 上海笔试试题)
20、给出一个门级的图,又给了各个门的传输延时,问关键路径是什么,还问给出输入,
使得输出依赖于关键路径.(未知)
21、逻辑方面数字电路的卡诺图化简,时序(同步异步差异),触发器有几种(区别,优
点),全加器等等.(未知)
22、卡诺图写出逻辑表达使.(威盛 VIA 2003.11.06 上海笔试试题)
23、化简 F(A,B,C,D)= m(1,3,4,5,10,11,12,13,14,15)的和.(威盛)
24、please show the CMOS inverter schmatic,layout and its cross sectionwith P-
well process.Plot its transfer curve (Vout-Vin) And also explain the
operation region of PMOS and NMOS for each segment of the transfer curve? (威
盛笔试题 circuit design-beijing-03.11.09)
25、To design a CMOS invertor with balance rise and fall time,please define
the ration of channel width of PMOS and NMOS and explain?
26、为什么一个标准的倒相器中 P 管的宽长比要比 N 管的宽长比大?(仕兰微电子)
27、用 mos 管搭出一个二输入与非门.(扬智电子笔试)
28、please draw the transistor level schematic of a cmos 2 input AND gate and
explain which input has faster response for output rising edge.(less delay
time).(威盛笔试题 circuit design-beijing-03.11.09)
29、画出 NOT,NAND,NOR 的符号,真值表,还有 transistor level 的电路.(Infineon 笔
试)
30、画出 CMOS 的图,画出 tow-to-one mux gate.(威盛 VIA 2003.11.06 上海笔试试题)
31、用一个二选一 mux 和一个 inv 实现异或.(飞利浦-大唐笔试)
32、画出 Y=A*B+C 的 cmos 电路图.(科广试题)
33、用逻辑们和 cmos 电路实现 ab+cd.(飞利浦-大唐笔试)
34、画出 CMOS 电路的晶体管级电路图,实现 Y=A*B+C(D+E).(仕兰微电子)
35、利用 4 选 1 实现 F(x,y,z)=xz+yz’.(未知)
36、给一个表达式 f=xxxx+xxxx+xxxxx+xxxx 用最少数量的与非门实现(实际上就是化
简).
37、给出一个简单的由多个 NOT,NAND,NOR 组成的原理图,根据输入波形画出各点波形.
(Infineon 笔试)
38、为了实现逻辑(A XOR B)OR (C AND D),请选用以下逻辑中的一种,并说明为什
么?1)INV 2)AND 3)OR 4)NAND 5)NOR 6)XOR 答案:NAND(未知)
39、用与非门等设计全加法器.(华为)
40、给出两个门电路让你分析异同.(华为)
41、用简单电路实现,当 A 为输入时,输出 B 波形为…(仕兰微电子)
42、A,B,C,D,E 进行投票,多数服从少数,输出是 F(也就是如果 A,B,C,D,E 中 1 的个数比 0
多,那么 F 输出为 1,否则 F 为 0),用与非门实现,输入数目没有限制.(未知)
43、用波形表示 D 触发器的功能.(扬智电子笔试)
44、用传输门和倒向器搭一个边沿触发器.(扬智电子笔试)
45、用逻辑们画出 D 触发器.(威盛 VIA 2003.11.06 上海笔试试题)
46、画出 DFF 的结构图,用 verilog 实现之.(威盛)
47、画出一种 CMOS 的 D 锁存器的电路图和版图.(未知)
48、D 触发器和 D 锁存器的区别.(新太硬件面试)
49、简述 latch 和 filp-flop 的异同.(未知)
50、LATCH 和 DFF 的概念和区别.(未知)
51、latch 与 register 的区别,为什么现在多用 register.行为级描述中 latch 如何产生的.
(南山之桥)
52、用 D 触发器做个二分颦的电路.又问什么是状态图.(华为)
53、请画出用 D 触发器实现 2 倍分频的逻辑电路?(汉王笔试)
54、怎样用 D 触发器、与或非门组成二分频电路?(东信笔试)
55、How many flip-flop circuits are needed to divide by 16? (Intel) 16 分频?
56、用 filp-flop 和 logic-gate 设计一个 1 位加法器,输入 carryin 和 current-stage,输出
carryout 和 next-stage. (未知)
57、用 D 触发器做个 4 进制的计数.(华为)
58、实现 N 位 Johnson Counter,N=5.(南山之桥)
59、用你熟悉的设计方式设计一个可预置初值的 7 进制循环计数器,15 进制的呢?(仕兰
微电子)
60、数字电路设计当然必问 Verilog/VHDL,如设计计数器.(未知)
61、BLOCKING NONBLOCKING 赋值的区别.(南山之桥)
62、写异步 D 触发器的 verilog module.(扬智电子笔试)
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
63、用 D 触发器实现 2 倍分频的 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
64、可编程逻辑器件在现代电子设计中越来越重要,请问:a) 你所知道的可编程逻辑器
件有哪些? b) 试用 VHDL 或 VERILOG、ABLE 描述 8 位 D 触发器逻辑.(汉王笔试)
PAL,PLD,CPLD,FPGA.
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
65、请用 HDL 描述四位的全加法器、5 分频电路.(仕兰微电子)
66、用 VERILOG 或 VHDL 写一段代码,实现 10 进制计数器.(未知)
67、用 VERILOG 或 VHDL 写一段代码,实现消除一个 glitch.(未知)
68、一个状态机的题目用 verilog 实现(不过这个状态机画的实在比较差,很容易误解
的).(威盛 VIA 2003.11.06 上海笔试试题)
69、描述一个交通信号灯的设计.(仕兰微电子)
70、画状态机,接受 1,2,5 分钱的卖报机,每份报纸 5 分钱.(扬智电子笔试)
71、设计一个自动售货机系统,卖 soda 水的,只能投进三种硬币,要正确的找回钱
数. (1)画出 fsm(有限状态机);(2)用 verilog 编程,语法要符合 fpga 设计
的要求.(未知)
72、设计一个自动饮料售卖机,饮料 10 分钱,硬币有 5 分和 10 分两种,并考虑找零:(1)
画出 fsm(有限状态机);(2)用 verilog 编程,语法要符合 fpga 设计的要求;(3)设计
工程中可使用的工具及设计大致过程.(未知)
73、画出可以检测 10010 串的状态图,并 verilog 实现之.(威盛)
74、用 FSM 实现 101101 的序列检测模块.(南山之桥)
a 为输入端,b 为输出端,如果 a 连续输入为 1101 则 b 输出为 1,否则为 0.
例如 a: 0001100110110100100110
b: 0000000000100100000000
请画出 state machine;请用 RTL 描述其 state machine.(未知)
75、用 verilog/vddl 检测 stream 中的特定字符串(分状态用状态机写).(飞利浦-大唐
笔试)
76、用 verilog/vhdl 写一个 fifo 控制器(包括空,满,半满信号).(飞利浦-大唐笔试)
77、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y=lnx,其中,x
为 4 位二进制整数输入信号.y 为二进制小数输出,要求保留两位小数.电源电压为 3~5v 假
设公司接到该项目后,交由你来负责该产品的设计,试讨论该产品的设计全程.(仕兰微
电子)