基于xlinx7 xc7a35t的FPGA开发日记(三)
从今天开始我们来共同学习FPGA的架构。
FPGA的全称是“现场可编程门阵列”,是一种半定制电路。厂商为用户提供了足够多的可编程的组合逻辑设计和时序逻辑设计空间。
我们选择的是FPGA技术发明人创立的Xlinx公司生产的Artix7家族性能中等的xc7a35t芯片,但即使是较低性能的它也拥有多达数以万计的单位。
如图所示,Xlinx采用的架构有三个组成部分,CLB,IOB和wire。其中用户的操作主要就是对CLB进行操作从而实现逻辑功能。
我们首先来看一下CLB的结构:
每个CLB下包含多个slice(片),xc7a35t一共有5200个slice,每个slice就是一个处理运算的基本单位,slice的基本结构如下图所示
其中有三部分,第一部分是LUT(查找表),查找表是实现组合逻辑的基本单位,其功能类似于数电里的数据选择器,其每个输入地址对应这确定的值,通过这种“查找”的思路来实现任意组合电路。进位链感兴趣可以了解一下,这里不做介绍;接下来就是最重要的寄存器,寄存器是slice里负责完成时序逻辑功能的基本单位,它通过数据的保存和输出,配合上查找表,可以实现任意的组合逻辑功能。
xc7a35t的每个slice包含四个六输入查找表,每个查找表有两种不同的功能可以配置,今后我们会讲到。除了查找表,每个slice包含了8个储存元件,其中4个可以任意配置成寄存器或者D触发器,有了D触发器,我们就可以利用触发器的互相表示,得到任意触发器了。
接下来说一下IOB
Bank可以理解为输入输出口的组别,一定数量的IO口构成一个bank,对于IO口我们可以进行的操作有1.约束特定IO口作为当前程序的专用IO口2.设置IO口的电平标准。 对于xc7a35t,有LVCMOS LVTTL SSTL 等多种标准,可以与外界不同接口进行对接。
对于速度而言,我们选择的xc7a35t排在-1等级,属于中间,已经能很好地满足我们日常开发的需求了。
如果想进行实战操作的同学可以在某宝上购买成熟的带开发板的Xlinx xc7a35t,加上Xlinx家专用下载器,价格大概在五百左右,是一款性价比非常高的FPGA板子。
下节内容我们将开始verilog硬件语言和Xlinx家专用FPGA开发程序Vivado的介绍,需要进行实际操作的同学可以登录Xlinx家的网站免费申请lisence并下载2017.8以后的版本进行编程训练。
本节课到此为止,谢谢大家观看!