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

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.