FPGA手工布局的原因、方法、工具和差异_第1页
FPGA手工布局的原因、方法、工具和差异_第2页
FPGA手工布局的原因、方法、工具和差异_第3页
全文预览已结束

下载本文档

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

文档简介

FPGA手工布局的原因、方法、工具和差异Q1.为啥要手工布局?

A1.首先人比机器更聪明,更了解自己设计的需求和结构。其次在关键路径上的手工布局能提高时序性能,使不满足要求变成满足要求。Q2.有没有可能整个设计都用手工布局?

A2.从原理上来说是没有不可能的,但这是没有必要的。我们只要保证最关键的路径能满足时序要求即可。Q3.手工布局牵涉哪些技术?

A3.RPM-RelativelyPlacedMacros(其实就是使用RLOC约束限制布局的相对关系)

DIRT-DirectedRouting(不仅限制位置,还限制走线)

HardMacro-硬核,记录所有信息Q4.HardMacro和RPM+DIRT的功能有什么区别吗?

A4.RPM位置基于Slice,Slice-basedRPM可以在Slice所有范围内任意布局,不以CLB的位置作为分界。Grid-basedRPM只是加入了BRAM乘法器之类的支持,原则上也跟CLB边界无关。而HardMacro只有在完全相同的结构内在可以移动,所以他的边界至少是CLB,某些时候还需要考虑BRAM和乘法器的位置。Q5.什么是Slice-basedRPM和Grid-basedRPM?

A5.Slice-based方法为整个器件内的slice设定坐标。看上去两个相邻的坐标位置实际上可能中间隔着一个BRAM。Grid-based则将整个器件统一编址,坐标系统看上去可能在某些地方会有缺少,但是不会造成上面提到的那种现象。Q6.什么时候用Slice-basedRPM,什么时候又用Grid-basedRPM呢?

A6.如果RPM中包含既有Slice又有乘法器、DSP48、BRAM等器件的时候,就用Grid。如果RPM中只含有Slice,那么两种都可以使用,但是用Slice-based更简单一点,因为他的X和Y坐标都是逐个增加的。Q7.有什么工具可以用来做RPM?

A7.FloorPlanner和PlanAhead都可以生成包含RPM的UCF。我们也可以自己将一些约束添加到VHDL/Verilog中去。RPM规模较小时,后者更方便。用FPGAEditor生成DIRT约束时,也会同时产生相关路径RPM的约束。Q8.通常RPM都是多大规模?

A8.通常RPM只是规定关键路径的位置,因此不会很大。比如3-5个寄存器之间的位置关系、BRAM和输出数据的第一级寄存器的位置关系等等,这些都不涉及到很多的元件。当然FloorPlanner可以把整个已布局的设计都导出成RPM,但个人以为没多大用处。Q9.用FloorPlanner建RPM的流程是什么?

A9.参见Xapp422Q10.用PlanAhead建RPM的流程是什么?

A10.导出Pblock就行。详细文档可以查阅PlanAheadUserGuide。Q11.手动写RPM的约束会很难吗?

A11.其实更简单更方便。一个例子:(*RLOC="X1Y2"*)

rege_reg;另一个例子:(*RLOC="X0Y1"*)

FDCPE#(

.INIT(1'b0)//Initialvalueofregister(1'b0or1'b1)

)FDCPE_a(

.Q(a_reg),//Dataoutput

.C(clk),//Clockinput

.CE(1'b1),//Clockenableinput

.CLR(reset),//Asynchronousclearinput

.D(a),//Datainput

.PRE(1'b0)//Asynchronoussetinput

);Q12.RPM的语法是什么?

A12.最基本的就是RLOC约束的用法。参考ConstraintGuide.Q13.RPM有没有什么辅助约束?

A13.RLOC_ORIGIN和RLOC_RANGE可以规定把某个RPM放在设计中的某个位置。RPM可以建组(H_SET,U_SET,HU_SET)。几个寄存器放在一个Slice里的时候,可以用BEL规定某个寄存器的位置,甚至还可以用LOCK_PINS约束规定某个寄存器IO的位置。这些约束的定义都在ConstraintGuide中。Q14.怎么做DIRT呢?

A14.打开FPGAEditor,打开布局布线好的ncd文件,选择Tools-->DirectedRoutingConstraints...,选中关心的网线,生成UCF或将约束显示在FPGAEditorConsole中,然后复制到HDL代码或UCF中。更详细的流程参考ConstraintGuide-->DIRT.Q15.怎么做HardMacro呢?

A15.还是用FPGAEditor。将NCD存成NMC,删除不关心的逻辑,包括所有IO。与外部逻辑交互的端口通过Edit-->AddHardmacroExternalPin添

温馨提示

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

评论

0/150

提交评论