注:学习摘自数字芯片实验室
1、 Recovery check 和 Removal check的概念? 怎么保证不出现问题 ?(有关异步信号/异步复位)
对于一个异步复位寄存器来说,异步复位信号需要和时钟满足recovery time和removal time 才能有效进行复位和复位释放操作,防止输出亚稳态。
1.1 Recovery time:恢复时间
撤销复位时,恢复到非复位状态的电平必须在时钟有效沿来临之前的一段时间到来,才能保证有效地恢复到非复位状态,此段时间为recovery time。类似于同步时钟的setup time。
如图所示,rst_n为0表示复位,clk上升沿触发,rst_n从0到1的上升沿与时钟上升沿之间地时间差必须不小于recovery time才能保证寄存器恢复到正常状态。
1.2 Removal time:去除时间
复位时,在时钟有效沿来临之后复位信号还需要保持的时间为去除时间removal time。类似同步时钟hold time。
如图所示,rst_n为0表示复位有效,clk为上升沿触发,rst_n保持为0经过clk上升沿后仍需要保持一段时间,才能保证寄存器有效复位,防止亚稳态。
2、画出 Y=A+BC 的 COMS 电路?
BC即是逻辑与;
3、SDF 文件在 IC 设计中哪个阶段使用?文件包含了哪些信息?
SDF : Standard delay format,标准延时格式,是IEEE标准,它描述设计中的时序信息,包括cell delay 和wire delay。cell delay是指模块内部的延时,wire delay是器件互连的延时。
5、画出 assign out = (a[3:0] != 4’b0001)的门电路?
a[3:0] == 4’b0001 -> out = 1’b0 ;
a[3:0] != 4’b0001 -> out = 1’b1 ;
6、 分析以下电路功能?
上图左边为一个16分频的电路。
当 A 为低电平时,5个D触发器全部复位,Y输出低电平
当 A 为高电平时,左边4个触发器开始分频计数,计数到第4个触发器输出高电平(上升沿,分频器半个周期,8个CLK周期)时,Y输出高电平。
即个人觉得功能是检测输入A高电平脉冲宽度
1.异步fifo的深度计算
FIFO主要用于异步数据传输之间的数据缓冲。我们选择的FIFO深度应该能够保证在最极端的情况下,仍然不会溢出。因此考虑的最坏情况一般都是写时钟频率大于读时钟频率,但是若写操作是连续的数据流,FIFO都无法保证数据不溢出。可以认为写数据的传输是“突发Burst”的,即写操作并不连续。
从整个时间域上看,“写数据=读数据”。但是在发送方"突发"发送数据的时间T内,是很有可能写数据>读数据的,因此FIFO的深度要能够保证,在这段时间T内,如果接收方未能将发送方发送的数据接收完毕的话,剩下的数据都是可以存储在FIFO内部而且不会溢出的。
实例:一个8bit宽的异步FIFO,输入时钟为100MHz,输出时钟为95MHz,设一个数据包为4Kbit,且两个数据包之间的发送间距足够大。问异步FIFO的深度至少为多少?
发送发一次Burst突发的数据量为4Kbit,即500byte,在两次Burst突发之间有足够的时间,因此我们只用考虑在发送方Burst发送数据的时间T内,如果接受方没法将数据全部接收,其余数据均可存在FIFO内且不溢出。首先发送方Burst发送数据的时间段为 T = 500/100MHz。而在T这段时间内,接收方能够接受的数据量为B_receive = T*95MHz = 500 * 95 / 100 byte = 475 byte,因此 B_remain = B_send - B_ receive = 500 -475 = 25 byte。那么FIFO的深度至少要大于等于25 byte才行。
2、如果只使用2选1mux完成异或逻辑,至少需要几个mux?
Y= A xor B=A!B+AB!= (A == 1’b0) ?B: B!= (A 1’b0) ?B: ( (B1’b0) ? 1’b1: 1’b0)
即至少需要两个MUX
3.在对信号采样过程之前抗混滤波,其作用是什么?它选用何种滤波器?其截止频率如何确定?
奈奎斯特采样定律
4.线与逻辑
线与逻辑是两个输出信号直接相连可以实现“与”的功能,可以用OC或OD门来实现,需要在输出端加一个上拉电阻。
5.将二输入的与非门当非门使用时,另一端的接法应该是
Y= !A=!(1’b1 && A)
所以另一端接高电平
6.属于高速串行接口的是
PCIE,USB,SPI,RapidIO
7.关于芯片启动时初始化代码在调到main函数之前会执行的操作
硬件初始化?
8.Verilog HDL中哪些结构是不可综合的
Verilog语法很多,没法把所有的关键词都列出来。
主要的关键词中always,assign,case,for,function等都是可综合的,注意for循环的次数需要固定。
另外一些用于验证的fork-join,initial,#delays等不可综合
10.代码覆盖率
覆盖率是对仿真进度的评估,其中代码覆盖率是客观的,功能覆盖率是主观定义的。代码覆盖率主要有语句覆盖,条件覆盖,路径覆盖,有限状态机覆盖等等
11.面积和速度优化
面积优化:资源共享,串行化;
速度优化:流水线,缩短关键路径法,配平寄存器,乒乓操作
面积和优化存在矛盾,逻辑综合的目的就是要在满足时序的情况下尽量减小面积。
12.关于正则表达式中的计数符和通用字符集进行搜索匹配
* 0 or more
+ 1 or more
? 0 or 1
13.时序检查中对异步复位电路的时序分析叫做()和()?
恢复时间检查和移除时间检查。recovery time 和removal time检查
14 FPGA内部资源包括哪些及其作用
根据作用就很容易联想出来
15 画一个序列发生器的Moore状态机
设计一个序列检测器,检测序列1101,检测到输出1,否则输出0.
用状态机来实现序列检测器是非常合适的,下面先给出状态转移图,之后用Moore状态机来实现这个序列检测器:
(注:此处所画为无重叠检测,有重叠检测只需要改变最后一个状态即可,例如本例里,有重叠检测,如果S4状态下输入为1,则需要转向S2状态,其他不变。)
16 电路最大频率计算
setup time 和 hold time
1、 下面关于PLL电路表述正确的是:
A. PLL属于模拟电路,无法用全数字电路实现
B. PLL相对于参考时钟,可以输出分频、倍频、分数频的时钟
C. PLL输入的参考时钟jitter值,在PLL输出是会变大,也可能变小
D. PLL的jitter值等于同步数字电路中clock uncertainty的设定值
解析:
A PLL可以用数字电路实现
D clock uncertainty是pre_layout设置的,用来建模不确定性。包括jitter + skew
2、如图所示时序路径示意图,椭圆表示组合逻辑,FF1/FF2表示寄存器,A表示数据输入端口,CLK表示时钟输入端口,Z表示数据输出端口
A. 只要在端口CLK上创建时钟,即可约束A->Z之间的组合逻辑的延时
B. 只要在端口Z上设置输出延时,即可约束FF2 -> Z之间的组合逻辑的延时
C. 只要在端口CLK上创建时钟,即可约束FF1->FF2之间的组合逻辑的延时
D. 只要在端口A上设置输入延时,即可约束A->FF1之间的组合逻辑的延时
在逻辑综合时,一般有4种path group:
Input to reg :输入端口到寄存器,通过set_input_delay设置输入端口外的延时,来约束组合逻辑延时
Tclk – T1 – Tinput_delay – Tsetup > 0
我们设置 Tclk和Tinput_delay,从.lib/.db库里面读入Tsetup,工具就会约束优化T1组合逻辑
Reg to reg :寄存器到寄存器,通过create_clock,约束为时钟周期
Tclk - Tcq - T2 - Tsetup> 0;
Reg to output :
我们设置 Tclk和Toutput_delay,从.lib/.db库里面读入Tcq,工具就会约束优化T3组合逻辑
Tclk - Tcq - T3 - Toutput_delay > 0;
Input to output;
我们设置Tinput_delay + Toutput_delay,工具就会约束优化T3组合逻辑
Tclk - Tinput_delay -T3 - Tout_delay > 0;
也可以直接设置 set_max_delay
3、 一个线性反馈移位寄存器(LSFR)的特征多项式为F(x)=x4+x+1,初始态为全1,则以下哪些描述是正确的?
A. 输出的m-序列为11100101
B. 该LFSR包含四个寄存器
C. 寄存器的状态不会出现全零
D. 该LFSR能够产生的不重复序列最长为15位
下图是多项式对应的电路图:
输入初始为:1111
4个寄存器序列依次为:
1111 -> 0111 -> 1011 -> 0101 -> 1010 -> 1101 -> 0110 -> 0011 -> 1001 -> 0100-> 0010 -> 0001 ->1000 -> 1100 -> 1110 ->1111
OUT 序列依次为:
111101011001000
4、以下关于验证的描述,正确的是
A. 验证平台使用checker检测DUT的行为,只有知道DUT的输入输出信号变化之后,才能根据这些信号变化来判定DUT的行为是否正确
B. SystemVerilog区别于verilog的一个重要特征是其具有面向对象语言的特性:封装、继承和多态
C. UVM是synopsys、cadence、mentor等EDA厂商联合发布的验证平台
D. Verilog,SystemVerilog, SystemC, UVM 都是验证常用的硬件语言
解析:
A checker不用等到DUT输入输出变化,可以使用assertion验证DUT内部信号
C Accellera构建了UVM,并得到了三大厂商(Cadence、Synopsys和Mentor Graphics)的共同支持。
D UVM(Universal Verification Methodology),是验证方法学,不局限于某一种语言。
5、 以下关于FIFO描述正确的是
A. 空信号是在写时钟域产生的,满信号是在读时钟域产生的
B. 外部可以直接操作FIFO的读写地址
C. FIFO可以分为同步FIFO和异步FIFO
D. FIFO是先进先出的存储器
A “写满读空”。空信号是在读时钟域产生的,满信号是在写时钟域产生的
B FIFO(First Input First Output,先入先出队列),外部不可以直接操作FIFO的读写地址
6、在静态时序分析中计算时钟延迟需要考虑一下哪些因素?
A. 寄存器的建立和保持时间
B. 工艺特性造成的on-chipvariation
C. 时钟源的抖动(jitter)
D. 时钟树不平衡引入的偏差(skew)
E. 系统时钟干扰
解析:
BCD
A 建立和保持时间是时序库里面的内容。
8、 下面是芯片中有关GPIO的叙述,不正确的是:
A. GPIO一般只具有0态和1态,不具有高阻状态
B. GPIO的引脚一般是多功能复用的
C. GPIO作为输出接口时具有锁存功能
D. GPIO作为输入接口时具有缓冲功能
9、和模拟滤波器相比,数字滤波器具有可靠性好,精度高,实现灵活等特点。
以下列出了几种数字滤波器的理想幅频特性,请选出哪一种是带阻滤波器的幅频特性?
带通滤波器:它允许一定频段的信号通过,抑制低于或高于该频段的信号、干扰和噪声;
带阻滤波器:它抑制一定频段内的信号,允许该频段以外的信号通过。
11、以下关于格雷码的描述哪些是正确的?
A. 卡诺图的坐标是按照格雷码的顺序标注的
B. 格雷码0110对应的二进制数是0100
C. 格雷码相邻的码组间仅有一位不同
D. 格雷码从编码形式上杜绝了逻辑冒险的发生
E. 格雷码常用于提高单一时钟域内总线数据的可靠性
格雷码常用于提高跨时钟域内总线数据的可靠性
12、如下为verilogHDL描述的一段程序,请选择对它产生波形描述正确的是:
A. 周期为15
B.clk=0
C.clk=1
D.占空比1/3的时钟
13.电容器接到交流电源的两端时,下列说法不正确的是
A.电路中有了电流,表现为交流“通过”了电容器
B. 实际上是电容器交替进行了充电和放电
C. 实际上自由电荷通过了两板级间的绝缘材质
D.实际上自由电荷没有通过两级间的绝缘材质
15、下图为一个全加器,假设每个门延时为T,不考虑线延时和扇入扇出,下列说法正确的是
A 8位carry-lookhead adder 最大延迟为 4T
B 8位carry-lookheadadder 最大延迟为 3T
不管几位加法器,超前进位逻辑的进位都是三级结构,故其延时为三个门
17、A和B均为补码表示的二进制,其中A=10010010B,B=10001011B
请问下列选项中哪一个为A+B的运算结果:
A.100011101
B.110011101
C.111100010
D.011100011
A+B=10010010B+10001011B=100011101B
故选A
18、下面关于verilog描述正确的是:
A.如果A=1’b1,B=1’b0,F=A&~B|B&~A||B,则F=1’b1.
B.y=a+b;属于阻塞赋值语句,执行该语句时,先计算a+b值,然后更新y值,在此过程中不能运算其他语句
C.generate,for,function语句可以综合(for循环可综合时,循环变量必须是固定值)
D.如果A=4’hb,则^A=1’b1
ABCD
19、以下关于电路处理说法正确的是:
A:同步电路系统中可以有一个时钟及其三分频时钟进行驱动;
B:DFF的setup时间是根据DFF和DFF之间的时序路径分析出来的,把时钟变慢可以增加DFF的setup时间
C:数字电路设计中是竞争和冒险会带来电路上的毛刺,需要加入RC滤波电路清除
D:如果DFF的hold时间不满足,通常可以通过时钟运行速度来解决
E:异步reset信号因为和时钟是异步的,因此不需要加时钟约束
B setup时间 是.lib/.db库里面的内容,是DFF器件的属性
C 边沿触发器D输入端对于毛刺不敏感,只需要满足setup/hold time,不需要专门加滤波器
D Thold计算与时钟无关 Thold< Tcq+Tcom
E 类似于 setup 和hold。异步信号有remove和recovery time check
20、以下代码中哪些会推导出锁存器(latch)?
A.
B.
C.
D.
CD
组合逻辑if else 或者case不完整会产生 latch.
B中加上了语句 zip =0 ,不会产生latch
综合出锁存器,本质原因是综合工具默认会在输出不变化的时候,保持原来的值。而组合逻辑没有存储记忆的功能,所以才会综合出锁存器。
通过最后一个例子,在DesignCompiler中综合
Temp被工具优化掉了,并且电路综合成latch
clk = 1 ,NextState = CurrentState ;
clk = 0 , NextState = NextState ;
21:下面降低功耗的方法中,属于降低静态功耗的有
A:门级电路的功耗优化
B:多阈值电压
C:门控时钟电路
D:操作数分离
E:多个供电电压
ABE
在CMOS电路中,静态功耗主要是漏电流引起的功耗。
22:关于建立setup和保持hold时间的表述哪些是正确?
A:解决setup time violation的方法之一是适当降低时钟频率
B:解决hold time violation的方法之一是适当降低时钟频率
C:setup time 不受系统时钟频率影响
D:setup time 是指有效的时钟沿来临之后的数据需要保持的时间
AC
B:hold时间与时钟频率无关 Thold< Tcq+Tcom
D:setup time 是指在有效的时钟沿之前,数据需要提前到达的时间
23:中断是处理器能完成并行性,实时操作的一种重要手段,请选出如下有关中断的正确描述?
A:以上表述都不对
B:中断的响应过程中,保护程序计数器的作用是cpu能找到中断处理程序的入口地址,
C:cpu在响应中断期间,原来的程序依然可以执行
D:中断响应中,断点保护,现场保护由用户编程完成。
解析:
B:保护程序计数器的作用是cpu退出中断,找到主程序的入口地址。
C:原程序是中止的,不能运行
D:现场保护由系统自动(编译器)完成
24:以下关于FPGA和ASIC描述正确的是:
A:FPGA开发周相对短
B:相同工艺下,ASIC能跑更快的时钟
C:FPGA更注重面积的要求。
D:ASIC批量生产时成本相对低
ABD
25:对于90nm制程芯片,合法的电压,环境温度范围内,以下哪种情况内部信号速度最快:
A:温度低,电压低
B:温度低,电压高
C:温度高,电压低
D:温度高,电压高
B