FPGA应用设计中一种崭新的硬宏开发流程_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、fpga应用设计中一种崭新的硬宏开发流程在现今应用举行芯片设计的领域,已经用法hdl语言以及拥有强大功能的规律综合工具来举行设计。同时,高速电路也越来越被普遍用法,这一趋势使得芯片设计工程师把眼光越来越多的投向对后端布局布线的控制,由于对于高速设计,精细的后端控制是保障电路牢靠运行的重要条件。在实践中,精细的后端控制也越来越显出它的重要性,同时要求设计者投入到这个方面的时光也越来越多。问题的提出实际的应用中,因为综合工具的介入,由它所输出的网表,有时候是十分难被设计者所理解的。这主要由三个方面的缘由引起:1. 网表中除了在源程序中的寄存器能够被显然标记以外,其它的组合规律被映射(map)到lu

2、t中,但综合工具并没有提供一种很有效且故意义的方式举行对组合规律的命名,这使得设计者不简单找到组合规律的对应关系;2. 网表中元件(component)之间的衔接变得十分复杂;3. 因为综合工具的运用,会“优化”掉一些它认为是“冗余”的规律或增强一些它认为是“须要”的规律。上述因素挺直影响到后端的布局布线控制。固然,设计者可以在约束文件(ucf)中用法用户套(u_set)、层次套(hu_set)以及设置一个设计层次中元件相对的距离等措施来做一些后端控制。这样的设置可以很好的控制寄存器的布局和布线,但并不能够很好地完成对组合电路的布局布线控制。很显然,对于高速设计,这样的控制明显是十分须要的。这

3、使得我们要找到一种更好的办法来控制组合电路。这个新办法应当满足以下两个条件。1. 对于高速设计,当通常控制办法难以达到要求的时候,这个新办法应当能够彻低控制模块内部的布局布线;2. 用这个新办法建立的模块在上层调用的时候所采纳的模型应当很简单建立,并且很简单保证它和建立模块的功能上的全都性。满足这两个要求的办法就是建立宏模块,更精确的说是建立硬件宏模块,简称硬宏。传统的建立硬宏的方式是在提供的fpga editor中挺直在fpga内部来建立目标电路,然后把它存为一个宏文件。然后,在上层举行调用。这种办法的弊端是自不待言的。1. 要在这样一个“艰苦”的环境下建立一个硬宏是一件十分棘手的事情。设计

4、者必需进入到slice内部,来控制一个slice内部的器件挑选和器件之间的连线,同时也正因为它十分的棘手,导致了设计很简单出错;2. 这样设计出来的宏的功能验证十分繁琐;3. 要为这样的宏建立仿真模型也很棘手,普通的办法是人为的挺直编写一个行为仿真模型,然后在上层设计中调用这个仿真模型,然而要保证仿真模型和宏之间的全都性也是一件不太简单的事情。另外还有一种用法xilinx的foundation建立宏的办法,这个办法在进一步研究部分将会提到它的不足之处。解决办法鉴于以上的缘由,现在采纳另外一个新的流程(图1)来设计并建立一个宏。第一步,为了使设计者不必进入到slice里面举行电路的设计,而有一个

5、很好的设计环境,用法aldec公司的active-hdl来举行宏内部电路的输入。在active-hdl中,有一个库管理(library manager)功能,在这个库管理中,有无数子库,每个子库都有它不同的用途。在这些子库中,schematic子库特地为xilinx提供图形输入的。设计者调用这类库的元件来建立宏的内部电路。这一步需要注重:1时钟进入芯片的时候,应当通过bufgp进入。通过bufgp把时钟引入全局时钟网络。bufgp并不是一个物理上对应的元件,xilinx只是为了便利设计者的调用,而把ibufg和bufg在表示上合成一个元件。但当用到dll或其他时钟衔接方式的时候,应当把bufg

6、p拆开,单独的用法ibufg和bufg;2在各个pin的位置,要加上相应电气参数的ibuf或obuf;3. 剧烈建议对slice里面的元件举行具体的了解;4对于寄存器,寄存器和组合规律之间的连线,组合规律和组合规律之间的连线,都用法故意义的名字,以便利在下端工具中查看电路时,与上端的对应;5在设计的时候应当把关键路径记录下来,在下端检查的时候要防止浮现组合电路竞争。其次步,挺直对这个电路举行功能仿真。schematic库中的元件可以挺直支持基于门级的功能仿真。挺直对这个电路图仿真可以从一开头就保证宏的功能正确性。active-hdl提供了一个十分友好的仿真界面。它可以把仿真波形举行存储,而且,

