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

1、当被保留的信号为wire类型

wire  net1/*synthesis keep*/;

2、当被保留的信号为reg类型

reg  reg1/*synthesis noprune*/;

3、当保留的reg没有fanout

reg  reg1/*synthesis preserve*/;

若一个reg没有fanout,它会被直接接到VCC或GND

说明:

1、noprune与preserve的区别

按照Qii help的说法http://quartushelp.altera.com/9.1/mergedProjects/hdl/vlog/vlog_file_dir_noprune.htm

noprune与preserve的区别为:

(noprune is)A Verilog HDL synthesis attribute that prevents the Quartus II software from removing a register that does not directly or indirectly feed a top-level output or bidir pin, such as a fanout-free register. This attribute differs from the preserve attribute, which only prevents a register from being reduced to a constant or merged with a duplicate register.

另外,还可以用以下方法实现noprune:

You can also use Verilog 2001 attribute syntax to preserve a fanout-free register, as shown in the following code:

(* noprune *) reg reg1;

2、keep引入的小偏移

keep会在时序路径上增加一个逻辑单元的延时

Note that adding "keep" may add one logic cell delay in your timing path (probably not a problem, but something to keep in mind if it is a timing-critical path).

3、未经验证的说法

/*synthesis keep*/也支持对reg型信号,使用它也可以防止reg型信号被优化掉。但是也有可能出现这样的情况,有的信号即使经过此处理,仍然会被综合工具优化掉,致使无法找到它。这个时候就需要对其使用“测试属性”,可以加入probe_port属性,把这两个属性结合在一起,即就是:

( *synthesis, probe_port,keep *) 即可,这种方法同时适应于wire和reg型信号类型。

防止Qii编译器优化掉某信号的方法相关推荐

  1. c语言编译器 代码优化,c编译器高级篇!!搞定c编译器优化

    对于c编译器,想必大家也有所了解,3款主流c编译器也是活跃在不同人群的PC上.网络上很多文章都止步于对c编译器的介绍,并未探索c编译器更加深层次的内容.而在本文中,将涉及c编译器的高级部分--c编译器 ...

  2. Vivado中如何避免信号被优化掉?

    刚写了一段 Verilog代码,辛辛苦苦花了很长时间综合,在debug的过程中,却找不到需要debug的信号了,查看网表发现没有? 这种情况是因为我们的某些中间信号被优化掉了. 被优化掉的原因有可能是 ...

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

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

  4. Visual Studio在Release模式下开启debug调试,编译器提示变量已被优化掉,因而不可用

    系列文章目录 文章目录 系列文章目录 前言 一.解决办法 1.修改工程属性 参考 前言 我们在编写代码的时候,如果用到别人的库,而别人只提供了release版本,所有我们也只能生成release版本的 ...

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

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

  6. 【转】C 编译器优化过程中的 Bug

    C 编译器优化过程中的 Bug 一个朋友向我指出一个最近他们发现的 GCC 编译器优化过程(加上 -O3 选项)里的 bug,导致他们的产品出现非常诡异的行为.这使我想起以前见过的一个 GCC bug ...

  7. 模型压缩+编译器优化,使AI算法在移动端性能超越专用硬件

    作者 | 王言治,美国东北大学电子与计算机工程系助理教授 出品 | AI科技大本营(ID:rgznai100) 近年来,机器学习(Machine Learning)领域的研究和发展可谓是与日俱新,各式 ...

  8. LWN:怕不怕编译器优化让你的代码彻底乱套?

    Who's afraid of a big bad optimizing compiler? July 15, 2019 (Many contributors) 本文贡献者包括Jade Alglave ...

  9. C++构造与析构(12) - copy elision编译器优化

    目录 1.copy elision说明 2.优化分析 3.如何关闭优化 1.copy elision说明 Copy elision (或Copy omission)是一项编译器优化技术,用于避免不必要 ...

最新文章

  1. cufflinks基于dataframe数据绘制线图(line plot)、散点图(scatter plot)
  2. INDEX FULL SCAN和INDEX FAST FULL SCAN的区别
  3. d.php xfso_PHP扩展调用so动态链接库
  4. QT的QPair类的使用
  5. 垃圾收集算法与垃圾收集器
  6. ui5 resource file 404 error
  7. Java中this与super的区别
  8. C# XML添加删除/SelectNodes/xpath
  9. endnote怎么改成中文版_毕业论文面对大量的参考文献标注,应该怎么办?(便捷整理的技巧和方法)...
  10. ASP注入漏洞基础教程(二)
  11. Windows下基于Anaconda的Tensorflow环境配置
  12. C# BackGroundWorker 的简单使用
  13. 我是做Java的,刚入职了,月薪20k,面试题还是很管用的
  14. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明
  15. Luogu3403跳楼机
  16. 2020 智能零售领域最具商业合作价值企业盘点
  17. oracle group by优化
  18. SeaWeedFS安装以及部署,以及master模式和filer模式的介绍
  19. pdf用什么软件打开编辑最简单
  20. wmb 开发的几个坑

热门文章

  1. [USACO15FEB]审查(黄金)Censoring (Gold)
  2. [ZT]破解win2003“终端服务器授权”激活许可证
  3. c语言程序设计的反思,C语言程序设计课程教学反思.doc
  4. To_10_r_100_8_1---判断出三盏灯分别是由哪个开关控制的
  5. 9 赫斯曼网管软件Industrial HiVision版本升级
  6. 数据存储,消息队列的高可用保障
  7. AI黑白照片上色系列-藏在英国伦敦图书馆黑白上色,从未发表的100多年前的中国影像
  8. VS2013 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
  9. 计算机管理MMC 无法在比,win10系统打开组策略提示“MMC无法创建管理单元”的处理办法...
  10. win10分辨率设置_Win10系统开启安全模式简介