FPGA面试深度解析:笔试重点与电路设计

需积分: 14 7 下载量 143 浏览量 更新于2024-09-11 收藏 55KB DOC 举报
"FPGA面试相关知识,包括CPLD与FPGA的区别、逻辑电路设计、可编程逻辑器件、EDA软件使用、时序分析、亚稳态处理、Verilog/VHDL编程等" 1. CPLD与FPGA的区别 - CPLD(Complex Programmable Logic Device)通常具有较少的逻辑单元和I/O引脚,适用于简单的逻辑功能实现,设计修改快速,功耗较低。 - FPGA(Field-Programmable Gate Array)则拥有大量的可编程逻辑单元和I/O资源,适合复杂的系统级设计,灵活性高,但功耗相对较大。 2. 时序概念 - Setup时间:数据需要在时钟上升沿到来前稳定的时间,确保数据正确被触发器捕捉。 - Holdup时间:时钟上升沿之后数据必须保持稳定的时间,以避免数据丢失。 3. 竞争与冒险现象 - 竞争与冒险是数字电路中由于信号传播延迟导致的结果不一致的现象。判断方法通常是通过观察波形图,消除通常通过增加适当的电阻或使用定时器解决。 4. 逻辑电路设计 - D触发器实现2倍分频:通过D触发器和时钟信号,每次时钟边沿翻转,D触发器的输出都会翻转一次,从而实现频率减半的效果。 - "线与"逻辑:多个逻辑门的输出并联连接,只有当所有输入都为1时,总线才为1。在硬件中,需要三态门来实现,使得在不激活时允许总线保持高阻状态。 5. 同步逻辑与异步逻辑 - 同步逻辑:所有逻辑单元由同一时钟控制,所有操作同步进行。 - 异步逻辑:各个部分独立时钟或无全局时钟,通信依赖于信号的到达时间,通常更复杂且难以分析。 6. 微机接口电路 - 输入设备与微机接口逻辑示意图通常包含数据接口、控制接口和寄存器/缓冲器,用于设备与CPU之间的数据传输和控制信号交换。 7. 可编程逻辑器件 - 常见类型包括PAL、GAL、CPLD、FPGA等,可使用VHDL或Verilog进行硬件描述语言编程。 - 8位D触发器逻辑可以用这两种语言描述,实现D触发器的时钟控制和数据保持功能。 8. EDA软件设计流程 - 从原理图设计到PCB布局布线,再到样机调试,需注意信号完整性和电源完整性,避免电磁干扰,同时考虑散热和物理尺寸限制。 9. 时序分析 - Setup/holdtime是关键时序参数,不满足条件可能导致数据丢失或错误。 10. Verilog/VHDL编程 - FIFO控制器设计涉及读写指针管理、空满标志等。 - 检测stream中的特定字符串可能涉及串行数据处理和状态机设计。 11. DSP相关 - DSP(Digital Signal Processor)结构通常有哈佛架构,高速乘法器,专门的指令优化处理信号运算。 - 定点DSP主要处理固定点数的数据,而浮点DSP处理浮点数,浮点型能更强,但定点型更高效且成本低。 - 循环寻址和位反序寻址是DSP中的优化技术,提高数据访问效率。 以上是FPGA面试中可能出现的一些重点知识,涵盖了基础理论、设计实践和高级应用等多个层面。