FPGA设计基础.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设计基础

一、设计概念 1.设计入口 Quartus II支持原理图和HDL语言的输入。原理图更适合简单的设计,HDL语言适合复 杂的设计。但要注意,如果想使用第三方的综合工具,就必须用HDL语言。 Quartus II软件的文本编辑器,可以插入很多语言相关的模板,这个功能不错。 选择综合工具:Altera支持很多第三方的综合工具,个人比较喜欢用SynplifyPro。这 些工具生成.edf或者.vqm文件,然后QuartusII再进行布局布线。 SOPC生成:Altera的SOPC功能很强大。 IP:Altera和第三方合作伙伴提供了很多的IP,可以让设计变得更快捷。特别是Altera 提供的,可以直接试用。对于一些FPGA内部的资源模块,通常既可以直接调用Quartus II的ip核,也可以用HDL语言来描述,比如RAM资源。 宏功能(Megafunction):ALtera封装了很多资源和模块,用Megafunction的形式给用 户调用,只用设置一些参数,就可以正常使用这些模块了。 2.设计建议 1)同步设计:setup time和hold time的充分保证,能减少毛刺等的干扰。 使用Cyclone III I/O的输入寄存器(注意,不是普通的LE),这样芯片的输入信号能更好 的滤除毛刺。需要设置”Fast Input Rgedister”,来使用该寄存器。 FPGA内部路径的延迟是不确定的,会在设计中因为每次布局布线不同而改变,会在使用中因为温度,电压等因素改变,还会因为工艺的差异而改变。为了增加设计的稳定性,尽量提高时序分析时路径的余量。虽然时序分析已经是按芯片在最差状况下的时序特性来分析,但多留一点余量还是有好处。 2)时钟:时钟在同步设计中是非常重要的。 (a)时钟当然得用专用时钟引脚输入,用普通I/O会导致更严重的时钟偏移。高时钟偏移会导致hold time违规。时钟在芯片内部会使用全局时钟网络,全局异步复位信号也可以使用全局时钟网络。全局时钟网络能保证信号1点到多点的相同延迟。也就是说,某个信号,从输入引脚,通过全局时钟网络,到内部的各个寄存器,虽然走的是不同路径,但这些路径的延迟是一样的。 (b)组合逻辑不能处理毛刺,对组合逻辑的输入信号,用高频时钟过滤毛刺,对组合逻辑的输出信号,也可以用高频时钟过滤毛刺。 (c)使用PLL,可以对时钟分频。PLL还可以精确控制输出时钟的相位。 (d)使用PLL对时钟相位改变,比使用非门效果更好。 (e)对于一个PLL,可以设置一个主时钟和一个备用时钟。 (f)建议使用Altera提供的专门模块altclkcrtl来实现门控时钟。如果只是想控制输出的稳态,可以对输入加上ena信号,这样还是保持了同步设计。门控时钟和非门控时钟之间是非同步的。门控时钟的控制信号,必须滤除毛刺,否则会影响输出的时钟。对时钟进行门控的位置尽量靠近时钟源,可以减少时钟延迟。 3.芯片级的复位 Cyclone III芯片,支持芯片级的复位,包括清除M9K中的内容。需要开启DEV_CLRn 引脚功能。该引脚默认为普通I/O。 4.寄存器上电电平 可以设置寄存器上电时是高电平还是低电平。当然默认是低电平。通过设置Power-Up Level参数实现。 5.设计约束 Quartus II提供了设计约束检查功能,通过该检查,能提高设计的可靠性。检查包括时 钟,复位,异步设计等。该项功能默认没有开启。 6.分层和基于团队的设计 增量编译,可以减少设计迭代需要的时间,减少时序收敛需要的时间。对设计分区(分 割),是增量编译的基础。如果用第三方的综合工具,需要生成若干独立的.vqm或者.edf文件。 顶层的各个模块之间,最好只有互连线,而没有任何逻辑,逻辑都应包含在各个模块内 部。 时序预算和资源分配:模块内部的时序路径可以单独优化好。但如果是跨分区的时序路 径,只能在集成后优化。这些时序路径可以通过加上约束来达到要求。资源的分配也要提前计算好,以免集成后出现冲突。除了常见的资源,注意全局时钟资源也是有限的。 计划从底向上和基于团队的流程:在进行底层设计前,必须要知道顶层的相关信息,包 括引脚分配,物理约束和时序要求等。Quartus II提供了一些脚本(Generate bottom-up design partition scripts)来实现顶层信息向底层的传递。 可以通过LogicLock实现对设计在物理上分区。通常对时序要求很难达到的模块,才进 行LogicLock。对一般模块进行LogicLock反而降低了布局的灵活性。Quartus II的Chip Planner功能,可以精确到对寄存器进行布局,估算物理延迟,观察模块间的连接。 7、功耗优化 时序约束比功耗优化的优先级要高,得先满足前者再考虑后者。软件包

文档评论(0)

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

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

1亿VIP精品文档

相关文档