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

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

相关推荐

  • potato的复数形式,potato的复数形式是什么

    技术potato的复数形式,potato的复数形式是什么potato的复数形式是potatoespotato的复数形式。 英 [pəteɪtəʊ],美 [pəteɪtoʊ]     n. 马铃薯;土豆
    例句:
    1、T

    生活 2021年10月23日
  • 一个虫一个离,一个虫字旁加一个离子怎么读

    技术一个虫一个离,一个虫字旁加一个离子怎么读螭chī 部首笔画 部首:虫 部外笔画:10 总笔画:16 五笔86:JYBC 五笔98:JYRC 仓颉:LIYUB 笔顺编号:2512144134522554

    生活 2021年10月28日
  • Spring Boot 分层打包 Docker 镜像实践及分析

    技术Spring Boot 分层打包 Docker 镜像实践及分析 Spring Boot 分层打包 Docker 镜像实践及分析Spring Boot 分层打包 Docker 镜像实践及分析
    1. 准

    礼包 2021年12月10日
  • 安装Neo4j数据库

    技术安装Neo4j数据库 安装Neo4j数据库安装Neo4j之前,需要先安装JDK
    两者对应关系:Neo4j version3.5 使用java1.8;Neo4j version4.0+ 目前只支持JD

    礼包 2021年10月28日
  • PostgreSQL中make_rel_from_joinlist函数分析

    技术PostgreSQL中make_rel_from_joinlist函数分析这篇文章主要介绍“PostgreSQL中make_rel_from_joinlist函数分析”,在日常操作中,相信很多人在PostgreSQL

    攻略 2021年11月10日
  • 抽象工厂

    技术抽象工厂 抽象工厂抽象工厂(Abstract Factory)
    Intent
    提供一个接口,用于创建相关的对象家族
    Class Diagram
    抽象工厂模式创建的是对象家族,也就是很多对象而不是一个

    礼包 2021年11月10日