Vivado中如何避免信号被优化掉?
刚写了一段 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中如何避免信号被优化掉?相关推荐
- 如何防止ISE综合时信号不被优化掉
我在XST综合时,未接输出端口的寄存器被优化掉了, 如何防止ISE综合时你想抓取的信号不被优化掉: 1.右键synthesis,在综合选项里将keep hierarchy选择YES ,或者选择sof ...
- 防止Qii编译器优化掉某信号的方法
当某信号没有在Top Level上被使用,但又希望其出现在SignalTap II中作为测试信号,除了把该信号在顶层中声明为port之外,还可以利用编译器的synthesis attribute.具体 ...
- Vivado防止信号被综合掉的三种方法
1. 信号前面将keep hierarchy选择YES ,或者选择soft(在综合时保持层次),这样有利于你从模块中找到你想抓取的信号和信号名不被更改. 2. 信号前面使用 (* KEEP = & ...
- 防止FPGA设计中综合后的信号被优化
这不是一个新话题了,写这个也是当作自己的一个小小的笔记吧!觉得挺有用的. 一般在做前仿真(即功能仿真)时,不会考虑信号被优化的问题.最近做一个关于运算的小程序,前仿真的数据没有问题,但是实际出来的数据 ...
- Visial Studio中“变量已被优化掉 因而不可用”的解决方案
Visial Studio中"变量已被优化掉 因而不可用"的解决方案 参考文章: (1)Visial Studio中"变量已被优化掉 因而不可用"的解决方案 ( ...
- vivado中bit文件怎么没有生成_「干货」FPGA设计中深度约束技巧及调试经验总结...
今天跟大家分享的内容很重要,也是我们调试FPGA经验的总结.随着FPGA对时序和性能的要求越来越高,高频率.大位宽的设计越来越多.在调试这些FPGA样机时,需要从写代码时就要小心谨慎,否则写出来的代码 ...
- 如何阅读 Vivado中的Timing Report
<XDC约束技巧>系列中讨论了XDC约束的设置方法.约束思路和一些容易混淆的地方.我们提到过 约束是为了设计服务,写入Vivado中的XDC实际上就是用户设定的目标 ,Vivado对FPG ...
- vivado中的OOC技术
一.什么是OOC OOC(Out-of-context)是Vivado提供的一项技术,选择将HDL对象当作一个隔离模块运行,完成自底向上的综合流程. 底层的OOC模块相对于顶层模块独立运行,并且拥有自 ...
- Vivado中Simulator仿真软件的使用
文章目录 前言 一.仿真概述 二.TB文件简介 三.Vivado实操 总结 前言 本文的主要内容是介绍Vivado软件中Simulator的使用,这种方法相比于硬件调试不需要连接开发板,但需要编写te ...
最新文章
- mfc中ado上传image到sql数据库
- 极简教程: 使用 matplotlib 绘制 GIF 动图
- flask web开发的相关博文学习
- editview只输入英文_搜狗输入法Mac版更新:适配苹果M1处理器
- 电影短视频营销白皮书
- MySQL与PostgreSQL
- 边缘设备上的实时AI人员检测:在Raspberry Pi上测试SSD模型
- 在线二进制转文本工具
- 解决安装多个Xcode出现的PBXProjectWizardChooserWizard问题
- 2017软件构造3.3
- 虎年继续做朋友,再来认识一下云和恩墨
- H3CNE V7.0 视频教程
- 汇智聚力 平台闪耀 —— CDEC2022中国数字智能生态大会深圳举行
- Web大学生网页作业成品——个人班级网站设计与实现(HTML+CSS)
- TensorFlow2.0教程-文本分类
- scandir、direct的用法
- cocos2dx-lua 圆周运动
- Gm如何修改服务器时间,GM怎么修改传奇版本的活动时间脚本
- Spring(Spring的理解+DI+Spring的创建)
- 知行学徒人脸识别伪造