FPGA设计的几种思想与技巧_第1页
FPGA设计的几种思想与技巧_第2页
FPGA设计的几种思想与技巧_第3页
FPGA设计的几种思想与技巧_第4页
FPGA设计的几种思想与技巧_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGAA设计的的四种常常用思想想与技巧巧本文讨论论的四种种常用FFPGAA/CPPLD设设计思想想与技巧巧:乒乓乓操作、串并转转换、流流水线操操作、数数据接口口同步化化,都是是FPGGA/CCPLDD逻辑设设计的内内在规律律的体现现,合理理地采用用这些设设计思想想能在FFPGAA/CPPLD设设计工作作种取得得事半功功倍的效效果。 FPGAA/CPPLD的的设计思思想与技技巧是一一个非常常大的话话题,由由于篇幅幅所限,本本文仅介介绍一些些常用的的设计思思想与技技巧,包包括乒乓乓球操作作、串并并转换、流水线线操作和和数据接接口的同同步方法法。希望望本文能能引起工工程师们们的注意意,如果果能有意

2、意识地利利用这些些原则指指导日后后的设计计工作,将将取得事事半功倍倍的效果果!乒乓操作作“乒乓操操作”是是一个常常常应用用于数据据流控制制的处理理技巧,典典型的乒乒乓操作作方法如如图1所所示。 乒乓操作作的处理理流程为为:输入入数据流流通过“输输入数据据选择单单元”将将数据流流等时分分配到两两个数据据缓冲区区,数据据缓冲模模块可以以为任何何存储模模块,比比较常用用的存储储单元为为双口RRAM(DPRRAM)、单口口RAMM(SPPRAMM)、FFIFOO等。在在第一个个缓冲周周期,将将输入的的数据流流缓存到到“数据据缓冲模模块1”;在第22个缓冲冲周期,通通过“输输入数据据选择单单元”的的切换

3、,将将输入的的数据流流缓存到到“数据据缓冲模模块2”,同同时将“数数据缓冲冲模块11”缓存存的第11个周期期数据通通过“输输入数据据选择单单元”的的选择,送送到“数数据流运运算处理理模块”进进行运算算处理;在第33个缓冲冲周期通通过“输输入数据据选择单单元”的的再次切切换,将将输入的的数据流流缓存到到“数据据缓冲模模块1”,同同时将“数数据缓冲冲模块22”缓存存的第22个周期期的数据据通过“输输入数据据选择单单元”切切换,送送到“数数据流运运算处理理模块”进进行运算算处理。如此循循环。 乒乓操作作的最大大特点是是通过“输输入数据据选择单单元”和和“输出出数据选选择单元元”按节节拍、相相互配合合

4、的切换换,将经经过缓冲冲的数据据流没有有停顿地地送到“数数据流运运算处理理模块”进进行运算算与处理理。把乒乒乓操作作模块当当做一个个整体,站站在这个个模块的的两端看看数据,输输入数据据流和输输出数据据流都是是连续不不断的,没没有任何何停顿,因因此非常常适合对对数据流流进行流流水线式式处理。所以乒乒乓操作作常常应应用于流流水线式式算法,完完成数据据的无缝缝缓冲与与处理。 乒乓操作作的第二二个优点点是可以以节约缓缓冲区空空间。比比如在WWCDMMA基带带应用中中,1个个帧是由由15个个时隙组组成的,有有时需要要将1整整帧的数数据延时时一个时时隙后处处理,比比较直接接的办法法是将这这帧数据据缓存起起

5、来,然然后延时时1个时时隙进行行处理。这时缓缓冲区的的长度是是1整帧帧数据长长,假设设数据速速率是33.844Mbpps,11帧长110mss,则此此时需要要缓冲区区长度是是384400位位。如果果采用乒乒乓操作作,只需需定义两两个能缓缓冲1个个时隙数数据的RRAM(单口RRAM即即可)。当向一一块RAAM写数数据的时时候,从从另一块块RAMM读数据据,然后后送到处处理单元元处理,此此时每块块RAMM的容量量仅需225600位即可可,2块块RAMM加起来来也只有有51220位的的容量。另外,巧巧妙运用用乒乓操操作还可可以达到到用低速速模块处处理高速速数据流流的效果果。如图图2所示示,数据据缓冲

6、模模块采用用了双口口RAMM,并在在DPRRAM后后引入了了一级数数据预处处理模块块,这个个数据预预处理可可以根据据需要的的各种数数据运算算,比如如在WCCDMAA设计中中,对输输入数据据流的解解扩、解解扰、去去旋转等等。假设设端口AA的输入入数据流流的速率率为1000Mbbps,乒乒乓操作作的缓冲冲周期是是10mms。以以下分析析各个节节点端口口的数据据速率。 A端口处处输入数数据流速速率为1100MMbpss,在第第1个缓缓冲周期期10mms内,通通过“输输入数据据选择单单元”,从从B1到到达DPPRAMM1。BB1的数数据速率率也是1100MMbpss,DPPRAMM1要在在10mms内

7、写写入1MMb数据据。同理理,在第第2个110mss,数据据流被切切换到DDPRAAM2,端端口B22的数据据速率也也是1000Mbbps,DDPRAAM2在在第2个个10mms被写写入1MMb数据据。在第第3个110mss,数据据流又切切换到DDPRAAM1,DDPRAAM1被被写入11Mb数数据。 仔细分析析就会发发现到第第3个缓缓冲周期期时,留留给DPPRAMM1读取取数据并并送到“数数据预处处理模块块1”的的时间一一共是220mss。有的的工程师师困惑于于DPRRAM11的读数数时间为为什么是是20mms,这这个时间间是这样样得来的的:首先先,在在在第2个个缓冲周周期向DDPRAAM2

8、写写数据的的10mms内,DDPRAAM1可可以进行行读操作作;另外外,在第第1个缓缓冲周期期的第55ms起起(绝对对时间为为5mss时刻),DPPRAMM1就可可以一边边向5000K以以后的地地址写数数据,一一边从地地址0读读数,到到达100ms时时,DPPRAMM1刚好好写完了了1Mbb数据,并并且读了了5000K数据据,这个个缓冲时时间内DDPRAAM1读读了5mms;在在第3个个缓冲周周期的第第5mss起(绝绝对时间间为355ms时时刻),同同理可以以一边向向5000K以后后的地址址写数据据一边从从地址00读数,又又读取了了5个mms,所所以截止止DPRRAM11第一个个周期存存入的数

9、数据被完完全覆盖盖以前,DDPRAAM1最最多可以以读取220mss时间,而而所需读读取的数数据为11Mb,所所以端口口C1的的数据速速率为:1Mbb/200ms=50MMbpss。因此此,“数数据预处处理模块块1”的的最低数数据吞吐吐能力也也仅仅要要求为550Mbbps。同理,“数数据预处处理模块块2”的的最低数数据吞吐吐能力也也仅仅要要求为550Mbbps。换言之之,通过过乒乓操操作,“数数据预处处理模块块”的时时序压力力减轻了了,所要要求的数数据处理理速率仅仅仅为输输入数据据速率的的1/22。 通过乒乓乓操作实实现低速速模块处处理高速速数据的的实质是是:通过过DPRRAM这这种缓存存单元

10、实实现了数数据流的的串并转转换,并并行用“数数据预处处理模块块1”和和“数据据预处理理模块22”处理理分流的的数据,是是面积与与速度互互换原则则的体现现! 串并转换换设计技技巧串并转换换是FPPGA设设计的一一个重要要技巧,它它是数据据流处理理的常用用手段,也也是面积积与速度度互换思思想的直直接体现现。串并并转换的的实现方方法多种种多样,根根据数据据的排序序和数量量的要求求,可以以选用寄寄存器、RAMM等实现现。前面面在乒乓乓操作的的图例中中,就是是通过DDPRAAM实现现了数据据流的串串并转换换,而且且由于使使用了DDPRAAM,数数据的缓缓冲区可可以开得得很大,对对于数量量比较小小的设计计

11、可以采采用寄存存器完成成串并转转换。如如无特殊殊需求,应应该用同同步时序序设计完完成串并并之间的的转换。比如数数据从串串行到并并行,数数据排列列顺序是是高位在在前,可可以用下下面的编编码实现现: prll_teemp=pprl_temmp,ssrl_in; 其中,pprl_temmp是并并行输出出缓存寄寄存器,ssrl_in是是串行数数据输入入。对于于排列顺顺序有规规定的串串并转换换,可以以用caase语语句判断断实现。对于复复杂的串串并转换换,还可可以用状状态机实实现。串串并转换换的方法法比较简简单,在在此不必必赘述。 流水线操操作设计计思想首先需要要声明的的是,这这里所讲讲述的流流水线是是

12、指一种种处理流流程和顺顺序操作作的设计计思想,并并非FPPGA、ASIIC设计计中优化化时序所所用的“PPipeelinningg”。 流水线处处理是高高速设计计中的一一个常用用设计手手段。如如果某个个设计的的处理流流程分为为若干步步骤,而而且整个个数据处处理是“单单流向”的的,即没没有反馈馈或者迭迭代运算算,前一一个步骤骤的输出出是下一一个步骤骤的输入入,则可可以考虑虑采用流流水线设设计方法法来提高高系统的的工作频频率。 流水线设设计的结结构示意意图如图图3所示示。其基基本结构构为:将将适当划划分的nn个操作作步骤单单流向串串联起来来。流水水线操作作的最大大特点和和要求是是,数据据流在各各个

13、步骤骤的处理理从时间间上看是是连续的的,如果果将每个个操作步步骤简化化假设为为通过一一个D触触发器(就是用用寄存器器打一个个节拍),那么么流水线线操作就就类似一一个移位位寄存器器组,数数据流依依次流经经D触发发器,完完成每个个步骤的的操作。流水线线设计时时序如图图4所示示。 流水线设设计的一一个关键键在于整整个设计计时序的的合理安安排,要要求每个个操作步步骤的划划分合理理。如果果前级操操作时间间恰好等等于后级级的操作作时间,设设计最为为简单,前前级的输输出直接接汇入后后级的输输入即可可;如果果前级操操作时间间大于后后级的操操作时间间,则需需要对前前级的输输出数据据适当缓缓存才能能汇入到到后级输

14、输入端;如果前前级操作作时间恰恰好小于于后级的的操作时时间,则则必须通通过复制制逻辑,将将数据流流分流,或或者在前前级对数数据采用用存储、后处理理方式,否否则会造造成后级级数据溢溢出。 在WCDDMA设设计中经经常使用用到流水水线处理理的方法法,如RRAKEE接收机机、搜索索器、前前导捕获获等。流流水线处处理方式式之所以以频率较较高,是是因为复复制了处处理模块块,它是是面积换换取速度度思想的的又一种种具体体体现。 数据接口口的同步步方法数据接口口的同步步是FPPGA/CPLLD设计计的一个个常见问问题,也也是一个个重点和和难点,很很多设计计不稳定定都是源源于数据据接口的的同步有有问题。 在电路

15、图图设计阶阶段,一一些工程程师手工工加入BBUFTT或者非非门调整整数据延延迟,从从而保证证本级模模块的时时钟对上上级模块块数据的的建立、保持时时间要求求。还有有一些工工程师为为了有稳稳定的采采样,生生成了很很多相差差90度度的时钟钟信号,时时而用正正沿打一一下数据据,时而而用负沿沿打一下下数据,用用以调整整数据的的采样位位置。这这两种做做法都十十分不可可取,因因为一旦旦芯片更更新换代代或者移移植到其其它芯片片组的芯芯片上,采采样实现现必须从从新设计计。而且且,这两两种做法法造成电电路实现现的余量量不够,一一旦外界界条件变变换(比比如温度度升高),采样样时序就就有可能能完全紊紊乱,造造成电路路

16、瘫痪。 下面简单单介绍几几种不同同情况下下数据接接口的同同步方法法: 11. 输输入、输输出的延延时(芯芯片间、PCBB布线、一些驱驱动接口口元件的的延时等等)不可可测,或或者有可可能变动动的条件件下,如如何完成成数据同同步? 对于数据据的延迟迟不可测测或变动动,就需需要建立立同步机机制,可可以用一一个同步步使能或或同步指指示信号号。另外外,使数数据通过过RAMM或者FFIFOO的存取取,也可可以达到到数据同同步目的的。把数据存存放在RRAM或或FIFFO的方方法如下下:将上上级芯片片提供的的数据随随路时钟钟作为写写信号,将将数据写写入RAAM或者者FIFFO,然然后使用用本级的的采样时时钟(

17、一一般是数数据处理理的主时时钟)将将数据读读出来即即可。这这种做法法的关键键是数据据写入RRAM或或者FIIFO要要可靠,如如果使用用同步RRAM或或者FIIFO,就就要求应应该有一一个与数数据相对对延迟关关系固定定的随路路指示信信号,这这个信号号可以是是数据的的有效指指示,也也可以是是上级模模块将数数据打出出来的时时钟。对对于慢速速数据,也也可以采采样异步步RAMM或者FFIFOO,但是是不推荐荐这种做做法。 数据是有有固定格格式安排排的,很很多重要要信息在在数据的的起始位位置,这这种情况况在通信信系统中中非常普普遍。通通讯系统统中,很很多数据据是按照照“帧”组组织的。而由于于整个系系统对时

18、时钟要求求很高,常常常专门门设计一一块时钟钟板完成成高精度度时钟的的产生与与驱动。而数据据又是有有起始位位置的,如如何完成成数据的的同步,并并发现数数据的“头头”呢? 数据的同同步方法法完全可可以采用用上面的的方法,采采用同步步指示信信号,或或者使用用RAMM、FIIFO缓缓存一下下。找到到数据头头的方法法有两种种,第一一种很简简单,随随路传输输一个数数据起始始位置的的指示信信号即可可,对于于有些系系统,特特别是异异步系统统,则常常常在数数据中插插入一段段同步码码(比如如训练序序列),接接收端通通过状态态机检测测到同步步码后就就能发现现数据的的“头”了了,这种种做法叫叫做“盲盲检测”。 上级数

19、据据和本级级时钟是是异步的的,也就就是说上上级芯片片或模块块和本级级芯片或或模块的的时钟是是异步时时钟域的的。 前面在输输入数据据同步化化中已经经简单介介绍了一一个原则则:如果果输入数数据的节节拍和本本级芯片片的处理理时钟同同频,可可以直接接用本级级芯片的的主时钟钟对输入入数据寄寄存器采采样,完完成输入入数据的的同步化化;如果果输入数数据和本本级芯片片的处理理时钟是是异步的的,特别别是频率率不匹配配的时候候,则只只有用处处理时钟钟对输入入数据做做两次寄寄存器采采样,才才能完成成输入数数据的同同步化。需要说说明的是是,用寄寄存器对对异步时时钟域的的数据进进行两次次采样,其其作用是是有效防防止亚稳稳态(数数据状态态不稳定定)的传传播,使使后级电电路处理理的数据据都是有有效电平平。但是是这种做做法并不不能保证证两级寄寄存器采采样后的的数据是是正确的的电平,这这种方式式处理一一般都会会产生一一定数量量的错误误电平数数据。所所以仅仅仅适用于于对少量量错误不不敏感的的功能单单元。 为了避免免异步时时钟域产产生错误误的采样样电平,一一般使用用RAMM、FIIFO缓缓存的方方法完成成异步时时钟域的的数据转转换。最最常用的的缓存单单元是DDPRAAM,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论