
signaltap使用步骤是这样的:
1.打开工程,打开signaltap工具,加入你需要观察的信号和抓取这些信号的时钟。这时候会生成一个.stp后缀的文件,这个文件存储的是你加入的信号名字信息。关闭signaltap的时候会提示你是否要将这个文件加入工程中,你一定要点击加入。如果没有加入你就手动加入到工程中,就跟加入一个.v文件一样的
2.跑完整个工程生成.sof的下载文件
3.用JTAG线将.sof文件下载到FPGA中去。
4.打开后缀为.stp的文件,这个时候实际上就是打开了signaltap(如果生成.stp后你没有关闭过signaltap就不用重新打开)你要抓取的信号名称。
5.设置触发条件,点击抓取按钮抓取信号观察
只要保证SignalTap里面信号名称的颜色是黑色,不是蓝色或者红色,就能采集到正确的数据。图中的信号名称的颜色是蓝色,所以有采集到不正确数据的可能。为了保证信号颜色不出现蓝色,在添加信号的时候,Filter下拉框应该选择Design Entry (all
names),而不应该选择SignalTap II:
post-fitting或者Post-synthesis(综合后的结果)。因为综合后,信号的值已经被优化了。
将信号列表原有的蓝色信号删除,重新添加信号。Filter选择Design Entry (all names),然后点击List按钮,选择左边要添加的信号,点击>按钮添加到右边。
重新添加后,信号颜色就是黑色的了。保存stp1.stp文件,编译并烧写程序,这下就能采集到正确的结果了,没有被反相了。
这种寄存器反相优化是无法通过(* keep *)、(* noprune *)、(* preserve *),以及(* syn_encoding = "user" *)指令消除的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)