原创 【博客大赛】【原创】Xilinx 7系列FPGA使用之CLB探索

2012-8-22 09:25 5748 15 27 分类: FPGA/CPLD 文集: xilinx FPGA

 

         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个寄存器(绿色圈)。

 

snap1.jpg

图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位中的某一位进行输出。

 

snap2.jpg

图2

         在写代码时,可以按规范写出移位寄存器的形式,如以下代码所示:

always@(posedge clk)

         if(clk_en)

                   srl<={srl[31:0],din};

assign dout0=srl[20];

以上代码综合出的结构如图3所示,综合器只用了1个LUT和1个FF就实现了21-bit的移位寄存器,只需1个Slice。

 

snap3.jpg

图3

         如按一下代码进行综合后得到结构如图4所示,综合器使用了21个FF实现了这个21-bit移位寄存器,则需要21个Slice。

always@(posedge clk)

         if(rst)

                   srl<=32’d0;

         else

                  if(clk_en)

                            srl<={srl[31:0],din};

assign dout0=srl[20];

 

snap4.jpg

图4

         为什么综合器会产生不同的结构?分析一下代码的区别,第二段代码相比于第二段代码多了一个同步复位功能,而根据SLICEM的结构,其中的LUT是没有同步复位控制输入端的,因此综合器无法将代码综合成想要的结构,因此写代码时需要根据相应的结构来编写。

         观察图3可以发现,在SRLC32E输出端Q后又接入了一个FF作为同步输出,查手册后发现,此移位寄存器可以配置成两种输出模式:静态地址方式和动态地址方式,这两种模式的不同之处在于静态地址方式是同步输出,图3中结构是静态地址方式;而动态地址方式是异步输出,即没有后接FF直接从SRLC32E的Q端输出,以下代码表示动态地址方式,其中addr是一个变量。

always@(posedge clk)

         if(rst)

                   srl<=32’d0;

         else

                  if(clk_en)

                            srl<={srl[31:0],din};

assign dout0=srl[addr];

         对上面的代码进行综合可以得到如图5所示结构,确定输出为异步输出,因此在设计中要注意此处的变化。

 

snap5.jpg

图5

PARTNER CONTENT

文章评论12条评论)

登录后参与讨论

Hoki 2014-10-16 15:22

首先6input-LUT内部是由两个5input-LUT组成的,在面积优先情况下,各自使用一个5input-LUT的两端逻辑可以在一个6input-LUT中实现

用户377235 2014-10-15 16:50

”如果在ISE将综合选项-lc(LUT Combining)设置成Area,综合器XST会将这2个5-input LUT合并在一个6-input LUT中实现“。请问两个5input LUT怎样合并成6input LUT那?不太懂,请指教,谢谢

用户954505 2013-6-14 16:43

always@(posedge clk) if(rst) srl< dem> else if(clk_en) srl< srldinem> assign dout0=srl[addr]; 你好,为什么同样有同步复位,却可以用slicel来生成?

Hoki 2012-4-27 19:03

在定义移位寄存器时可以覆初值,如reg [15:0] shift_reg=16'h80; 这样如果取shift_reg[15]为移位输出的话,这个移位寄存器Q端上电后初值为1

用户1000403 2012-4-27 16:44

请问“按规范写出移位寄存器的形式“ 如何控制Q端的初值?

用户377235 2012-4-13 23:22

写的不错!

用户404801 2012-3-13 11:54

很好

Hoki 2012-3-1 17:36

哈哈,顺利抢到大赛沙发!

Hoki 2012-3-1 17:35

呵呵,希望吧,等那些专家回来了,EDN博客肯定会更加火了!

用户402158 2012-3-1 17:25

楼主再接再励额,多谢您的强力支持,撒花~ 希望你可以得奖哦。
相关推荐阅读
Hoki 2017-01-11 17:35
LX9开发板呼吸灯实现
对LX9开发板硬件评测后,从这一节开始真正进入FPGA开发的世界。很多开发板的例程中必有跑马灯实验,老跑马也没意思,咱来把新潮的,整一个呼吸灯。 呼吸灯最初是出现在apple公司的笔记本产品中,当合上...
Hoki 2017-01-11 16:47
LX9的microblaze配置
虽然XC6SLX9芯片资源比较少,但是嵌一个microblaze还是搓搓有余的,这一节就来评测一下在XC6SLX9上microblaze的配置。 有两种方法配置microblaze,一是在ISE软件中...
Hoki 2017-01-11 16:32
zynq评测
Zynq芯片是业界第一款在FPGA中集成ARM核的芯片,由FPGA的发明者xilinx公司推出的。Zynq严格来说不能以FPGA来定义它,因为其是以处理器为中心的平台,能够在单芯片上提供软、硬件和 I...
Hoki 2017-01-11 16:19
u-boot
Zyny芯片启动加载分为3步: 1. 芯片上电启动,首先读取BootROM中的程序,初始化一些必要的外设,然后根据专用引脚电平判断该从何处启动first stage Bootloader(FSBL),...
Hoki 2017-01-11 16:09
基于zynq的交叉编译平台
Zynq芯片的最大特点是其集成了双ARM Cortex-A9处理器,因此zynq的应用基本是以这个ARM核为核心,再配合FPGA逻辑作为协处理器,几乎能实现所有较复杂的应用。并且在ARM上可以跑操作系...
Hoki 2017-01-11 15:54
u-boot image生成
这节介绍一下如何生成u-boot image文件,在SDK软件中点击Xilinx Tools→Create Boot Image工具即可生成,但是生成image文件需要首先集齐3个文件:u-boot....
我要评论
12
15
关闭 站长推荐上一条 /3 下一条