7、在以后的仿真中可以把第一次仿真所存储的输入向量波形当成激励。这样的做法大大地提高了效率,由于不用再为了一个小模块而特地编写它的测试基准(test bench)。第三步,由active-hdl挺直输出edif网表,在这个网表中记录了宏的内部电路信息。active-hdl可以把图形转换成三种语言形式的网表,、 hdl和edif。而其他的上层输入工具普通只能输出两种,vhdl和verilog hdl,如 graphics的hdl design series。挑选diagram菜单中的set target hdl选项来实现这一语言的切换。请注重,set target hdl选项惟独在图形输入方式的时候

8、才浮现在diagram菜单中。第四步,把active-hdl产生的这个edif网表挺直交给xilinx的后端工具举行处理。这样,就绕开了综合工具的干预,使得精细的下端控制成为可能。值得注重的是,因为绕开了综合工具,无数综合工具本来要做的工作就必需由设计者自己去做。这就是为什么第一步提到要添加相应电气参数的ibuf和obuf以准时钟引脚要添加全局时钟缓冲器(bufg)的缘由。假如在第一步中遗忘了这一点,会挺直导致后端的映射工具把设计中的电路所有清空,然后报告出错。后端工具只需要举行三个步骤的处理就可以了,即翻译、映射以及布局和布线,其他的处理都不需要。处理完后会生成一些关键的文件,分离是proj

9、ect_name.ngd、project_name.ncd和map.ncd。第五步,把处理得到的project_name.ncd文件拿到fpga editor中举行宏的生成。注重在用法fpga editor打开这个文件的时候,应当挑选read write模式进入。进入之后,首先应当做的工作就是把设计中全部的ibuf和obuf所有删除。这可以在list窗口来举行。在删除的同时,与这些ibuf和obuf衔接的连线也被同步删除。这样一来,就只剩下了功能部分。值得一提的是,在第四步中映射对电路举行处理的时候会完成把组合电路映射到lut的功能。但因为在第一步中对组合电路和组合电路之间的连线用法了故意义的

10、名称命名,使得在这一步中要找到原始电路图中的对应并不难。这一点是用法综合工具流程所不能实现的。设计者通过名字的对应,就找到在第一步中记录的关键路径,通过用法delay功能来显示线路延迟,从而推断电路是否可以工作。假如不可,用法fpga editor中的相应工具来举行路径的重新布线,这个布线可以用法人工布线。在这一步中严禁举行规律修改,而只允许举行布线修改。详细怎么用法fpga editor可以参考fpga editor用户指南。当完成了修改过后,把ncd文件另存为nmc文件,这样就生成了需要的硬宏。第六步,生成宏的规律仿真模型。再回到active-hdl中,打开宏的电路图,用法set targ

11、et hdl的语言切换功能,把图形转成verilog hdl网表或是vhdl网表。这个网表就可以作为宏的仿真模型。由于这个网表是由标准hdl形成,那么它可以在任何hdl仿真器中调用,如和vcs等。至此囫囵流程的介绍所有完成。进一步的研究关于流程的替代计划。实际上,囫囵流程似乎用xilinx的foundation也能完成。但是,有一个关键的步骤foundation是不能完成的,那就是foundation不能按照电路图输出基于verilog hdl和vhdl的仿真模型,这样挺直影响了宏的仿真通用性。另外,foundation自己提供的仿真环境又相当不完美。关于仿真模型和宏的功能全都性。因为仿真模型和宏的网表都来自于一个电路图,这样从上层保证了两者的全都性。另外,在第五步中,严禁举行规律修改,又进一步的保证两者的功能全都性,排解其次次建模的可能,从而把人为的错误减到最低。关于彻低控制后端布局布线。在fpga editor中,设计者可以按照上下层名称对应来确定关键路径,从而举行彻低人为的布局布线控制,这就是在第一步中用法故意义名称的缘由所在。很显然的一点,这个流程

温馨提示

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

评论

0/150

提交评论