基于FPGA的可变长度移位寄存器优化设计

发布者:anluran最新更新时间:2011-07-25 关键字: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的移位寄存器的进位输出。

  

Spartan-3系列芯片的每个可配置逻辑块CLB

 

  

LUT配置成可寻址的移位寄存器

 

 

[page]

 

    2.1.2 应用示例

  利用Spartan-3系列芯片的一个CLB(相当于8个基本逻辑单元)就可以构成N=128的可变长度移位寄存器,如图5所示。作为对比,如果不调整FPGA芯片类型与移位寄存器结构类型的搭配,比如直接采用Altera Cyclone II芯片,按结构A实现N=128的可变长度移位寄存器,则需消耗169个基本逻辑单元(由Quartus II编译)。

  

利用Spartan-3系列芯片的一个CLB就可以构成N

 

  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的梯级。

  

M4K工作于移位寄存器模式时的结构

 

  例如,构造一个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非常利于实现可变长度较长的移位寄存器。

  可变长度移位寄存器是非常有用的逻辑结构。对高速数据采集系统触发控制单元来说,应用优化后的可变长度移位寄存器可以提高其信噪比,改善其可靠性和灵活性。另外,采用可变长度移位寄存器可以减小死区时间,从而改善触发控制单元重复触发的性能。这些改善在本单位设备的实际应用中起到了良好的作用。

关键字:FPGA  移位寄存器 引用地址:基于FPGA的可变长度移位寄存器优化设计

上一篇:基于FPGA的时统模块可靠性设计
下一篇:基于DSP的空间电压矢量控制在变频调速器上的应用

推荐阅读最新更新时间:2024-05-02 21:30

