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

技术如何防止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)

相关推荐

  • C++迭代器与二分查找方法是什么

    技术C++迭代器与二分查找方法是什么本篇内容主要讲解“C++迭代器与二分查找方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++迭代器与二分查找方法是什么”吧!

    攻略 2021年11月30日
  • PostgreSQL DBA常用SQL查询语句有哪些

    技术PostgreSQL DBA常用SQL查询语句有哪些本篇内容介绍了“PostgreSQL DBA常用SQL查询语句有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如

    攻略 2021年11月8日
  • 圣诞节送女朋友什么礼物好,圣诞节送女朋友什么礼物好

    技术圣诞节送女朋友什么礼物好,圣诞节送女朋友什么礼物好很多朋友可能会觉得送一些时尚、劲爆的礼物会比较好,但其实流行因素在每个人心中的定位都是不一样的,小编认为,送最适宜对方的礼物就是最好的礼物。▲ 如何包装礼物,礼物包装

    生活 2021年10月24日
  • 金牛座和什么星座最配,金牛座和什么星座最配呢

    技术金牛座和什么星座最配,金牛座和什么星座最配呢金牛座与其它星座的互动关系 最欣赏的星座-处女座 最信任的星座-狮子座金牛座和什么星座最配、射手座
    最佳学习对象-天蝎座
    最佳工作搭档-双子座
    最容易被影响星座-水瓶

    生活 2021年10月26日
  • Hibernate SessionFactory是什么

    技术Hibernate SessionFactory是什么这篇文章主要介绍Hibernate SessionFactory是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SessionFact

    攻略 2021年12月8日
  • uvm常见断言方法(uvm里面start的参数什么意义)

    技术如何浅析UVM概念中的topdown phase本篇文章给大家分享的是有关如何浅析UVM概念中的topdown phase,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小

    攻略 2021年12月18日