作者:huxiaokai2005
7系列FPGA是Xilinx新推出的基于28nm工艺的FPGA,其中包含三个系列:Artix、Kintex和Virtex。因项目要使用kintex7为平台做设计,需要对其内部结构做了研究,首先从CLB(Configurable Logic Block)开始:
CLB构成了Kintex7主要逻辑单元,其中包含2个Slice,并且Slice分为2种:SLICEL和SLICEM,SLICEL为普通的
Slice逻辑单元,而SLICEM在基本逻辑功能的基础上可以扩展为分布式RAM或者移位寄存器。在所有Slice资源中,有2/3是SLICEL,因
此一个CLB可以有2个SLICEL或者1个SLICEL、1个SLICEM组成。
如图1所示为SLICEM的内部结构,其中包含4个6输入LUT(红色圈)、进位链(黄色圈)、多路复用器(蓝色圈)和8个寄存器(绿色圈)。
图1
6-input LUT:此处LUT沿用了Xilinx 6系列FPGA的6输入LUT结构,6-input
LUT内部是由2个5-input LUT组成,有两个输出分别对应O¬6和O5。在设计中,如果综合后有2个5-input
LUT需要是使用,如果在ISE将综合选项-lc(LUT Combining)设置成Area,综合器XST会将这2个5-input
LUT合并在一个6-input LUT中实现,但是此选项相当于以速度换面积,随之逻辑延时将增大。
寄存器:此处Xilinx区别于Altera器件,其1个LUT对应了2个register,而Altera器件中是一一对应的。从图中可以发现,第2列
的register比第1列多了FF/LAT这个选项,这表示第1列的register只能作为Flip-Flop使用,而第2列的register既能
作为Flip-Flop也能作为Latch使用。另外还有INIT0、INIT1、SRLO和SRHI
四个选项,其中INIT0和INIT1配对,表示通过GSR全局复位/置位,此复位/置位网络为异步的;而SRLO和SRHI配对,表示高电平有效信号SR驱动的复位/置位,此信号可以配置成异步或者同步,但这8个register共用一个SR信号,因此其方式必须相同,根据此特性,建议写代码时,复位/置位方式选择同步高电平有效。
下面对SLICEM做一下重点说明,其可扩展成移位寄存器,如图2所示,Slice中的每个LUT可配置成32-bit的Shift
Register,因此1个Slice最多可扩展成128-bit的Shift
Register。其操作模式为1个时钟周期移1为,通过D输入端输入,并且最后1位通过MC31输出,并且可以以A[6:2]作为5位地址选择O6输出
32位中的某一位进行输出。
图2
在写代码时,可以按规范写出移位寄存器的形式,如以下代码所示:
本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念
本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“
课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了
@2003-2020 中国电子顶级开发网