在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4636|回复: 1

[原创] signaltap中保留节点不被综合掉的方法

[复制链接]
发表于 2013-7-18 11:27:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 snowman3852 于 2013-7-18 11:29 编辑

假设在read_test模块中设置计数器

signal test_cnt: std_logic_vector(8 downto 0):=(others=>'0');

要保留该计数器不被综合掉,需要如下方法

1.给该模块增加一个输出端口,例如

err_flag_s : out std_logic

(注意:调用read_test模块的上层模块在声明read_test模块时,可以不声明该输出端口err_flag_s,也就是上层模块可以认为没有这个端口。)

2.按照如下方法将test_cnt赋值给err_flag_s

err_flag_s <= '1' when (test_cnt = 100) else '0';

有其它需要保留的信号也这样赋值给err_flag_s

err_flag_s <= '1' when (test_cnt = 100 or xxx = 0) else '0';

3.这样就能保证所要看的信号不被综合掉了。而且上层模块可以不关心这个情况。


该方法已经上板验证过。

我从网上看到的attribute syn_keep 和  attribute preserve 方法,我试过了可是不行,不知道大家行不行。
有人说需要把信号加到顶层,设置为虚拟pin。我觉得麻烦,我要是从底层模块需要加一个信号保留,那还要影响几级模块啊。所以我试了试以上方法,是成功的。verilog应该也行吧,但是我没试。
发表于 2013-7-18 12:29:24 | 显示全部楼层
添加节点时选pre-synthesis就行了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-1 18:34 , Processed in 0.025312 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表