目录
待解决的问题
1. 八个建议:https://www.cnblogs.com/xgcl-wei/p/9059789.html 7. 阻塞赋值与非阻塞赋值 找确定的规律,时序电路 20题
数字IC笔试题分享 - 知乎 华为海思2022数字芯片(节选)数字IC笔试题分享 - 知乎 第9题b选项 10题选ACD?
华为2022硬件逻辑提前批07.28 2 功耗强相关
2020华为海思校招芯片岗笔试_gemengxia的博客-CSDN博客_华为海思笔试题
8. 跨时域传输,高到低低到高 22题 23题 37题
10. 模块实例化 悬空端口33题
数字电路
1. 概念辨析
- 组合逻辑时序逻辑
- 同步电路异步电路 ; 同步逻辑异步逻辑;(并不局限于是同一时钟驱动源,只要是两个时钟相位相同就可以看成是同步的)
- 同步时钟和异步时钟 同步时间和异步时间
- 同步复位电路 异步复位电路 和 异步复位同步释放电路
- 锁存器(电平敏感)触发器(边沿敏感; 按功能分类有D触发器,JK触发器,T触发器,SR触发器; 按结构分类有:基本RS触发器、时钟RS触发器、主从结构触发器、边沿触发器等)锁存器是一种储存单元,由触发器或者锁存器产生。
- moore and mealy
-
脉冲信号和电平信号表现形式上没有区别,电平信号持续时间较长,脉冲信号持续时间较短,脉冲信号以上升沿和下降沿为标志
2. 时序分析
- 时钟相关概念:skew jitter 时钟频率 占空比
- 静态分析(其实是数据经过一种时序路径传输,但是时钟信号的传输与他不同路径,需要保证二者之间的关系)Tlaunch:为时钟信号传输的延迟;Tck2q 为在触发器内部传输的时延;Tdp 为经过组合逻辑的时延;以上三者为不等式的左侧,代表数据到达目标寄存数据输入端口的时间。而时钟需要经过连线的延迟为Tcature,延迟一个时钟周期T;Tsetup的定义为数据在时钟边沿到来之前保持稳定的一段时间,所以数据到达目标寄存器的时间应该加上Tsetup = 目标寄存器的时钟边沿。Thold为目标触发器边沿变化之后的,所以对应的符号变化。而时钟因为连线的延迟一般可以忽略。不同路径的时序分析是不同的。
- 四种时序路径(起点:FPGA输入引脚;源寄存器的时钟输入。终点:FPGA的输出引脚和目的寄存器的数据输入端)
- 发起沿和捕获沿(launch edge and caputure edge 一般相差一个时钟周期)
- 数据到达时间和数据需求时间
-
建立时间裕量和保持时间裕量(Setup slack & Hold Slack)
-
动态分析:恢复去除时间(异步的)
3. 跨时钟域(CDC)
1.1 亚稳态的产生: 没有达到静态时序分析的要求不满足建立保持时间
1.2 描述亚稳态的公式(MTBF)
tr 为器件允许的正常传播延迟时间
W:亚稳态窗口
fc:时钟频率
fd:异步数据边沿频率
二级寄存器工作: tr1*tr2使得错误率大大下降
1.3 亚稳态的危害
1.4 单比特解决办法(一般是控制信号)
-
两级寄存器(慢到快;因为慢时钟容易被快时钟识别所以不需要担心,直接用二级寄存器消除亚稳态即可)
-
脉冲捕获电路(快到慢;脉冲信号持续时间比较短,需要先将其拓宽;电平信号持续时间较长,不需要多余的处理)
1.5 多比特解决办法( 高到低低到高)(一般提到数据总线的话是指多比特)
-
异步fifo:宽度;深度;读指针写指针;满空标志;异步如何判断。 相关例题
-
握手协议:代码看具体的实现。数据周期要拓宽 然后周期是要确定的。
-
DMUX:多bit的数据信号和单bit的控制信号成对发送,控制信号控制数据信号是否接受
-
格雷码+ 二级寄存器:格雷码可以将多比特信号转换为单比特信号从而实现
1.6 时钟修复约束(PVT条件下)
4. 时序优化
1. 插入寄存器增加tskew 从而使得 T可以尽可能的小,主频可以尽可能的大。对应流水线设计,用面积换取性能。
增加寄存器,提高主频,寄存器的多少代表了深度。 更需要进行sta,提高吞吐量芯片设计之流水线设计-IC学习笔记(四)_Paul 安的博客-CSDN博客_芯片pipeline
2.串行路径转换成并行路径.
3. 寄存器平衡
4. 寄存器重组
5. retiming
5. 竞争冒险的产生
竞争:在组合逻辑中,由于多个输入信号的时延等不同,多个输入信号同时发生变化时,多个输入信号到达门电路输入信号端口的时间不同,称为竞争
冒险: 导致门电路输出一些错误的尖峰信号 这些尖峰信号成为毛刺。
竞争一点会导致冒险但是 反过来不一定
5. 低功耗设计
5.1 静态功耗 动态功耗
动态功耗由两部分组成:短路功耗和开关功耗(也叫翻转功耗)
短路功耗由三部分组成。
开关功耗为:V(电压), 电容, 频率的平方(也称为数据的反转率)
静态功耗: 电压和电流的乘积 (pVT条件)
5.2 功耗分析
.tech library工艺库
.netlist 门级网表电路 综合形成
.parasitic 连线参数
.switch activity 开关型问
5.3 减少功耗(4层)
- 系统级: 多电压设计;软硬件协同设计(动态电压调频;低功耗操作系统的动态功耗管理);系统时钟分配(在不同的工作模式下选择不同的时钟);算法与ip
- rtl级:1. 并行与流水的选择(并行处理可以降低工作频率,流水线设计将较长的组合路径分为M级流水线,是的电容变为原来的1/M,从而可以降低电源电压);2. 资源共享和状态编码(把重复使用的代码抽象出来);3. 操作数隔离(使数据输入为常数,使其没有反转);4. 门控时钟(1.直接对寄存器的时钟控制。2. 对模块的时钟进行控制。)
- 门级电路: 1. 静态功耗优化:多阙值电压设计(阙值电压越高,漏电功耗越低,门延迟长,在关键路径使用低阙值电压,非关键路径使用高阙值电压)。2. 动态功耗优化:EDA工具自动优化。3. 电源门控:使逻辑电路供电电源断开。
- 物理级:
5.4 随着工艺的上升 静态功耗变大,动态功耗变小。
6. CMOS与NMOS
7. DFT可测型设计
- 边界扫描测试(SCAN)
- BIST 自建内测试 (memory IP一般自带BIST 简称MBIST)
- 扫描测试(ATPG)
8.编码
Onehot 与格雷码计算
反码&补码;
onehot 格雷码 binary码 优缺点;
- 格雷码和binary码 组合逻辑较多需要译码,但是触发器需要的少
- 独热码: 不需要译码 组合逻辑少但是触发器需要的多,位数比较多
CRC 冗余检验
9.设计流程
RTL → synthesis → P&R
10. ROM RAM Cache
Read only memory 存储固化程序
random access memory 断电即失忆
SRAM(不需要刷新电路,用于二级高速缓存,速度快,但是需要的面积大)
DRAM(每隔一段时间就需要充电刷新一次;速度相对较慢;)
cache是出于处理器和储存模块之间的缓冲带
12.单位
1Byte = 8 bit
1 字 = 2 Byte
13. 哈佛结构和冯诺依曼结构
哈佛结构将程序指令存储和数据存储分开的结构
冯诺依曼结构 将程序指令存储和数据存储放在一起的结构
14. false path
从题里面总结出来的:
false path 是为了让系统不检查时序约束而设计的
模拟ip不需要
同步和异步均需要
15. 同步时钟异步时钟
同步时钟一般同源 由同一个PLL产生,相位相同
异步时钟 不同源相位无法确定
但是到静态时序分析中好像不一样
16. FPGA
CLB(可配置逻辑块)是主要逻辑单元
一个CLB 中包括两个slice
slice分为 sliceM 和 sliceL
slice包含LUT、寄存器、进位链和多个多数选择器构成。
SliceM 有移位寄存器和DRAM
SLiceL 没有