组合逻辑
- 什么是竞争与冒险,如何消除?(百度即可)
竞争:组合逻辑电路中,同一信号经过多条路径到达某一汇合点(输出端)时有先有后的现象叫竞争(输入信号有先有后)
冒险:由于竞争而引起电路输出信号中出现了非预期信号,产生瞬间错误的现象称为冒险(输出信号发生错误)
识别:如果布尔式中有相反的信号则可能产生竞争和冒险现象
解决办法:
1.修改逻辑表达式,加上冗余项或乘上冗余因子
2.时序逻辑采样,仅在时钟边沿采样
3.在芯片外部并联电容消除窄脉冲(输出端接几百微法滤波电容)
时序逻辑
- 同步逻辑和异步逻辑的区别
同步逻辑是时钟之间有固定的因果关系;异步逻辑是各时钟之间没有固定的因果关系 - 同步电路和异步电路的区别
同步电路有统一的时钟源,异步电路没有;从同一个PLL(PLL的输入即为时钟源)中分频或倍频的时钟驱动的电路是同步电路 - 同步复位和异步复位的区别
复位信号独立产生作用即异步复位(posedge clk or negedge rst_n);复位信号受时钟控制,时钟边沿触发有效为同步复位(posedge clk)rst_n信号在代码主体 - D触发器和latch的区别
D触发器是时钟边沿敏感的,latch是脉冲电平敏感的 - 什么是建立时间和保持时间
触发器在时钟上升沿到来之前数据输入必须保持不变(稳定)的最小时间(Tsetup/Tsu);触发器在时钟上升沿到来之后数据输入必须保持不变(稳定)的最小时间(Thold/Th) - 什么是亚稳态,产生的原因,如何消除
亚稳态是指触发器无法在规定时间达到一个可确认的状态;
产生原因:不满足触发器的建立时间和保持时间
跨时钟域解决办法:针对单比特信号(慢时钟域到快)采用两级触发器级联(同步器),针对多比特信号采用异步FIFO缓存(跨时钟域还可以通过握手协议)
亚稳态解决办法:降低系统时钟频率;用反应更快的FF;引入同步机制,防止亚稳态传播;改善时钟质量,用边沿变化快速的时钟信号
有公司如何消除的答案是前者,大家的题库里是第二种,待求证
推荐阅读1:博客园-FPGA中亚稳态-屋檐下的龙卷风
推荐阅读2:链接3/5相关文章 - 静态时序分析
建立余量为正
Tcycle(+T5(时钟网络延迟)未求证,图来自牛客网)>Tco+Tdata+Tsetup
保持余量为正
Tco+Tdata>Thold
1.扩展阅读博客园-FPGA静态时序/IO口时序-屋檐下的龙卷风
(备注:Tclk为clk2旁边的一个整时钟周期;公式2存疑;board delay即pcb走线延迟,时钟偏移(skew)为Tclk2-Tclk1,这两个时钟取最大还是最小值是由altera官方公式决定的,取决于需要计算最大延迟还是最小延迟)(结论偏Tco)
2.静态分析基础-李锐博恩(这篇文章是从Tdata的角度分析slack的,和上一个链接用的Tpcb相似,位置比较深所以我贴出来吧)(结论偏Tdata)
3.资料夹里面有更多的文文,这里主要应对笔面试,所以贴两个图看着清楚的 - 系统最快时钟频率
Tmin =Tco+Tdata+Tsetup-Tskew(取倒即可)
Tskew=T2-T1 - 时钟偏移和时钟抖动的概念和区别
时钟偏移(clock skew):指同一时钟源到两个不同寄存器的时钟端的时间差值(原因是不同路径的布线长度不同)
时钟抖动(clock jitter):相对于理想时钟沿存在的不随时间累积,时而超前时而滞后的偏移(和晶振/PLL内部电路有关,即和时钟发生器的自身,噪声等有关,和布线无关)
数字集成
其他文字题
- FPGA设计开发流程(+开发工具,示例vivado流程)
- RTL设计 (linux用Gvim,还有一个emac,这两个不清楚。我用的notepad++)
- 功能仿真(也叫行为仿真)(modelsim,vcs,nc-verilog)
- 综合映射(designcompile也叫dc)
- 综合后仿真(也叫后仿,还没有玩过)
- 布局布线
- 时序收敛(时序分析的工具:primetime(PT)PT,TimeQuest分析器)
- 下载,板级调试(ISE中的signal tap,vivado中的hardware manager)
- FPGA内部结构(也可叫做芯片架构)
1.可编程输入输出单元IOB
2.可配置逻辑块CLB(SLICEL和SLICEM)
3.时钟管理模块(PLL和MMCM)和时钟资源
4.嵌入式BlockRAM(BRAM)(包括FIFO和RAMB)
5.布线资源
6.内嵌的底层功能单元(DSP)
7.内嵌的专用硬件模块(ARM Cortex-A9)
推荐阅读链接3/5
更多内容:详细版本 - FPGA和CPLD的区别
新浪微博-常见数字IC设计、FPGA工程师面试题-独自等待 - HDL语言的层次概念
系统级,算法级,RTL级,门级,开关级 - 你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗
常用逻辑电平:12V,5V,3.3V
不可以直接互连,CMOS可以驱动TTL,TTL不可以驱动CMOS(解决办法是在TTL输出端口加上上拉电阻(拉高电平的作用))
备注:TTL逻辑输出1的电平范围为:2.7-5V,CMOS输入逻辑1的规定电平范围为3.5-5V,因此当TTL输出2.7V接到CMOS时会违反规定
大题
- 编程题
- D触发器
八位D触发器
带有异步清0、异步置1的D触发器,同步复位、置位D触发器(扬智电子) - 状态机
序列检测*****的状态图并描述 - 计数器
十进制计数器的verilog描述
奇偶分频器的设计 - 四位的全加器(仕兰微电子)
- 格雷码,bcd码,bin码转换
- 给出下列电路的真值表(逻辑门的电路符号和真值表)
- 根据所给电路,补全输出波形(考点:时序)
- FIFO最小深度计算
资料夹
1.专栏-FPGA学习总结-B_AKING
2.博客园专栏-基础知识及设计技巧总结-没落骑士(参考其中笔面试不定时更新篇)
3.专栏-IC/FPGA笔试面试基础知识-李锐博恩 (这个专栏里知识点比较详细)
4.专栏-求职/工作-ascend(主要是面试,很久以前了)
5.专栏-数字IC笔试面试必考-新芯时代
6.博客园专栏-FPGA-肉娃娃
7.博客园个人主页-NingHeChuan这个博主变成微信公众号主阵地了好像,反正我没有怎么看公众号,虽然关注了,捂脸
(备注:对于很小部分的内容有源版权不一致的感觉,心里要有数,代码本来就是copy泛滥的区域,一级一级的传播容易丢失原版权,会的人也会变多,认知范围内做到学习与尊重版权就够了)