数字IC面试常见问题

什么是亚稳态,产生的原因,如何消除?

亚稳态:是指触发器无法在规定时间内达到一定的状态,此时则会出现亚稳态现象。原因:由于触发器的Tsu和Th不满足,当触发器进入亚稳态,使得无法预测该单元的输出,这种不稳定是会沿信号通道的各个触发器级联传播。消除方法:两级或者多级寄存器同步。但是理论上不能完全消除,可以降低。

亚稳态的解决方法

亚稳态:指触发器无法在一定时间内达到稳定状态的现象.

原因:由于触发器的Tsu和Thd不满足,当触发器进入亚稳态,使得输出一个不确定的状态,会沿着信号通路上的触发器传播下去.

解决方法: 1. 降低系统时钟 2 .用反应更快的FF 3.引入同步机制,防止亚稳态传播 4. 改善时钟质量,用边沿变化快速的时钟信号

为什么打两拍可以处理亚稳态

答案: 发生亚稳态常常是在时钟有效沿采集到的数据不满足寄存器的建立/保持时间导致的。打两拍的方式降低亚稳态的原理是:假如第一级触发器采到的值是亚稳态,经过一个周期的恢复时间(相对亚稳态来说,时间很长),第二级触发器采到的值极大概率是稳定的,需要注意的是,打两拍的方式只能大概率保证传输的值是稳定的,但不一定是正确的,因为当信号处于亚稳态后,经过一段时间恢复可能恢复到0,也可能恢复到1,注意在同步之前需要保证传输信号是寄存器信号。

信号的跨时钟域同步。(包括单比特和多比特)

单bit跨时钟域处理 慢到快:

两级触发器同步 快到慢:开环结绳法、闭环结绳法;握手 多bit跨时钟域 DMUX、异步fifo、握手、格雷码+双D触发器

单bit:慢到快,打两拍同步,进行边沿检测;快到慢,脉冲展宽,脉冲同步。

多bit:握手协议,异步fifo,多bit mux

答案:单比特信号 

脉冲展宽,脉冲同步快时钟域到慢时钟域可能存在信号变化过快,慢时钟域采不到的情况,需要先对跨时钟域信号做电平展宽,在慢时钟域下同步展宽信号生成需要的脉冲信号,最后需要在快时钟域下同步脉冲信号,用于拉低电平信号。 

打两拍同步慢时钟域到快时钟域一般直接经过两级触发器即可,其原理是即使第一级触发器采到的值是亚稳态,经过一个周期的恢复时间(相对亚稳态来说,时间很长),第二级触发器采到的值极大概率是稳定的,需要注意的是,打两拍的方式只能大概率保证传输的值是稳定的,但不一定是正确的,因为当信号处于亚稳态后,经过一段时间恢复可能恢复到0,也可能恢复到1,注意在同步之前需要保证传输信号是寄存器信号。

多比特信号 :多采用异步FIFO和握手信号。异步FIFO适用于对传输速度要求比较高的系统,握手信号适合于对对传输速度要求慢一点的系统。 需要注意的是,当传输信号连续变化,且从慢时钟域到快时钟域时,此时并不完全需要用异步FIFO进行传输,可直接将信号进行格雷码转换(确保信号在传输时,相邻变化信号只有某一bit发生翻转,大大降低亚稳态的概率)并同步,在快时钟域将格雷码转换成二进制即可。

解析:跨时钟传输基本上是每个企业必问的一道题,其中包含的知识点很多,具有很强的延展性。切莫勿记八股,理解着记才更加深刻。

时序路径有哪几种

  1. clock-to-setup路径从触发器的输入端开始,结束于下一级触发器,锁存器或者RAM的输入端,对终止端的数据信号要求一定的建立时间。
  2. Clock-to-Pad路径从寄存器或者锁存器的时钟输入端开始,终止于芯片的输出引脚,中间经过了触发器输出端以及所有的组合逻辑,
  3. Pad-to-Pad路径从芯片输入信号端口开始,结束于芯片输出信号端口,中间包含所有组合逻辑,但并不包含任何同步逻辑
  4. Pad-to-setup路径从芯片的输入信号端口开始,结束于同步电路模块(触发器,锁存器和RAM),对相应的数据信号要求一定的建立时间

为什么异步fifo可以进行跨时钟域处理

1.异步fifo中使用了存储器RAM能将两个时钟域的时序路径隔开。

 2.在异步fifo的读写控制中,引入了格雷码同步。由于格雷码相邻两个码之间只有一位发生变化,因此在指针跨时钟域传递时如果发生亚稳态,指针要么是变化后的地址,要么是与同步前的指针保持一致。因此这不会引起fifo的功能紊乱,只是影响了其读写效率。

请画出异步复位同步释放的电路结构:

