真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何防止reg、wire型信號在使用邏輯分析儀時被優(yōu)化

如何防止reg、wire型信號在使用邏輯分析儀時被優(yōu)化,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)是專業(yè)的北侖網(wǎng)站建設(shè)公司,北侖接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行北侖網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

今天帶來的是“如何防止reg、wire型信號在使用邏輯分析儀時被優(yōu)化”,話不多說,上貨。

 隨著FPGA設(shè)計復雜程度越來越高,芯片內(nèi)部邏輯分析功能顯得越來越重要。硬件層次上的邏輯分析儀價格十分昂貴,而且操作比較復雜。目前,F(xiàn)PGA芯片的兩大供應商都為自己的FPGA芯片提供了軟件層面上的邏輯分析儀,可以幫助我們在線分析芯片內(nèi)部邏輯。而且操作簡單方便,但是往往因為某些原因,有些信號在綜合的時候就會被優(yōu)化掉,就可能會導致我們的設(shè)計失敗,當然在為邏輯分析儀添加觀察信號的時候也無法找到該信號。從而對設(shè)計、調(diào)試人員的工作帶來一定的不便。

下面就分別以Xilinx公司的邏輯分析儀ChipScope和Altera公司的SignalTap做以下總結(jié):

 一、使用Xilinx公司的ChipScope 使用ChipScope觀察芯片內(nèi)部的信號的之前先要在把需要觀察的信號添加到ChipScope信號觀察列表當中。也就是說,我們必須能夠在綜合的網(wǎng)表文件中找到相應的信號。如果是使用XST綜合的話,最好保留芯片內(nèi)部結(jié)構(gòu)的層次,這樣就可以在相應的子模塊查找需要觀察的信號。默認情況下,Chipscope只能觀察reg類型的信號。但是通過設(shè)置屬性也是可以觀察wire型信號的。使用不同的綜合工具需要添加的屬性也不一樣。 

1、使用XST綜合。 

(1) 對于reg型信號,如果被ISE優(yōu)化掉,一般有可以把這個信號和其他沒有被優(yōu)化的信號進行“與”、“或”等操作,這樣就可以達到觀察信號的目的。 

(2) 對于wire型號,對于ISE12.3以后的版本,XST綜合,以Spartan3為例,可以使用(* KEEP="TRUE") wire [15:0] CPLD_ AD;這樣就可以在查找信號的信號找到wire類型的CPLD _AD信號進行觀察。 

2、使用Synplify Pro綜合 Synplify Pro對wire、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自帶的綜合器為了防止某些信號綜合器優(yōu)化掉,也有自己的一套綜合約束屬性。 

(1)對于reg型信號,為了防止Altera自帶綜合器將其優(yōu)化掉,可以添加noprune屬性。這樣就可以防止某些寄存器信號被優(yōu)化掉。也可以使用/synthesis noprune/綜合屬性。 `include "define.v"

module SignalTap_test( Clk, Rst, Cnt) /synthesis noprune/ ;

input   wire        Clk ;
input   wire        Rst ;   
output  reg [7:0]     Cnt ;

always@(posedge Clk or posedge Rst)   
begin
    if( Rst == 1'b1)
        Cnt <= 8'h0;
    else
        Cnt <= #`ULDY Cnt + 1'b1;
end

endmodule

如上例(假設(shè)Cnt信號會被優(yōu)化掉),這樣添加綜合屬性之后,整個module的reg信號都不會被優(yōu)化掉。 跟reg相關(guān)的綜合屬性,除了/synthesis noprune/可用,還有一個/synthesis preserve/可用 

二者的差別在于:

 /synthesis noprune/ 避免Quartus II優(yōu)化掉output 型的reg信號。

 /synthesis preserve/ 避免Quartus II把reg信號當成VCC或者GND等常數(shù) 

同時單獨的reg信號也可以: (preserve) reg [3:0] cnt;防止被優(yōu)化掉。 

(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型信號被優(yōu)化掉。但是也有可能出現(xiàn)這樣的情況,有的信號即使經(jīng)過此處理,仍然會被綜合工具優(yōu)化掉,致使無法找到它。這個時候就需要對其使用“測試屬性”,可以加入probe_port屬性,把這兩個屬性結(jié)合在一起,即就是: ( *synthesis, probe_port,keep *) 即可,這種方法同時適應于wire和reg型信號類型。 

2、使用Synplify Pro綜合 使用Synplify Pro綜合時防止信號被優(yōu)化掉的方法和使用Xilinx公司 ChipScope使用Synplify Pro綜合時添加的綜合約束一樣,因為Synplify Pro是專業(yè)的綜合廠商,所以對主流的FPGA廠商都支持。 

三、總結(jié) 

1、以上的方法也不一定是全部都可以使用,有時候因為版本不對應就會導致信號依然會被優(yōu)化掉。不過經(jīng)過輪詢之后發(fā)現(xiàn),ISE 12.3以后的版本、Quartus II 9.0之后的版本、Synplify Pro 9.0.1以后的版本都可以使用。 

2、一般情況下,信號經(jīng)常被優(yōu)化掉,還是與代碼風格或者邏輯設(shè)計有冗余有關(guān)的,所以還是應該盡量提供代碼質(zhì)量。在不能解決的時候再添加綜合約束。

看完上述內(nèi)容,你們掌握如何防止reg、wire型信號在使用邏輯分析儀時被優(yōu)化的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


名稱欄目:如何防止reg、wire型信號在使用邏輯分析儀時被優(yōu)化
文章源于:http://weahome.cn/article/gijigi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部