日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > FPGA開源工作室

1. 前言

在數(shù)字IP/IC,F(xiàn)PGA項(xiàng)目的上板驗(yàn)證階段,對(duì)于一些難以確定原因的bug,比如:RTL仿真時(shí),測(cè)試pattern覆蓋不夠全面,fpga跑起來后的實(shí)際信號(hào)時(shí)序可能跟RTL 仿真不一致,從而出現(xiàn)Bug。一種debug的方式就是用FPGA工具提供的ILA模塊(xilixn在ISE中叫:chipscope),來實(shí)時(shí)抓取FPGA內(nèi)部數(shù)字信號(hào)的波形,分析邏輯錯(cuò)誤的原因,幫助debug。

ILA的正確、高效使用,能加速debug的進(jìn)程。

2. ILA工作原理

根據(jù)xilinx的datasheet功能描述,猜測(cè)ILA也是一個(gè)數(shù)字IP,大致結(jié)構(gòu)如下:

其中:

1) dbg_sig?:是待觀測(cè)的debug信號(hào);

2) ila_clk:是設(shè)置的ILA工作時(shí)鐘(監(jiān)測(cè)、抓?。?;

3) jtag_inf:ILA數(shù)據(jù)與上層的交互口(tigger條件設(shè)置,抓取的數(shù)據(jù)上傳);

4) sram_ctrl:根據(jù)trig_ctrl,觸發(fā)抓取,并把抓取的數(shù)據(jù)按cila_clk的cycle實(shí)時(shí)寫入SRAM;

5) sram:抓取數(shù)據(jù)的存儲(chǔ)空間;

6) jtag_io:Jtag協(xié)議定義的標(biāo)準(zhǔn)IO;

根據(jù)這個(gè)大致結(jié)構(gòu),預(yù)計(jì)ILA工作原理如下:

1) PC端GUI應(yīng)用程序設(shè)置trigger條件;通過jtag_io配置進(jìn)入ILA core;

2) ILA core開始工作,使用ila_clk監(jiān)測(cè)debug信號(hào)是否符合tigger條件;

3) 符合條件后,使用ila_clk抓取debug信號(hào),并實(shí)時(shí)存入SRAM;

4) 抓取結(jié)束后,通過jtag_io把debug信號(hào)的值上傳到PC端;

5) PC端GUI應(yīng)用程序顯示波形;

根據(jù)這個(gè)工作原理,可以推導(dǎo)出ILA的一些使用特性:

1) ILA加入后,需要增加LUT/DFF的使用量;

2) ILA加入后,需要增加的使用量,跟debug信號(hào)的數(shù)量,抓取深度成正比;

這些特性,跟實(shí)際布局布線后的結(jié)果是匹配的。

3. ILA使用方法與注意

ILA的使用步驟如下:

A. 設(shè)計(jì)綜合;

B. 點(diǎn)擊:Set Up Debug開始添加ILA;

C. 添加debug信號(hào):

D. 對(duì)每個(gè)debug信號(hào)選擇監(jiān)測(cè)、抓取時(shí)鐘:

E. 設(shè)置抓取特性:

F. 結(jié)束,保存ILA設(shè)置。ILA信息將存入工程的xdc約束文件:

到此,ILA插入結(jié)束,在place&route完成,產(chǎn)生configure bit后,下載進(jìn)入FPAG即可使用ILA進(jìn)行內(nèi)部觀測(cè)了。

4. ILA使用注意

在ILA的使用過程中,有如下3點(diǎn)需要注意:

A. 設(shè)置監(jiān)測(cè)、抓取時(shí)鐘時(shí),最好用drive這個(gè)信號(hào)的clk。因?yàn)槭菙?shù)字電路,也存在跨時(shí)鐘域的問題。如果ila_clk和debug信號(hào)的clk不一致,這兒就是一個(gè)跨時(shí)鐘域的點(diǎn)。在P&R時(shí),timing會(huì)報(bào)錯(cuò)。你可以用set_false_path來mask掉這些timing violation,但是需要記住跨時(shí)鐘域的特性:如果debug一個(gè)4bit信號(hào),實(shí)際信號(hào)只有4'b0001--> 4'b0111的變化,可能抓取到:4'b0001--> 4'b0101 -> 4'b0111。

B. 因?yàn)榫C合可能優(yōu)化掉一些信號(hào)(尤其是組合邏輯),或改變信號(hào)的名字,為了keep某些信號(hào),可以在RTL code中,添加:“* mark_debug = "true" *”,使用如下:

C. 設(shè)置抓取特性時(shí),"input pipe stage"建議設(shè)置到2~3。這樣雖然多用些DFF,可以確保ILA輸入時(shí)的timing更容易過。因?yàn)槟愕膁ebug邏輯可能離ILA core非常的遠(yuǎn),增加pipe stage寄存器,可以把信號(hào)一級(jí)一級(jí)pipe到ILA core的輸入口。

5. 寫在最后

雖然ILA比邏輯分析儀好用多了,但是并不建議靠ILA來debug。因?yàn)椋?

1) ILA分析的波形長度有限;

2) ILA抓取的信號(hào)數(shù)量有限;

3) 添加大量信號(hào)時(shí),麻煩;

4) 如果需要新加debug信號(hào),需要重新做ILA,在Place&Route,這樣費(fèi)時(shí)費(fèi)力(一個(gè)稍大的工程,可能需要跑數(shù)小時(shí));

所以,“此女”雖好但不可褻玩焉,否則走火入魔,舉步維艱。建立完備的測(cè)試pattern,cover全功能點(diǎn),跑RTL simulation才是正道。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