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

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

相关推荐

  • 怎么用snow人脸识别贴图(mask遮罩人脸识别教程)

    技术如何使用MaskTheFace实现给人脸图片戴口罩小编给大家分享一下如何使用MaskTheFace实现给人脸图片戴口罩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下

    攻略 2021年12月19日
  • kcl方程,基尔霍夫解光的电磁波方程

    技术kcl方程,基尔霍夫解光的电磁波方程1、假设各支路电流正方向及回路的绕行方向kcl方程。
    2、应用KCL列出节点的电流方程。对于有n个节点的电路,只能选取n-1个节点列方程。
    3、应用KVL列出回路的电压方程。对于有

    生活 2021年10月19日
  • css中下划线样式怎么设置长度

    技术css中下划线样式怎么设置长度这篇文章主要介绍“css中下划线样式怎么设置长度”,在日常操作中,相信很多人在css中下划线样式怎么设置长度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月30日
  • 如何修改一个apk文件的签名(apk签名如何导入文件)

    技术如何手动给APK文件签名如何手动给APK文件签名,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。由于您的应用签名密钥用于验证您作为开发者的身份,并确保

    攻略 2021年12月22日
  • Spring Security怎么处理Session 共享

    技术Spring Security怎么处理Session 共享这篇文章主要介绍“Spring Security怎么处理Session 共享”,在日常操作中,相信很多人在Spring Security怎么处理Session

    攻略 2021年11月14日
  • ibatis怎么多条件查询(ibatis优点)

    技术iBATIS发展方向的四个方面分别是什么这期内容当中小编将会给大家带来有关iBATIS发展方向的四个方面分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。iBATIS发展方向

    攻略 2021年12月19日