原创 【原创】Synplify 综合“黑匣子”的方法(一)

2011-5-13 17:47 9935 18 18 分类: FPGA/CPLD

一,Synplify和“黑匣子”简介


       Synplify是业界领先的基于FPGA的ASIC原型验证综合工具,通过提供诸如团队设计、自动re-timing、快速的编译以及额外的特性来优化设计结果。除了具有B.E.S.T.引擎外,Synplify pro又加入了D.S.T.(Direct Synthesis Technology),SCOPE(Synthesis Constraint Optimization Environment),STAMP和多点优化等技术来满足设计者的需求。Synplify pro提供了和布局布线工具之间的native-link接口来完成Push-Button的流程,使用户只需要点击就可以完成所有的综合和布局布线的工作。基于Synplicety公司的B.E.S.T.引擎,Synplify Pro可以轻松综合数百万门的设计而不需要分割。


       综合器一般把与FPGA/CPLD硬件相关的底层模块和硬件原语、IP Core等都综合成黑盒子。在Synplify Pro中将某个模块综合成黑盒子的方法有两种:一是对该模块仅仅进行模块名称和端口声明,其功能实体为空,则Synplify Pro自动将之综合成黑盒子;第二种方法是使用综合约束条件,在SCOPE中属性(Attribute)设置页面或者HDL源代码中添加综合成黑盒子的属性,如下所示: 


                          


Verilog    /* synthesis syn_black_box */;    /* synthesis syn_black_box black_box_pad_pin="引脚名"*/


VHDL    attribute syn_black_box of bbox: component is true;    attribute black_box_pad_pin of 模块名: component is "引脚名";


    如果在设计中使用了如“CLKDLL”、“BUFG”等底层模块和硬件原语,一般需要综合成黑盒子。除了使用上述两种方法声明黑盒子外,Synplify Pro还为Xilinx/Altera器件专门作了模块声明文件,在源程序中直接使用“include”命令包含相应的器件族的模块声明文件,或者将相应器件族的模块声明文件加入到工程中,就可以直接将所用到的底层模块和硬件原语综合成黑盒子。这些模块声明文件存放在Synplify安装目录下的“lib\Xilinx”或者“lib\Altera”子目录下,以器件族分类,有Verilog和VHDL两种语言形式,使用非常方便。


 


二,使用Synplify综合黑匣子


下面我就使用一种方法为大家图文演示(使用Quartus 7.2 SP3 + Synplify 9.6.2)。


1,         首先用quartus生成Megafunction或者LPM,在目录下面会有2个文件产生,如我产生一个mux(verilog),生成了mux_3和mux_3_bb的2个特殊verilog文件。


2,         在Synplify中新建工程,导入源文件。在原来的文件的module上多加一个module,该module只是一个端口描述,如下图中的mux_3;最重要的是在模块名后面要加上“/* synthesis syn_black_box */”,这样Synplify在做综合的时候就不会综合这些硬件底层模块了。




 



其他部分的描述和普通模块的调用类似,写好对应端口即可,如下图所示:





 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
18
关闭 站长推荐上一条 /3 下一条