首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的可变长度移位寄存器优化设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的可变长度移位寄存器优化设计
发短消息
加为好友
苹果也疯狂
当前离线
UID
852722
帖子
10369
精华
0
积分
5185
阅读权限
90
在线时间
277 小时
注册时间
2011-8-30
最后登录
2016-7-18
论坛元老
UID
852722
1
#
打印
字体大小:
t
T
苹果也疯狂
发表于 2015-7-29 10:16
|
显示全部帖子
基于FPGA的可变长度移位寄存器优化设计
数据采集
,
寄存器
,
在线
,
数控
,
通道
触发控制单元是高速数据采集系统的重要组成部分,而可变长度移位寄存器在触发控制单元中起弹性缓存、数控延迟等作用。触发控制单元根据不同的条件设置时间窗口,并对窗口内的数据进行操作,在线完成实时事例选判和控制。由于高速数据采集系统的采样频率高,单位时间内产生的数据和事件多,不同时间窗口所需的移位寄存器的长度变化会很大。一方面,触发控制单元作为高速数据采集系统的一个组成部分,常常与系统的其他组成部分共享有限的FPGA资源;另一方面,一个数据采集系统往往有多路数据采集通道,需多个触发控制单元支持。因此,提高资源利用率对构建用于触发控制的可变长度移位寄存器来说非常重要。
本文以最大可变长度为N、宽度为1bit的移位寄存器为模型,讨论如何从结构上优化可变长度移位寄存器和有效的FPGA实现。至于宽度不为1bit的情况,可以此类推。
1 可变长度移位寄存器的常用结构
通常可变长度移位寄存器的结构可分为两种:一种是输入分支型(结构A),如图1所示;另一种是输出分支型(结构B),如图2所示。
结构A与结构B有两个共同点:第一,都是由触发器链路加数据流向控制逻辑组成;第二,每级触发器的输入输出都是信号节点,因而各级都需要对本级节点的信号流向进行控制。结构A用n-to-2n译码器来控制信号流向,结构B则用2n:1多路复用器控制信号流向。对于基本逻辑单元为查找表(LUT)+触发器(FF)+多路复用器(MUX)结构的FPGA来说,直接采用结构A与结构B构造较长的移位寄存器时,触发器链和复杂的组合逻辑会消耗很多资源,即这两种结构不宜用于较长的可变长度移位寄存器。
2 解决方案
为解决上述问题,可以采用如下两个方法:
(1)优化功能结构与硬件结构的搭配。根据移位寄存器结构类型,选择适宜的FPGA芯片以提高资源利用率,降低资源消耗。
(2)优化移位寄存器结构。采用FPGA片内RAM来实现移位寄存器,利用片内RAM速度快、数量大的优点,直接减少基本逻辑单元的消耗,提高资源利用率。
2.1 优化功能结构与硬件结构的搭配
通过调整FPGA芯片类型与移位寄存器结构类型的搭配,可以提高资源利用率,降低资源消耗。下面以结构B为例,阐述如何应用Xilinx公司的Spartan-3系列芯片高效地实现N=128的可变长度移位寄存器。
2.1.1 实现原理
Spartan-3系列芯片的每个可配置逻辑块CLB[1]如图3所示,包含8个LUT、8个DFF和8个2:1多路复用器(4个F5MUX,2个F6MUX,1个F7MUX,1个F8MUX),而每个LUT都能配置成移位寄存器模式(SRL),相当于一个16级的可逐级寻址的移位寄存器。如图4所示,一个LUT就包含了构成结构B所需的全部要素,从而有效地实现N=16的可变长度移位寄存器[2].Q15是用于多级级联实现N>16的移位寄存器的进位输出。
2.1.2 应用示例
利用Spartan-3系列芯片的一个CLB(相当于8个基本逻辑单元)就可以构成N=128的可变长度移位寄存器,如图5所示。作为对比,如果不调整FPGA芯片类型与移位寄存器结构类型的搭配,比如直接采用Altera Cyclone II芯片,按结构A实现N=128的可变长度移位寄存器,则需消耗169个基本逻辑单元(由Quartus II编译)。
2.2 优化移位寄存器结构
通过优化移位寄存器结构,采用FPGA片内RAM来实现移位寄存器,利用片内RAM速度快、数量大的优点,直接减少基本逻辑单元的消耗,提高资源利用率。
2.2.1 实现原理
FPGA片内RAM常见有两种,一种是分布式RAM(Distributed RAM),如Xilinx Spartan-3的LUT,每个LUT都可作为16位的RAM使用;另一种是嵌入式块RAM(Block RAM),如Xilinx Spartan-3的18KB块RAM、Altera Cyclone II的4KB块RAM(M4K)。结构A与结构B中,各级都需要对本级节点的信号流向进行控制,这种形式限制了FPGA嵌入式块RAM的使用。为此,设计了结构C——梯级组合型,如图6所示,这种结构非常利于采用片内RAM来实现移位寄存器。
分析结构C,梯级组合型有两个要素:一是2:1多路复用器,每个都有单独的控制位,共n个,而且n〈〈N,二者呈指数关系;二是不同长度的移位寄存器组成的梯级,初级(第0级)由20=1个触发器组成,第1级由21=2个触发器链接组成,第2级由22=4个触发器链接组成,……,第N级由2N个触发器链接组成。在梯级组合型的结构中,不需要对每个触发器的输入输出都控制,只需通过控制位BI对各个梯级的输入输出控制就可以实现分辨率为1的长度连续变化,寄存器的长度N=BN×2N+…+B2×22+B1×21+B0×20.
例如,对于最大N=255(控制字为8位)且采用结构C的可变长度移位寄存器,要实现长度为5的移位寄存器,只需设置控制字为00000101B即可;要实现长度为255的移位寄存器,只需设置控制字为1111111B即可。由于同一个梯级里,除头尾两级外,其他各级不再有信号流向控制,且各梯级触发器链的长度为2n,可以方便地利用FPGA嵌入式块RAM和厂商提供的经过优化的宏功能模块来实现长度较大的梯级,从而提高资源利用率。
2.2.2 应用示例
以Altera Cyclone II[3]的M4K为例,每个M4K块RAM有4 608个存储位(其中包括512个奇偶位),操作频率高达250MHz,M4K工作于移位寄存器模式时的结构如图7所示,数据宽度(w)、每段长度(m)、抽头数(n)的关系可方便地在厂商提供的基于RAM的移位寄存器宏模块“altshift_taps”中设置。当w×m×n不大于4 608且w×m不大于36时,消耗一个M4K和少量基本逻辑单元;当不能满足上述两项中任意一项,开发工具会自动连接多个M4K.通过调整w、m、n的组合,M4K能以多种方式高效实现结构C的梯级。
例如,构造一个1024位的梯级,可以设置w=1、m=256、n=4,占用13个LUT,8个寄存器,1个M4K;构造一个4 096位的梯级,可以设置w=1、m=256、n=16,依然只占用13个LUT,8个寄存器,1个M4K.为进一步提高M4K的利用率,可以设置w=32、m=128、n=1,只占用12个LUT,7个寄存器,1个M4K就能得到32个长度为128位的移位寄存器段,将这些寄存器段自行连接,用一个M4K能同时得到如下的梯级:128位、256位(2段串连)、512位(2段串连)、1024位(8段串连)、2048位(16段串连),最大限度地利用了M4K的RAM资源。
作为对比,仍以Altera Cyclone II芯片为例,如果用基于基本逻辑单元的移位寄存器宏模块“LPM_SHIFTREG”来实现1 024位的梯级和4096位的梯级,则分别需1 024(256×4)个LUT和4096(256×16)个LUT,资源开销较大。可见,结构C非常利于实现可变长度较长的移位寄存器。
可变长度移位寄存器是非常有用的逻辑结构。对高速数据采集系统触发控制单元来说,应用优化后的可变长度移位寄存器可以提高其信噪比,改善其可靠性和灵活性。另外,采用可变长度移位寄存器可以减小死区时间,从而改善触发控制单元重复触发的性能。这些改善在本单位设备的实际应用中起到了良好的作用。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议