|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Xilinx CORE Generator心得 4 B# S& T, Q0 b3 e. M
/ M/ n6 C8 Z2 P9 q4 O" ^, C- t5 q8 x--VHDL Black Box : t4 J T8 ^5 |7 E5 d( m2 \2 G
component myadder8 ! ] D( @& t. R7 {* S; g5 B/ Q
port (
9 f( F+ L& |+ N" @' w9 H, N. g' p A: IN std_logic_VECTOR(7 downto 0); ) z8 a& V4 m: X4 m- ?1 \( e5 e! o6 y
B: IN std_logic_VECTOR(7 downto 0); . X; f2 B9 R* F4 n- ?
C_IN: IN std_logic; + i: Z K7 Q7 W% }. c
Q: OUT std_logic_VECTOR(8 downto 0);
( ?( P/ D; @# z( | CLK: IN std_logic
3 W- A( h0 U* Y );
' w; ?/ x- q* p% T U# Iend component;
) N( l$ I; [+ ~& n' K+ ]-- Synplicity black box declaration
. l- z8 d& y0 {+ v8 J4 {# X% Yattribute black_box : boolean;
# L4 F: n& N& L. uattribute black_box of myadder8: component is true;
" w6 _! k/ q; W1 j# }! p0 I0 T 将attribute语句拷入我的工程,还有warning.根据提示,将black_box改成syn_black_box,问题才得以解决,此时,不会再有上述warning存在了。 c1 x* @# T2 b' Y ?5 P( C6 @; V A
attribute syn_black_box : boolean;
8 G9 `9 B* B+ b* K( O; z9 Kattribute syn_black_box of myadder8: component is true; {- d+ w: L' F9 A# a3 l3 z
后来,在Xilinx ISE 5.x 使用详解》中翻到如下内容:P71 ! h2 w E+ v# @& I4 R. j, H
书上有云:
# ?9 I" f2 d9 J( K6 }: y “IP核在综合时一般被认为是黑盒子(Black Box),综合器不对黑盒子做任何编译。将IP核加入工程有两种方法,一为在工程中新建Coregen IP类型资源,另一种是针对第三方综合工具而言,同时避免了在新工程中需要重新加入IP核资源的麻烦。也就是将IP核声明成黑盒子,具体操作时可以利用IP核生成时生成的仿真文件和IP核实例化文件(.veo,.vho),将仿真文件中的IP核的相关部分原封不动地拷贝到顶层文件中去,声明IP核模块,然后将实例化文件内容粘贴到模块的实例化部分。
' d3 g$ N2 D5 q! P 然面,使用Synplify Pro等综合工具综合IP核等Xilinx硬件原语时,需要调用相应Xilinx器件的硬件原语声明文件。位于Synpliy\lib\Xilinx”子目录中的virtex.v/vhd,virtexe.v/vhd,virtex2.v/vhd,virtex2p.v/vhd等文件就是硬件原语声明文件。调用时用"include"命令。
8 n* A$ J; `. _% n
0 O4 m& S$ Y2 c综合工具 | | | | | attribute syn_black_box : Boolean; attribute syn_black_box of core_name : component is true; | | // synopsys translate_off // synopsys translate_on | attribute FPGA_dont_touch : string; attribute fpga_dont_touch of core_name : component is “true”; | | | attribute box_type : string; attribute box_type of core_name : component is “black_box”; + o% R& T1 g5 J
0 l; {) g4 x. L, A: o
|
/ i, |/ ?7 E0 M3 ^ |
|