刚写了一段 Verilog代码,辛辛苦苦花了很长时间综合,在debug的过程中,却找不到需要debug的信号了,查看网表发现没有?

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

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

如何解决这个问题呢?

很简单,最常用的就是在变量定义的时候添加语句:

(* keep = "true" *)

例如:

    (* keep = "true" *) reg  [15 : 0] dataout_ii1;(* keep = "true" *) reg  [15 : 0] dataout_ii2;(* keep = "true" *) reg  [15 : 0] dataout_ii3;(* keep = "true" *) reg  [15 : 0] dataout_ii4;(* keep = "true" *) reg  [15 : 0] dataout_ii5;(* keep = "true" *) reg  [15 : 0] dataout_ii6;(* keep = "true" *) reg  [15 : 0] dataout_ii7;(* keep = "true" *) reg  [15 : 0] dataout_ii8;(* keep = "true" *) reg  [15 : 0] dataout_ii9;(* keep = "true" *) reg  [15 : 0] dataout_ii10;(* keep = "true" *) reg  [15 : 0] dataout_ii11;(* keep = "true" *) reg  [15 : 0] dataout_ii12;(* keep = "true" *) reg  [15 : 0] dataout_ii13;(* keep = "true" *) reg  [15 : 0] dataout_ii14;(* keep = "true" *) reg  [15 : 0] dataout_ii15;(* keep = "true" *) reg  [15 : 0] dataout_ii16;

这样即可,从网表中可以找到这些变量了。

当然还有其他办法,例如:

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

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

or

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

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

(* dont_touch = "true" *) wire a;

不在话下。

Vivado中如何避免信号被优化掉?相关推荐

  1. 如何防止ISE综合时信号不被优化掉

    我在XST综合时,未接输出端口的寄存器被优化掉了, 如何防止ISE综合时你想抓取的信号不被优化掉: 1.右键synthesis,在综合选项里将keep  hierarchy选择YES ,或者选择sof ...

  2. 防止Qii编译器优化掉某信号的方法

    当某信号没有在Top Level上被使用,但又希望其出现在SignalTap II中作为测试信号,除了把该信号在顶层中声明为port之外,还可以利用编译器的synthesis attribute.具体 ...

  3. Vivado防止信号被综合掉的三种方法

    1. 信号前面将keep  hierarchy选择YES ,或者选择soft(在综合时保持层次),这样有利于你从模块中找到你想抓取的信号和信号名不被更改. 2.  信号前面使用 (* KEEP = & ...

  4. 防止FPGA设计中综合后的信号被优化

    这不是一个新话题了,写这个也是当作自己的一个小小的笔记吧!觉得挺有用的. 一般在做前仿真(即功能仿真)时,不会考虑信号被优化的问题.最近做一个关于运算的小程序,前仿真的数据没有问题,但是实际出来的数据 ...

  5. Visial Studio中“变量已被优化掉 因而不可用”的解决方案

    Visial Studio中"变量已被优化掉 因而不可用"的解决方案 参考文章: (1)Visial Studio中"变量已被优化掉 因而不可用"的解决方案 ( ...

  6. vivado中bit文件怎么没有生成_「干货」FPGA设计中深度约束技巧及调试经验总结...

    今天跟大家分享的内容很重要,也是我们调试FPGA经验的总结.随着FPGA对时序和性能的要求越来越高,高频率.大位宽的设计越来越多.在调试这些FPGA样机时,需要从写代码时就要小心谨慎,否则写出来的代码 ...

  7. 如何阅读 Vivado中的Timing Report

    <XDC约束技巧>系列中讨论了XDC约束的设置方法.约束思路和一些容易混淆的地方.我们提到过 约束是为了设计服务,写入Vivado中的XDC实际上就是用户设定的目标 ,Vivado对FPG ...

  8. vivado中的OOC技术

    一.什么是OOC OOC(Out-of-context)是Vivado提供的一项技术,选择将HDL对象当作一个隔离模块运行,完成自底向上的综合流程. 底层的OOC模块相对于顶层模块独立运行,并且拥有自 ...

  9. Vivado中Simulator仿真软件的使用

    文章目录 前言 一.仿真概述 二.TB文件简介 三.Vivado实操 总结 前言 本文的主要内容是介绍Vivado软件中Simulator的使用,这种方法相比于硬件调试不需要连接开发板,但需要编写te ...

最新文章

  1. mfc中ado上传image到sql数据库
  2. 极简教程: 使用 matplotlib 绘制 GIF 动图
  3. flask web开发的相关博文学习
  4. editview只输入英文_搜狗输入法Mac版更新:适配苹果M1处理器
  5. 电影短视频营销白皮书
  6. MySQL与PostgreSQL
  7. 边缘设备上的实时AI人员检测:在Raspberry Pi上测试SSD模型
  8. 在线二进制转文本工具
  9. 解决安装多个Xcode出现的PBXProjectWizardChooserWizard问题
  10. 2017软件构造3.3
  11. 虎年继续做朋友,再来认识一下云和恩墨
  12. H3CNE V7.0 视频教程
  13. 汇智聚力 平台闪耀 —— CDEC2022中国数字智能生态大会深圳举行
  14. Web大学生网页作业成品——个人班级网站设计与实现(HTML+CSS)
  15. TensorFlow2.0教程-文本分类
  16. scandir、direct的用法
  17. cocos2dx-lua 圆周运动
  18. Gm如何修改服务器时间,GM怎么修改传奇版本的活动时间脚本
  19. Spring(Spring的理解+DI+Spring的创建)
  20. 知行学徒人脸识别伪造

热门文章

  1. Unity NetWork
  2. 常见蛋白质种类_什么是优质蛋白质?鸡蛋大豆算不算
  3. 51单片机c语言运算符,51单片机表达式语句的用法解析
  4. 微博 用户画像_分析用户画像?从微博数据采集开始!
  5. 不间断电源ups标准_UPS不间断电源全套基础知识
  6. 智能车竞赛技术报告 | 智能车视觉 - 太原工业学院 - 晋速-轩辕星
  7. 测试信标灯的随机特性
  8. 2021年春季学期-信号与系统-第三次作业参考答案-第八道题
  9. 两款旋转编码器测量LDP3806,BH60
  10. 公众号留言-2020-4-1