vavado工具编译时,会将我们代码中很多信号给综合或者优化掉;因此当我们想添加一些信号至ILA中进行上板debug时,最好是对想观测的信号进行一些处理,防止工具保留信号不被综合和优化掉。
目前我常用的方法有如下两种:
1:在代码中对需要观测的信号前面添加 (* mark_debug=“true” *);
(* mark_debug="true" *)input [63:0] din_data,
(* mark_debug="true" *)input din_sop,
(* mark_debug="true" *)input din_eop,
(* mark_debug="true" *)input din_valid,
2:不在代码中添加 (* mark_debug=“true” *),单独新建一个.xdc文件,用于添加需要观测的信号:
set_property MARK_DEBUG true [get_nets i_system_wrapper/system_i/dfe/pre_gain_ctrl/inst/valid_out]
set_property MARK_DEBUG true [get_nets {i_system_wrapper/system_i/dfe/pre_gain_ctrl/inst/dout[0]}]
使用此方法需要注意的有:空格不能多也不能少,要严格遵循xdc的语法;当添加的信号是单bit时,不需要加{};当添加的信号是多bit时,记得需要添加{},而且信号后面最好要跟[0],要不然可能只保留此信号的一个bit,或者不保留;
添加完mark_debug之后,进行综合,综合完成后,点击 SYNTHESIS 下的 Set Up Debug 选项,添加debug信号;
随后我们在 xdc 文件里面添加的信号就会出现在 ILA 里面 (如下图),然后保存 ILA 的 debug.xdc文件,进行implememt 即可。