FPGA是一种可重构电路,其中最基本的单元是原语。原语是FPGA上最小的可编程单元。在FPGA的设计中,原语用来定义某些特定的基本功能。每个原语包含了一些可编程的逻辑单元和可以使用的物理资源。每个FPGA都有其自己的原语库,这些原语可以组合构建出复杂的电路功能。
FPGA的原语种类主要有四种,分别是逻辑元件,存储元件,算数元件和时序元件。
逻辑元件用于实现逻辑运算,包括与门、或门、非门、异或门、时钟门等。其中最基本的逻辑元件是与门和或门。
与门:与门是一个基本逻辑元件,它具有两个输入和一个输出。当两个输入同时都为1时,输出为1,否则输出为0。
或门:或门同样也是一个基本逻辑元件,它也具有两个输入和一个输出。当两个输入中有一个或两个都为1时,输出为1,否则输出为0。
存储元件用于将数据在时序电路中存储或保持不变。存储元件分为可寻址存储元件和非可寻址存储元件两类。常见的存储元件有D触发器、JK触发器、T触发器等。
D触发器:D触发器是常用的存储元件之一,它有一个输入和一个输出,可以将输入的电平保持到输出上。它的时序特性关系到它在时序电路中的应用。D触发器的输入可以被直接控制,并且输出可以驱动其他电路,是FPGA设计中常用的元件。
算数元件用于实现加减乘除等算数运算,常见的算数元件有加法器和乘法器。
加法器:加法器可以将两个数相加,并且产生和值作为输出。如全加器用于位宽为3的加法器时,能够将3个一位数的加法处理为1个三位数的加法。
乘法器:乘法器用于将两个数相乘,并且产生乘积值作为输出。乘法器的实现方法有很多种,主要分为快速乘法和通用乘法两种。
时序元件用于实现时序电路的核心部分,可以完成时钟信号发生、存储等功能。常见的时序元件有分频器、计数器等。
分频器:分频器用于将高频时钟转换为低频时钟。它将输入的高频时钟分频,输出对应的低频时钟。
计数器:计数器是一个递增或递减的计数器,它可以实现时序电路中时钟信号的计数、数据接收等功能。常见的计数器有二进制计数器和BCD计数器。