使用MARK_DEBUG指定在硬件合成过程中应保留网络
调试。这将阻止优化,否则优化可能会消除或更改
指定的信号。MARK_DEBUG属性保留了信号,以提供一个简单的
在硬件调试期间观察此信号值的方法。
MARK_DEBUG可以防止优化,就像DONT_TOUCH、KEEP或
KEEP_HIERACHY酒店。MARK_DEBUG也会影响层次结构的优化
连接到标记为调试的信号的模块。虽然这有助于分析和
调试、减少优化可能会导致更大、更慢的设计。因此,Xilinx
建议您谨慎使用MARK_DEBUG,特别是在时间关键领域
设计中,仅在设计中附加同步点以限制增加
面积和功率,以及对定时关闭的影响。
重要提示:在某些情况下,MARK_DEBUG可能会对优化产生意想不到的后果
未标记为调试但连接到分层模块的信号,这些模块也连接
标记为调试的信号。
通常,您通过层次结构或单元的引脚来识别用于调试的网络;然而
MARK_DEBUG属性必须分配给网络。因此,建议您
使用get_nets和get_pins命令分配MARK_DEBUG:
set_property MARK_DEBUG true[get_nets–属于[get_pins hier1/hier2/<flop_name>/Q]]
这确保了MARK_DEBUG属性被分配给连接到的网络
无论网络如何命名或重命名,都要指定pin。
架构支持
所有架构。
适用对象
•网络(get_Nets)
°内部阵列可访问的任何网络。
注意:某些网络可能具有专用连接或其他方面,从而禁止对
调试目的。
价值观
•TRUE:保留信号以供调试期间使用。
Syntax
Verilog Syntax
To set this attribute, place the proper Verilog attribute syntax before the top-level output
port declaration:
(* MARK_DEBUG = "{TRUE|FALSE}" *)
Verilog Syntax Example
// Marks an internal wire for debug in Vivado hardware manager
(* MARK_DEBUG = "TRUE" *) wire debug_wire,
VHDL Syntax
Declare the VHDL attribute as follows:
attribute MARK_DEBUG : string;
Specify the VHDL attribute as follows:
attribute MARK_DEBUG of signal_name : signal is “{TRUE|FALSE}”;
Where
•
signal_name
is an internal signal.
VHDL Syntax Example
signal debug_wire : std_logic;
attribute MARK_DEBUG : string;
-- Marks an internal wire for debug in Vivado hardware manager
attribute MARK_DEBUG of debug_wire : signal is “TRUE”;
XDC Syntax
set_property MARK_DEBUG value [get_nets
<net_name>
]
Where:
<net_name>
is a signal name.
XDC Syntax Example
# Marks an internal wire for debug
set_property MARK_DEBUG TRUE [get_nets debug_wire]