使用Chipscope时如何防止reg_wire型信号被优化掉.docVIP

使用Chipscope时如何防止reg_wire型信号被优化掉.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用Chipscope时如何防止reg_wire型信号被优化掉

使用Chipscope时如何防止reg_wire型信号被优化掉 随着FPGA设计复杂程度越来越高,芯片内部逻辑分析功能显得越来越重要。硬件层次上的逻辑分析仪价格十分昂贵,而且操作比较复杂。目前,FPGA芯片的两大供应商都为自己的FPGA芯片提供了软件层面上的逻辑分析仪,可以帮助我们在线分析芯片内部逻辑。而且操作简单方便。但是往往因为某些原因,有些信号在综合的时候就会被优化掉,就可能会导致我们的设计失败,当然在为逻辑分析仪添加观察信号的时候也无法找到该信号。从而对设计、调试人员的工作带来一定的不便。下面就分别以Xilinx公司的逻辑分析仪ChipScope和Altera公司的SignalTap做以下总结: 一、使用Xilinx公司的ChipScope 在ChipScope中添加一些引脚的信号,但列表中并没有显示,原因是综合的地方没设置好,应该将XST的属性设置成如下:keep hierarchy 处为YES   使用ChipScope观察芯片内部的信号的之前先要在把需要观察的信号添加到ChipScope信号观察列表当中。也就是说,我们必须能够在综合的网表文件中找到相应的信号。如果是使用XST综合的话,最好保留芯片内部结构的层次,这样就可以在相应的子模块查找需要观察的信号。默认情况下,Chipscope只能观察reg类型的信号。但是通过设置属性也是可以观察wire型信号的。使用不同的综合工具需要添加的属性也不一样。 1、使用XST综合。 (1)对于reg型信号,如果被ISE优化掉,一般有可以把这个信号和其他没有被优化的信号进行“与”、“或”等操作。这样就可以达到观察信号的目的。 (2)对于wire型号,对于ISE12.3以后的版本,XST综合,以Spartan3为例,可以使用 * KEEP TRUE* wire [15:0] CPLD_ _AD;这样就可以在查找信号的信号找到wire类型的CPLD_ _AD信号进行观察。再不行就用reg引出。 2、使用Synplify Pro综合 也可参考:/vvbaba/item/94bb1b33af6c4b33b3c0c56e Synplify Pro对wire、reg类型的信号有着不同的综合属性。 (1) 对于wire型信号,使用/* synthesis syn_keep 1 */综合属性,例如下面的语句: 1?wire??[7:0]??data_in??/* synthesis syn_keep 1 */; (2) 对于reg型信号,使用/* synthesis preserve 1 */综合属性,例如下面的语句: 1?reg??[7:0]???data_in??/* synthesis preserve 1 */; 二、使用Altera公司的SignalTap 1、使用Altera自带的综合器综合 Altera自带的综合器为了防止某些信号综合器优化掉,也有自己的一套综合约束属性。 (1)对于reg型信号,为了防止Altera自带综合器将其优化掉,可以添加noprune属性。这样就可以防止某些寄存器信号被优化掉。也可以使用/*synthesis noprune*/综合属性。 01?`include?define.v 02?module?SignalTap_test 03 Clk , 04 Rst , 05 Cnt 06 /*synthesis noprune*/?; 07 08?input???wire Clk?; 09?input???wire Rst?; 10?output??reg?[7:0] Cnt?; 11?always@ posedge?Clk?or?posedge?Rst 12?begin 13 if ?Rst? ?1b1 14 Cnt?lt; ?8h0; 15 else 16 Cnt?lt; ?#`ULDY?Cnt?+?1b1; 17?end 18?endmodule 如上例 假设Cnt信号会被优化掉 ,这样添加综合属性之后,整个module的reg信号都不会被优化掉。 跟reg相关的综合属性,除了/*synthesis 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 k

文档评论(0)

80019pp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档