我是靠谱客的博主 懵懂毛巾,最近开发中收集的这篇文章主要介绍VIvado--verilog--避免工程中信号被优化掉,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

写了一段 Verilog代码后进行综合,在debug的过程中,却找不到需要debug的信号了,查看网表发现没有?

这种情况是因为我们的某些中间信号被优化掉了。

被优化掉的原因有可能是你这个信号确实对后面的输出没用,我写的这个项目由于还在中间过程,功能还没有完善,所以不想把大量的中间信号作为输出,所以被优化掉了,以至于在debug过程中找不到这些信号。

如何解决这个问题呢?

方式1

在变量定义的时候添加语句:

(* keep = “true” *)

方式2

信号前面将keep hierarchy选择yes ,或者选择soft(在综合时保持层次),这样有利于你从模块中找到你想抓取的信号和信号名不被更改。

(* keep_hierarchy = “yes” *)module fre( a, b, c, d);

or

(* keep_hierarchy = “yes” *)fre fre_inst( a, b, c, d);

方式3

信号前面使用(* DONT_TOUCH= “{TRUE|FALSE}” *),可以防止信号在综合,以及布局布线的时候被优化掉。

(* dont_touch = “true” *) wire a;

例如:
在这里插入图片描述

最后

以上就是懵懂毛巾为你收集整理的VIvado--verilog--避免工程中信号被优化掉的全部内容,希望文章能够帮你解决VIvado--verilog--避免工程中信号被优化掉所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(100)

评论列表共有 0 条评论

立即
投稿
返回
顶部