Verilog或VHDL中防止信号综合后被优化众多方法总结 ,亲测实用

本文主要是介绍Verilog或VHDL中防止信号综合后被优化众多方法总结 ,亲测实用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Verilog

方法1. Synthesis_Options中的-keep hierarchy设置为YES或soft,zhe

在ISE中的综合(XST)选项上右键选择process properties,弹出的对话框里面Synthesis_Options中的-keep hierarchy是设置综合后层次结构的。设置为YES后,用CHIPSCOPE调试时看到的层次结构跟你的设计是一样的,找信号很方便。
缺点在于,xilinx 的工具就不能在设计层次间进行设计优化了。
所以,建议你设成 “soft”,意思就是综合后保持层次结构,但是P&R的时候可以打破层次结构进行优化。

方法2. 这种方法简单,但是偶尔寄存器也可能被优化掉

Place the Verilog constraint immediately before the module or instantiation . Specify the Verilog constraint as follows:

       (* KEEP = “{TRUE|FALSE |SOFT}” *)

例如:(*KEEP = "TRUE"*) reg [15:0]  cnt1;//就可以防止cnt1被优化

如果还是被优化掉就把这个寄存器打两拍,并把其中的每个寄存器都加上(*KEEP = "TRUE"*)即可,这种一般情况下都没问题

方法3.把要查看的信号引出到模块的输出端,一般不会被优化掉

 

方法4. 在vivado中编程使用verilog语言时使用来防止信号被优化掉,ISE中没试过不知道行不行

使用DONT_TOUCH属性,其取值为true/flase或者yes/no, 在信号前面的使用(* DONT_TOUCH= “TRUE” *)或者(* DONT_TOUCH= “YES” *),该属性可以放在信号,模块,实例化时,可以防止信号在综合,以及布局布线的时候被优化掉。

例:(* DONT_TOUCH= “TRUE” *)wire a;

 

 

VHDL

方法1
         attribute keep : string;--首先定义keep为string类型,不加这句会报错
         attribute keep of signal_name: signal is “true”;

方法2

attribute mark_debug: string;--首先定义mark_debug为string类型,不加这句会报错

attribute mark_debug of signal_name : signal is "true";

 

 

这篇关于Verilog或VHDL中防止信号综合后被优化众多方法总结 ,亲测实用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1038463

相关文章

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

Java 中编码与解码的具体实现方法

《Java中编码与解码的具体实现方法》在Java中,字符编码与解码是处理数据的重要组成部分,正确的编码和解码可以确保字符数据在存储、传输、读取时不会出现乱码,本文将详细介绍Java中字符编码与解码的... 目录Java 中编码与解码的实现详解1. 什么是字符编码与解码?1.1 字符编码(Encoding)1