Verilog或VHDL中防止信号综合后被优化众多方法总结
FPGA技术联盟 2024-06-20


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"







声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • FPGA
  • 可编程
  • PLC
  • verilog
  • 如何使用专用指令调整Nios II系列处理器硬件?

    前不久,Altera 正式推出了Nios II系列32位RSIC嵌入式处理器。Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。Altera的Stratix 、Stratix GX、 Stra...

    昨天
  • FPGA芯片优化设计全面解析

    可编程逻辑器件是通过EDA技术将电子应用系统的既定功能和技术指标具体实现的硬件载体,FPGA作为实现这一途径的主流器件之一,具有直接面向用户,灵活性和通用性极大,使用方便,硬 件测试和实现快捷等特点。硬件描...

    昨天
  • FPGA设计流程:算法、仿真、调试

    FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有...

    昨天
  • 简述UltraScale FPGA架构

    AMD ultrascale FPGA概述

    昨天
  • 什么是移位寄存器?什么是LFSR?

    LFSR的介绍、分类、用途及Verilog实现与仿真等功能。

    昨天
  • FPGA为什么要避免组合逻辑环路?

    本篇讲述了什么是组合逻辑环路、什么情况会导致组合逻辑环路以及如何处理组合逻辑环路,什么是语言模板以及设计模板的用处等方面的内容。

    07-12
  • 将FPGA AI加速器高效地用于如自动语音识别

    基于Achronix Speedster®7t FPGA器件的AI基准测试

    07-12
  • 单片机中央处理器(CPU)工作原理

    想知道单片机是如何工作的,首先要了解单片机的概念和组成部分。 单片机的基本结构包括中央处理器(CPU) 、存储器、定时/计数器、输入输出接口、中断控制系统和时钟电路六部分。 一、单片机的组成结构...

    07-08
  • 学习PLC工作原理的步骤

    当可编程逻辑控制器投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,可编程逻辑控制器的CPU以一定的扫描速度重复执行上...

    06-27
  • 可编程逻辑件的工作原理是什么?

    可编程逻辑器件 英文全称为:programmable logic device 即 PLD。PLD是做为一种通用集成电路产生的,他的逻辑功能按照用户对器件编程来确定。一般的PLD的集成度很高,足以满足设计一般的数字系统的需要。 这样就可...

    06-13
  • FPGA时序逻辑电路落后一拍?

    FPGA初学者可能经常听到一句话:“时序逻辑电路,或者说用 \x26lt;= 输出的电路会延迟(落后)一个时钟周期。”但在仿真过程中经常会发现不符合这一“定律”的现象。这是为什么呢?

    06-07
  • XILINXFPGAIP系列教程:FIRCompiler模块详解

    XILINX的FIR Compiler IP不仅可缩短滤波器实现时间,同时还可为用户提供在 FIR 滤波器在不同硬件架构之间资源最优的能力。

    01-25
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告