基于FPGA的UART设计
摘要: UART作为RS232协议的控制接口得到了广泛的应用,将UART的功能集成在FPGA芯片中,可使整个系统更为灵活、紧凑,减小整个电路的体积,提高系统的可靠性和稳定性。提出了一种基于FPGA的UART的实现方法,具体描述了发送、接收等模块的设计,恰当使用了有限状态机,实现了FPGA片上UART的设计,给出了仿真结果。 关键词: 通用异步收发器;串口通信;现场可编程逻辑器件;有限状态机 通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)可以和各种标准串行接口,如RS232和RS485等进行全双工异步通信,具有传输距离远、成本低、可靠性高等优点。一般UAR
[嵌入式]
基于<font color='red'>FPGA</font>的UART设计
FPGA核心知识详解(3):那些让FPGA初学者纠结的仿真
对于FPGA初学者而言,如何正确了解并理解FPGA的仿真是关键。应广大FPGA初学者和爱好者要求,电子发烧友网编辑根据多名在FPGA领域有过多年工作经验 的前辈介绍,特此为大家整理并分享以下关于FPGA各种仿真的简洁介绍。若大家有任何需要补充的或本文有任何不当之处,欢迎在评论中加以说明。同时也可加入电子发烧友网FPGA技术交流群(QQ:263281510)跟大家一起探讨,更欢迎大家加入 电子发烧友网论坛 参与互动。   初学者学习FPGA,必定会被它的各种仿真弄的晕头转向。比如,前仿真、后仿真、功能仿真、时序仿真、行为级仿真、RTL级仿真、综合后仿真、门级仿真、布局布线后仿真等。    Quartus和Modelsim软件的仿
[模拟电子]
<font color='red'>FPGA</font>核心知识详解(3):那些让<font color='red'>FPGA</font>初学者纠结的仿真
自动驾驶主流芯片:GPU、FPGA、ASIC
当前主流的 AI 芯片 主要分为三类, GPU 、 FPGA 、 ASIC 。GPU、FPGA均是前期较为成熟的芯片架构,属于通用型芯片。ASIC属于为AI特定场景定制的芯片。行业内已经确认 CPU 不适用于AI计算,但是在AI应用领域也是必不可少。 GPU方案 GPU与CPU的架构对比 CPU遵循的是冯·诺依曼架构,其核心是存储程序/数据、串行顺序执行。因此CPU的架构中需要大量的空间去放置存储单元(Cache)和控制单元(Control),相比之下计算单元(ALU)只占据了很小的一部分,所以CPU在进行大规模并行计 算方面受到限制,相对而言更擅长于处理逻辑控制。 GPU(GraphicsProcessing
[汽车电子]
自动驾驶主流芯片:GPU、<font color='red'>FPGA</font>、ASIC
后量子加密中不断发展的安全趋势
随着我们在日常生活中使用的技术不断快速发展,我们必须认识到并应对随之而来的风险——特别是在确保信息安全方面。 在这些技术进步和挑战中,有两个主要趋势脱颖而出:后量子加密(PQC)和网络弹性。 物联网生态系统的快速发展,部分是由于5G的兴起推,它创造了一个复杂且高度分布式的设备网络,同时也越来越容易受到网络攻击。因而利用PQC来确保系统既能实现网络安全又能抵御未来威胁的需求应运而生。PQC的目标是开发加密系统,抵御量子计算机和经典计算机产生的攻击,并且可以与现有的通信协议和网络一起运作。 在2023年嵌入式世界大会上,莱迪思举办了季度安全研讨会,邀请了Xiphera首席技术官兼联合创始人Kimmo Jarvinen博士、PQ
[嵌入式]
后量子加密中不断发展的安全趋势
基于ARM+FPGA的重构控制器设计
可重构技术是指利用可重用的软硬件资源,根据不同的应用需求,灵活地改变自身体系结构的设计方法。常规SRAM工艺的FPGA都可以实现重构,利用硬件复用原理,本文设计的可重构控制器采用ARM核微控制器作为主控制器,以FPGA芯片作为协处理器配合主控制器工作。用户事先根据需求设计出不同的配置方案,并存储在重构控制器内部的存储器中,上电后,重构控制器就可以按需求将不同设计方案分时定位到目标可编程器件内,同时保持其他部分电路功能正常,实现在系统灵活配置,提高系统工作效率。 1 SVF格式配置文件 很多嵌入式系统中都用到了FPGA/CPlD等可编程器件,在这些系统中利用SVF格式配置文件就可以方便地通过微控制器对可编程器件进行重新配置
[单片机]
基于ARM+<font color='red'>FPGA</font>的重构控制器设计
使用Theano,Python,PYNQ和Zynq开发定点Deep Recurrent神经网络
可编程逻辑(PLD)是由一种通用的集成电路产生的,逻辑功能按照用户对器件编程来确定,用户可以自行编程把数字系统集成在PLD中。经过多年的发展,可编程逻辑器件由70年代的可编程逻辑阵列器件 (PLD) 发展到目前的拥有数千万门的现场可编程阵列逻辑 (FPGA),随着人工智能研究的火热发展,FPGA的并行性已经在一些实时性很高的神经网络计算任务中得到应用。由于在FPGA上实现浮点数会耗费很多硬件资源,而定点数虽然精度有限,但是对于不同应用通过选择合适的字长精度仍可以保证收敛,且速度要比浮点数表示更快而且资源耗费更少,已经使其成为嵌入式AI和机器学习应用程序的理想选择。 最新的证明点是英国伯明翰大学电子电气和系统工程系的Yufeng
[嵌入式]
基于FPGA和USB2.0的高精度数据采集系统设计
  现代电子侦查技术要求能够对外部模拟信号进行精确提取和分析,从而对数据采集的精度提出了很高的要求,本文提出了一种以FPGA 作为主控制器的高精度500M 数据采集系统设计方法,详细地阐述了各硬件平台的具体构成。最后利用QUARTUS 内部的嵌入式逻辑分析仪(SignalTap ii)可以观察到被采集到的信号并且对数据的有效位数及性能进行简略分析。   0 引言   随着数字通信技术的逐步发展,高速数据采集系统已经逐步取代传统的数据采集系统,其广泛应用在众多场合。新一代 可编程逻辑 器件FPGA 都拥有较多的IO 端口以及强大的数据处理能力,这也为高速高精度数据采集系统的研发提供了基础条件。   1 工作原理   本文设
[嵌入式]
可编程逻辑在数字信号处理系统中的应用
摘要: 介绍了可编程逻辑器件在数字信号处理系统中的应用。并运用VHDL语言对采用Lattice公司的ispLSI1032E可编程逻辑器件所构成的乘法器的结构、原理及各位加法器的VHDL作了详细的描述。该乘法器的是大特点是节省芯片资源,而且其运算速度取决于输入的时钟频率。 关键词: 数字信号处理 乘法器VHDL PLD 1 引言 随着半导体技术的发展,可编程逻辑器件在结构、工艺、集成度、功能、速度和灵活性等方面有了很大的改进和提高,从而为高效率、高质量、灵活地设计数字系统提供了可靠性。CPLD或FPGA技术的出现,为DSP系统的设计又提供了一种崭新的方法。利用CPLD或FPGA设计的DSP系统具有良
[嵌入式]
可编程逻辑在数字信号处理系统中的应用
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved