FPGA设计技巧2.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA设计技巧2

FPGA设计技巧 FPGA设计原则与常用思想 ? FPGA设计技巧 面积与速度折衷原则 ??? 面积和速度是ASIC芯片设计中一对相互制约、影响成本和性能的指标,贯穿FPGA设计的始终。在FPGA设计中,面积是指一个设计消耗的FPGA内部逻辑资源的数量,可以用消耗的触发器和查找表的个数或者是等效逻辑门数来衡量;速度是指一个设计在FPGA上稳定运行时所能达到的最高频率,由设计时序状态决定。 ??? 关于面积和速度的折衷,应在满足设计时序和工作频率要求的前提下,占用最小的芯片面积;或者在所规定的面积下,使得设计的时序余量最大,能够在更高的频率上稳定运行。通常,在资源足够的情况下,更多是选择速度的最优,这也是FPGA的特点。在具体设计中,应根据具体性能指标要求,在保证系统功能和性能的同时,降低资源消耗从而降低功耗和成本。 ??? 硬件原则 ??? 第二个原则是硬件原则。 ??? 首先,要注意FPGA的逻辑设计所采用的硬件描述语言VHDL或Verilog与软件语言C和C++有本质区别,在使用硬件描述语言进行设计时,不应片面追求代码的简洁。 ??? 其次,要采用正确的编码方法。要对所需实现的硬件电路的结构和相互连接有清晰的理解和构想,然后再用适当的VHDL语言表达出来。实际上综合软件对所写的代码在进行推论的时候,得到的硬件结果会因编码方式的不会而不同,直接影响硬件的实现。 ??? 系统原则 ??? 第三个原则是系统原则。FPGA作为硬件系统设计,应该对设计全局进行宏观上的合理安排,包括逻辑功能模块划分、时钟域信号的产生和驱动、模块复用、时序或引脚约束、面积速度折衷等。这些系统上的考虑不仅关系到是否能够最大程度地发挥项目成员的协同设计能力,而且直接决定着设计的综合、实现效果和相关的操作时间。 ??? 模块化设计是系统原则的一个很好体现,它是自顶向下、模块划分、分工协作设计思路的集中体现,是大型复杂系统的推荐设计方法。图1是模块化设计的简单流程。 ??? 同步原则 ??? 在设计电路时,可以有异步电路和同步电路两种实现方法。异步电路使用组合逻辑电路实现,没有统一的时钟信号,容易产生毛刺和竞争冒险;同步时序电路使用组合逻辑和触发器实现电路功能,主要信号和输出信号都由时钟驱动触发器产生,能够避免毛刺,信号稳定。 ??? ??? ·从资源使用方面考虑,推荐使用同步设计。虽然在ASIC设计中同步电路比异步电路占用的面积大,但是在FPGA中,是以逻辑单元衡量电路面积的,所以同步设计并不比异步设计浪费资源。 ??? ·从延迟设计方面考虑,异步电路的延时靠门延时来实现,比较难预测;同步电路使用计数器或触发器实现延时。 ??? ·同步设计时钟信号的质量和稳定性决定了同步时序电路的性能,FPGA的内部有专用的时钟资源,如全局时钟布线资源、专用的时钟管理模块DUL、PLL等。 ??? ·目前商用的FPGA都是面向同步的电路设计而优化的,同步时序电路可以很好地避免毛刺,提倡在设计中全部使用同步逻辑电路。特别注意,不同的时钟域的接口需要进行同步。 ?? ?FPGA设计的技巧 ??? 乒乓操作 ??? 图2是乒乓操作流程图。从图中可以看出,数据经过两个缓冲模块,在向缓冲模块1输入数据的时候,缓冲模块2的数据会送到下一级进行处理,从外部看数据流没有停顿。所以乒乓操作能够提高处理速度。 ??? ??? 实际上,乒乓操作是用一种低速模块来处理高速数据流,即用两个缓冲模块实现了串并转换,用两个预处理模块并行,利用面积换速度。 ??? 串并转换 ??? 串并转换是FPGA设计的一个重要技巧,是数据流处理的常用手段,也是面积与速度互换思想的直接体现。串并转换的实现方法多种多样,根据数据的排序和数量要求,可以选用以下方式:小的设计用寄存器、数据量比较大的用ROM、复杂的串并转换用状态机,或者直接利用功能模块来实现。 ??? 流水线操作 ??? 流水线操作是高速设计中一个经常用到的设计手段。如果某个数据的处理流程分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以采用流水线设计方法提高系统的工作频率。 ??? ·流水线设计时,要对时序进行合理安排,每个操作步骤的划分要合理,仔细考虑各个步骤间的数据流量。 ??? ·如果前级操作时间恰好等于后级操作时间,设计最为简单,前级直接输出到后级输入就行了。 ??? ·如果前级操作时间大于后级操作时间,后级会经常空闲,可以对前级的数据进行适当缓存,再输出到后级的输入端。 ??? ·如果前级操作时间小于后级操作时间,必须通过复制逻辑,将数据流分流和并行预处理,或者在前级对数据采用存储、后处理方式、否则会造成后级数据溢出。所以怎样平衡各个模块的处理时间,在设计中要给予适当的考虑。 ?

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档