同步复位:同步复位只有在时钟沿到来时复位信号才起作用,则复位信号持续的时间应该超过一个时钟周期才能保证系统复位。异步复位:异步复位只要有复位信号系统马上复位,因此异步复位抗干扰能力差,有些噪声也能使系统复位,因此有时候显得不够稳定,要想设计一个好的复位最好使用异步复位同步释放。异步复位同步释放:所谓异步复位,同步释放就是在复位信号到来 的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步。

module rst_n_sync(
    input   clk        , // 输入时钟
    input   rst_n      , // 输入异步复位信号
    output  rst_n_sync   // 输出同步释放后的复位信号
    );

reg          rst_n_r1 ; // 第1级寄存器
reg          rst_n_r2 ; // 第2级寄存器

assign rst_n_sync = rst_n_r2 ;

always @ (posedge clk or negedge rst_n) begin
    if (~rst_n) begin
        rst_n_r1 <= 1'b0 ; 
        rst_n_r2 <= 1'b0 ; // 复位信号有效时拉低
    end // 
    else begin
        rst_n_r1 <= 1'b1    ; 
        rst_n_r2 <= rst_n_r1; // 复位信号无效后,通过两级打拍,实现释放同步
    end // 
end // 
endmodule

CMOS非门、与非门、或非门的结构

非门口诀--上P下N,栅极相连;

与非门口诀—上P下N,上并下串;

或非门口诀—上P下N,上串下并。

与非门只有当A/B全为Logic1的时候,两个N管导通,输出为0,其它情况下输出为1;

或非门只有当A/B全为Logic0的时候,两个P管导通,输出为1,其它情况下输出为0。

阻塞赋值和非阻塞赋值的区别是什么?

答案:阻塞赋值:先计算表达式的右边,然后立即将结果赋值给表达式的左边,阻塞下一条语句的执 行,在并行语句块中是并行执行的,在串行语句块是顺序执行的; 非阻塞赋值:先计算表达式右边,等待一段时间将结果赋值给表达式的左边,在并行语句块和 串行语句块中都是并行执行的。 其中,阻塞赋值常被用于组合逻辑,非阻塞赋值常被用于时序逻辑。

FPGA的资源有哪些

  1. IOB可编程输入输出单元 2、可编程逻辑块 (3)数字时钟管理模块 (4)BRAM (5)布线资源 (6)底层内嵌功能单元——PLL(锁相环)、DSP等 一般会针对LUT、BRAM和DRAM进行深入提问

FPGA可以快速实现用户的设计,FPGA中包含大量的资源。1、CLB-可配置逻辑块(LUT、DFF、MUX);2、IOB-可配置IO(支持多种电平标准、LVDS、DDR2/3);

3、BRAM-嵌入式RAM(FIFO、ECC);4、布线资源;5、时钟资源(GC、DCM、PLL、MMCM等);6、IP(DSP单元、PCIe、Serdes、ARM、PC等)。

FPGA项目中你是怎么时序优化的

首先查看时序报告,对于复位信号处理解决方法通常有:

(1)Set false path 因为本身复位没有办法保证到达每一个寄存器保证延迟一致时序不出现违例,这里约束是忽略对此路径的时序分析。

(2)Set multi cycle 约束我们的建立时间或者保持时间余量大于 1 个时钟周期。对于外部输入信号,尽量采用时钟和数据中心对齐的方式,然后对输入信号进行input delay约束,输出信号进行output delay约束。对于IP自动生成的信号,则可不必进行约束,因为IP已经自动帮我们约束好了。当我们完成综合后进入布局布线流程,可以通过 vivado 工具选择不同的布局布线方案,选择不同的约束优化方案对我们的设计会有不同方向的优化作用。最后处理一些时序问题还可以插入流水寄存器。

简单的介绍一下SPI描述:

SPI(Serial Peripheral Interface,串行外围设备接口),是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,广泛用于EEPROM、Flash、RTC(实时时钟)、ADC(数模转换器)、DSP(数字信号处理器)以及数字信号解码器上。SPI通信的速度很容易达到好几兆bps,所以可以用SPI总线传输一些未压缩的音频以及压缩的视频。

SPI有4个引脚:SCK、MOSI、MISO、SS/CS

1、SCK(Serial Clock):SCK是串行时钟线,作用是Master向Slave传输时钟信号,控制数据交换的时机和速率;

2、MOSI(Master Out Slave in):在SPI Master上也被称为Tx-channel,作用是SPI主机给SPI从机发送数据;

3、CS/SS(Chip Select/Slave Select):作用是SPI Master选择与哪一个SPI Slave通信,低电平表示从机被选中(低电平有效);

4、MISO(Master In Slave Out):在SPI Master上也被称为Rx-channel,作用是SPI主机接收SPI从机传输过来的数据;

