使用逻辑分析仪时如何防止寄存器和线路信号被优化

技术如何防止reg、wire型信号在使用逻辑分析仪时被优化如何防止reg、wire型信号在使用逻辑分析仪时被优化,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题

如何在使用逻辑分析仪时防止reg和wire信号被优化,相信很多没有经验的人都不知所措。因此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。

今天讲的是“如何在使用逻辑分析仪时防止reg和wire信号被优化”,不多说,加载货物。

随着FPGA设计的日益复杂,芯片内部的逻辑分析功能变得越来越重要。硬件层面的逻辑分析仪非常昂贵且操作复杂。目前,两大FPGA芯片供应商都为其FPGA芯片提供了软件层面的逻辑分析仪,可以帮助我们在线分析芯片的内部逻辑。此外,操作简单方便,但由于某些原因,一些信号在合成时会被优化,这可能会导致我们的设计失败。当然,在给逻辑分析仪添加观察信号时,我们找不到信号。从而给设计人员和调试器的工作带来一些不便。

以下分别是Xilinx公司的逻辑分析仪芯片示波器和Altera公司的SignalTap的总结:

1.在使用Xilinx公司的ChipScope观察芯片内部信号之前,将需要观察的信号添加到ChipScope信号观察列表中。换句话说,我们必须能够在综合网表文件中找到相应的信号。如果使用XST合成,最好保持芯片内部结构的层次,这样在相应的子模块中就可以找到需要观察的信号。默认情况下,芯片示波器只能观察reg类型的信号。但是您也可以通过设置属性来观察有线信号。不同的综合工具有不同的属性需要添加。

1.使用XST合成。

(1)对于reg信号,如果经过ISE优化,一般可以对这个信号和其他没有优化的信号进行AND、or等运算,从而观察信号。

(2)对于wire模型,对于ISE12.3之后的版本,XST合成,以Spartan3为例,可以使用(* keep=' true ')wire[1533600]CPLD _ AD;这样就可以在搜索信号的信号中找到线型的CPLD _AD信号进行观察。

2.用Synplify Pro合成Synplify Pro对于有线和reg类型的信号具有不同的综合属性。

(1)对于wire类型的信号,使用/synthesis syn_keep=1/,如以下语句:wire[7:0]data _ in/synthesis syn _ keep=1 */;

(2)对于reg类型信号,使用/* synthesis preserve=1/综合属性,如以下语句:REG[7:0]data _ in/synthesis preserve=1 */;

第二,使用Altera的SignalTap。

1.用Altera的合成器合成Altera的合成器。为了防止一些信号合成器被优化,它也有自己的一套综合约束属性。

(1)对于reg信号,为了防止Altera的合成器对其进行优化,可以增加noprune属性。这可能会阻止某些寄存器信号得到优化。你也可以使用/synthesis no prene/综合属性。` include 'define.v '

module SignalTap_test(Clk,Rst,Cnt)/synthesis no prane/;

input WireLeck;

input writer ST;

output reg[7:0]Cnt;

总是@(posedgeClkorposedgeRst)

开始

if(Rst==1'b1)

Cnt=8 ' h0

其他

Cnt=# `ULDYCnt 1 ' b1

依赖模块

在上面的例子中(假设Cnt信号将被优化),通过这种方式添加综合属性后,整个模块的reg信号将不会被优化。与reg相关的综合属性,除了/综合

noprune/可用,还有一个/synthesis preserve/可用 

二者的差别在于:

 /synthesis noprune/ 避免Quartus II优化掉output 型的reg信号。

 /synthesis preserve/ 避免Quartus II把reg信号当成VCC或者GND等常数 

同时单独的reg信号也可以: (preserve) reg [3:0] cnt;防止被优化掉。 

(2)对于wire类型的信号 对于wire型信号来说,要想观察此类信号,Altera综合器提供了/synthesis keep/ 综合属性。如 wire [7:0] Cnt /synthesis keep/; 对于Quartus II 9.0以后的版本也可以使用(“keep”) wire [7:0] Cnt ;的写法。 此外,/synthesis keep/也支持对reg型信号,使用它也可以防止reg型信号被优化掉。但是也有可能出现这样的情况,有的信号即使经过此处理,仍然会被综合工具优化掉,致使无法找到它。这个时候就需要对其使用“测试属性”,可以加入probe_port属性,把这两个属性结合在一起,即就是: ( *synthesis, probe_port,keep *) 即可,这种方法同时适应于wire和reg型信号类型。 

2、使用Synplify Pro综合 使用Synplify Pro综合时防止信号被优化掉的方法和使用Xilinx公司 ChipScope使用Synplify Pro综合时添加的综合约束一样,因为Synplify Pro是专业的综合厂商,所以对主流的FPGA厂商都支持。 

三、总结 

1、以上的方法也不一定是全部都可以使用,有时候因为版本不对应就会导致信号依然会被优化掉。不过经过轮询之后发现,ISE 12.3以后的版本、Quartus II 9.0之后的版本、Synplify Pro 9.0.1以后的版本都可以使用。 

2、一般情况下,信号经常被优化掉,还是与代码风格或者逻辑设计有冗余有关的,所以还是应该尽量提供代码质量。在不能解决的时候再添加综合约束。

看完上述内容,你们掌握如何防止reg、wire型信号在使用逻辑分析仪时被优化的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/156004.html

(0)

相关推荐

  • see过去分词,see的过去式和过去分词

    技术see过去分词,see的过去式和过去分词see的过去式: saw see的过去分词: seen seesee过去分词,读音:英 [siː] 美 [siː] v. 看见;明白;了解;经历;设想 n. 主教教区;主角权限

    生活 2021年10月24日
  • Prometheus配置告警规则

    技术Prometheus配置告警规则 Prometheus配置告警规则https://www.cnblogs.com/linuxk/p/12036193.html修改prometheus配置文件指定pr

    礼包 2021年11月23日
  • 日本哪里好玩,日本有那些好吃好玩的地方

    技术日本哪里好玩,日本有那些好吃好玩的地方我想:每个人去日本旅行的想法不同日本哪里好玩,所以什么样的旅行才能称得上是最完美呢?或许没有正确答案。而日本国家观光协会一直致力于向外国游客推介聚集尖端技术或最新流行的大都会观光

    生活 2021年11月1日
  • css3消除锯齿的属性怎么使用(设置消除锯齿方法)

    技术css3消除锯齿的属性怎么使用本篇内容介绍了“css3消除锯齿的属性怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年12月15日
  • MySQL Index Condition Pushdown(ICP)的使用限制有哪些

    技术MySQL Index Condition Pushdown(ICP)的使用限制有哪些小编给大家分享一下MySQL Index Condition Pushdown(ICP)的使用限制有哪些,希望大家阅读完这篇文章之

    攻略 2021年11月3日
  • ThreadPoolExecutor线程池的示例分析

    技术ThreadPoolExecutor线程池的示例分析小编给大家分享一下ThreadPoolExecutor线程池的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获

    攻略 2021年11月17日