芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 |
---|
四社区联合力荐!近500篇数字IC精品文章收录! |
【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍 |
一、投稿方式
因为作者不是今年的应届生,因此本专栏(数字IC笔试面试专栏)的建设需要粉丝朋友们共同进行,现开放邮箱笔试面经投稿地址如下E210064@e.ntu.edu.sg,欢迎读者朋友们进行投稿,参与的朋友有机会获得数字IC相关纸质书籍,先到先得哦!
二、芯动科技
一面
介绍实习所做的工作
Asic设计的流程
- 确定芯片的具体指标:
- 系统级设计
- RTL 寄存器传输级设计
- 功能验证
- 逻辑综合
- 形式验证(静态验证)
- STA静态时序分析
- DFT可测性设计
- 布局布线
- 寄生参数提取
- 静态时序分析(STA)
- 版图物理验证
- 生成GDSII文件,Tap_off 流片
阻塞赋值和非阻塞赋值的区别
(1)阻塞赋值(=)赋值一旦完成,等号左边的变量值立即变化。
(2)非阻塞赋值(<=),在赋值开始时计算表达式右边的值,在本次仿真周期结束时才更新被赋值变量。
Setup time和hold time是什么,如果不满足会发生什么
跨时钟域的处理有哪些
1.双触发器同步器:使用两级触发器来在不同时钟域之间传输信号,确保信号同步。
2.握手协议:通过握手协议在不同时钟域之间传输数据,确保数据的正确接收和发送。
3.异步FIFO:使用异步 FIFO 来在不同时钟域之间传输数据,包含了专门的同步电路,确保数据的稳定传输。
为什么要用格雷码
最小位数变化:相邻码之间只有一个位数变化,减少了位数变化的同时导致的传输错误。
降低传输误差:在信号传输过程中,由于只有一个位数变化,降低了由于信号传输延迟导致的传输错误概率。
Clock gating是什么,描述一下电路原理和结构
电路原理:Clock gating 是一种动态功耗优化技术,通过控制时钟信号的传递来降低电路功耗。当电路处于空闲或无操作状态时,时钟信号被屏蔽,避免浪费功耗。
结构:Clock gating 通常使用一个门电路来控制时钟信号的开关,根据电路状态和控制信号来决定是否传递时钟信号。
异步复位和同步复位的优缺点是什么
异步复位:
优点:响应速度快,不受时钟延迟影响,适用于临界资源的复位。
缺点:可能引起异步复位冲突,需要额外的复位电路,容易引入异步复位后的同步问题。
同步复位:
优点:避免异步复位冲突,简化电路设计,不会引入异步复位后的同步问题。
缺点:响应速度受时钟延迟影响,不适用于临界资源的复位。
异步复位同步释放作用是什么,实现什么样的目的
当异步复位信号释放后,通过同步电路来将电路状态同步到时钟域中,避免出现时序问题。这样可以保证在异步复位信号释放后,电路能够正常运行,并且不会出现异常状态。
三、芯原科技
一面
介绍项目
Fifo的深度怎么确定的
Cpu的五级流水线都是什么
CPU的五级流水线通常包括以下五个阶段:
a. 取指(Instruction Fetch):从指令存储器中读取指令。
b. 译码(Instruction Decode):对取得的指令进行解码,确定指令类型和操作数。
c. 执行(Execution):执行指令的操作,例如算术运算、逻辑运算等。
d. 访存(Memory Access):访问存储器,读取或写入数据。
e. 写回(Write Back):将执行阶段得到的结果写回寄存器文件。
CPU遇到跳转指令怎么执行
当CPU遇到跳转指令(例如条件分支或无条件跳转指令)时,会在译码阶段计算跳转地址。然后,在执行阶段进行条件判断或计算,确定是否发生跳转。如果发生跳转,取指阶段会重新开始从跳转地址读取指令,否则流水线继续顺序执行。
Cpu遇到数据冲突怎么执行
当CPU遇到数据冲突(例如数据依赖冲突,数据竞争等)时,会采取一些策略来解决冲突,以确保数据的正确性:
a. 数据前推(Data Forwarding):将执行阶段得到的结果直接转发给后续阶段需要使用该数据的部件,避免数据冲突。
b. 暂停流水线(Stalling):在发生数据冲突时,暂停流水线,等待数据可用后再继续执行,以避免错误的数据被用于后续计算。
c. 乱序执行(Out-of-Order Execution):通过重新调度指令的执行顺序,避免数据冲突,提高指令级并行度。
对扫描链有什么了解
扫描链(Scan Chain)是一种在芯片测试中用于辅助测试和调试的技术。它是一种将芯片内部的存储元件连接成一个链式结构,从而可以通过扫描链接入测试模式。在测试时,可以将测试数据通过扫描链输入到芯片内部,或者读取芯片内部的状态信息,以验证电路功能或诊断故障。扫描链通常在设计时引入,方便在制造和测试阶段对芯片进行故障测试和调试。