SPI支持主从模式,支持单Master多Slave:一个Master可以通过片选信号控制多个Slave,不管是发送数据还是接收数据,片选信号和时钟信号必须由主机产生。

SPI有四种模式00、01、10、11,时钟信号通过时钟极性(CPOL)和时钟相位(CPHA)控制两个SPI设备何时交换数据以及何时对接收数据进行采样。

SPI协议规定一个SPI设备不能再数据通信过程中仅仅充当一个发送者或接收者。每个时钟周期内,SPI设备都会发送并接收1bit数据,相当于有1bit数据被交换了。

RS-485概述

RS-485和RS-232一样,都是串行通信标准,现在的标准名称是TIA485/EIA-485-A,但是人们会习惯称为RS-485标准,RS-485常用在工业、自动化、汽车和建筑物管理等领域。

  RS-485总线弥补了RS-232通信距离短,速率低的缺点,RS-485的速率可高达10Mbit/s,理论通讯距离可达1200米;RS-485和RS-232的单端传输不一样,是差分传输,使用一对双绞线,其中一根线定义为A,另一个定义为B。

一、RS485总线传输协议是一种串行总线通信协议标准,RS485总线采用平衡发送,差分接收的结构设计,因此具有抑制共模干扰的能力。RS485总线的数据传输速率最高可达10Mbps,最远传输距离可达1000米左右。RS485不是点对点式的总线结构,而是分布式架构,其总线能够连接多达128个收发器。

对PVT三项因素的理解,数字电路设计过程中需要考虑PVT?

芯片的延时一般受三个因素影响:工艺(Process)、电压(Voltage)、温度(Temperature)。合起来称为PVT参数。其中,工艺和温度因素较为复杂,是本文重点介绍的对象。

数字电路设计时会做STA分析,分析在各种PVT条件下,芯片的时序是否满足要求。

名词解释——设计流程篇

DFT常用的技术有JTAG、ATPG、Mbist;

APR是完成芯片的自动布局布线,CTS是APR中的主要环节,其目的是让寄存器的时钟尽量对齐;

STA是完成芯片的Timing Signoff;

ECO通常通过修改网表的方式来实施;

DRC(Design Rule Check) 完成设计规则检查;

LVS完成版图和网表的等价性比对;

DFM主要针对制造性进行Check,如天线效应,Dummy Metal Check等;

JDV是对MASK厂的数据进行在线确认;

MPW是多芯片共同流片分摊制版费的一种方式。

SoC芯片的验证

芯片的验证可分为模块级验证、系统级验证和FPGA验证。

模块级验证主要是基于覆盖率的验证,对模块进行完整的评价;

系统级验证目的是完成集成正确性的验证以及测试模式的验证;

FPGA验证目的是加速软硬件协同的验证,让软件人员尽快实现Driver层面的验证,同时可以快速实现接口兼容性验证。 

那些因素影响标准单元的延迟

标准单元延迟的因素有三方面:

a) PVT(工艺、电压、温度);

b) 输入信号的transition、输出的负载 ;

c) 器件的Vt。

由于这三方面的因素会导致标准单元的延迟变化,所以在项目中针对三方面的因素需要如下处理:

a) STA时考虑PVT的影响;

b) 要想追求速度,尽可能减小输入transition和输出load;

c) 使用Multi-Vt策略来平衡芯片的速度和漏电。

谈谈对时序约束的理解及策略

时序约束是Timing Driven 综合和PR的基础,综合前工程师要完成SDC的编制,综合后DC会生成用于PR的SDC文件(Detail SDC)。

时序约束主要包括几方面内容:

1、约束时钟

(create_clock/set_clock_latency…);

2、约束IO

(set_input_delay/set_output_delay…);

3、约束Special路径

(set_false_path/set_multicycle_path…);

4、约束一些rule

(set_max_fanout/set_max_cap…)。 

谈谈Spare Cell在芯片设计中的作用

芯片的流片成本是很高的,而设计出错是很难完全避免的,芯片的加工过程是允许停片的,基于以上三个背景,Spare Cell粉墨登场。

在芯片设计时,会在空闲的地方放置一些cell,如DFF、NAND、AOI、INV等,这些cell叫做Sparecell。初次流片时可以将部分Wafer停留在Poly阶段,如果需要修改一些很容易解决的Bug,可以利用这些Cell,只修改几层Metal达到功能ECO的目的。节省成本并加快芯片上市。

典型的MCU系统架构图

本题给出了一款典型的MCU架构框图,AHB bus上集成了M系列core,存放程序的Flash,系统缓存Sram;APB bus上集成了GPIO、UART、I2C、SPI、Timer等;除了bus机构还包括一些模拟的IP如POR、OSC、LDO、ADC等;IOMUX作为IO复用模块控制test mode和Func mode之间IO的切换,以及Func mode下IO的复用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值