您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制使用SignalTap II观察reg与wire值 正文
使用SignalTap II观察reg与wire值

使用SignalTap II观察reg与wire值

点击数:7970 次   录入时间:06-23 08:02:01   整理:http://www.55dianzi.com   电脑-单片机-自动控制


7行
wire [3:0] Cnt /*synthesis keep*/; 

多了/*synthesis keep*/这个synthesis attribute,指示Quartus II不要对Cnt做最佳化,保留此wire以供SignalTap II观察,注意必须写在分号前面,不能如下写在分号后面。
wire [3:0] Cnt;/*synthesis keep*/ //错  


编译后,SignalTap II就能顺利的观察到Cnt的值!!重点是不需改top module的interface,只需对想观察的wire加上synthesis attribute即可。

signaltap2_reg5

Quartus II也支援Verilog 2001的語法

  1. module SignalTapII_wire_keep (  
  2.   input        iCLK,  
  3.   input        iRST_N,  
  4.   output [3:0] oCNT  
  5. );  
  6.  
  7. // Verilog 2001  
  8. (*keep*) wire [3:0] Cnt;  
  9. reg  [3:0] cnt;  
  10.  
  11. assign Cnt = cnt;  
  12. assign oCNT = Cnt;  
  13.  
  14. always@(posedge iCLK, negedge iRST_N) begin  
  15.   if (!iRST_N)  
  16.     cnt <= 4'h0;  
  17.   else 
  18.     cnt <= cnt + 4'h1;  
  19. end  
  20.  
  21. endmodule  


8行
(*keep*) wire [3:0] Cnt;

这是Verilog 2001的语法,Quartus II 8.0也能看得懂。

结语
关于避免Quartus II优化reg,/*synthesis noprune*/与/*synthesis preserve*/还是有些差异,程序写到很大时,可能一时很难决定要用哪一个attribute,可以交替试试看,反正1/2的机会,总会对一个。会使用synthesis attribute之后,总算解掉长久以来,无法用SignalTap II观察reg与wire的老问题。

(

上一页  [1] [2] [3] 


本文关键字:暂无联系方式电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制

《使用SignalTap II观察reg与wire值》相关文章>>>