现场可编程门阵列(FPGA)全面解析
1. 可编程逻辑基础
可编程硬件的基本理念是打造通用电路,使其功能能针对特定应用进行编程。传统计算机就基于此理念,其算术逻辑单元(ALU)可依据一组控制信号执行多种操作。不过,ALU 一次只能执行一项操作,所以特定应用需分解为一系列控制信号来控制 ALU 功能,同时还需提供逻辑以向 ALU 输入提供合适数据,这些控制信号序列由存储在内存中的程序指令提供。
可编程逻辑则将功能表示为电路,特定电路可编程以满足应用需求。关键区别在于,其功能以并行系统而非顺序系统实现。任何逻辑功能都可通过两级最小项(与或)表示实现。早期可编程逻辑设备采用两级可编程阵列架构,每个输入(及其反相)都可能连接到一组与门的输入,每个圆圈代表对应垂直线和水平线之间的可编程连接,输出部分也类似。实际上,根据德摩根定理,输入和输出部分使用相同电路,与或可实现为与非与非。通过在输出端添加锁存器或触发器,并从输出端向输入端提供适当反馈,可实现顺序逻辑,如计数器和有限状态机。
20 世纪 70 年代初,简单可编程逻辑设备开始出现,主要用于简化包含许多离散逻辑设备的电路。早期设备分为掩膜可编程和熔丝可编程。掩膜可编程设备在制造时编程,用金属掩膜实现硬连线编程;熔丝可编程设备可由用户编程,使电路具备现场可编程性。可编程部分可由熔丝或反熔丝组成,熔丝通过高于正常电流切断连接,反熔丝通过施加高电压击穿薄绝缘层使其导电。由于熔断熔丝或反熔丝是破坏性的,设备一旦编程就无法重新编程。
这种可编程阵列提供了完全的编程灵活性,但人们很快意识到灵活性较低的阵列也有优势。若输出(或)阵列由固定连接取代,每个或门连接固定数量的与门,就得到了可编程阵列逻辑(PAL)。虽然这看似减少了连接数量
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



