||
--VHDL Black Box
component myadder8
port (
A: IN std_logic_VECTOR(7 downto 0);
B: IN std_logic_VECTOR(7 downto 0);
C_IN: IN std_logic;
Q: OUT std_logic_VECTOR(8 downto 0);
CLK: IN std_logic
);
end component;
-- Synplicity black box declaration
attribute black_box : boolean;
attribute black_box of myadder8: component is true;
将attribute语句拷入我的工程,还有warning.根据提示,将black_box改成syn_black_box,问题才得以解决,此时,不会再有上述warning存在了。
attribute syn_black_box : boolean;
attribute syn_black_box of myadder8: component is true;
后来,在Xilinx ISE 5.x 使用详解》中翻到如下内容:P71
书上有云:
“IP核在综合时一般被认为是黑盒子(Black Box),综合器不对黑盒子做任何编译。将IP核加入工程有两种方法,一为在工程中新建Coregen IP类型资源,另一种是针对第三方综合工具而言,同时避免了在新工程中需要重新加入IP核资源的麻烦。也就是将IP核声明成黑盒子,具体操作时可以利用IP核生成时生成的仿真文件和IP核实例化文件(.veo,.vho),将仿真文件中的IP核的相关部分原封不动地拷贝到顶层文件中去,声明IP核模块,然后将实例化文件内容粘贴到模块的实例化部分。
然面,使用Synplify Pro等综合工具综合IP核等Xilinx硬件原语时,需要调用相应Xilinx器件的硬件原语声明文件。位于Synpliy\lib\Xilinx”子目录中的virtex.v/vhd,virtexe.v/vhd,virtex2.v/vhd,virtex2p.v/vhd等文件就是硬件原语声明文件。调用时用"include"命令。
综合工具 |
Verilog语法声明 |
VHDL语法声明 |
synplify |
// synthesis black_box |
attribute syn_black_box : Boolean; attribute syn_black_box of core_name : component is true; |
synopsys |
// synopsys translate_off // synopsys translate_on |
attribute fpga_dont_touch : string; attribute fpga_dont_touch of core_name : component is “true”; |
XST |
// box_type “black_box” |
attribute box_type : string; attribute box_type of core_name : component is “black_box”; |