色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FPGA可測(cè)性設(shè)計(jì)的“大數(shù)據(jù)”原理

          FPGA可測(cè)性設(shè)計(jì)的“大數(shù)據(jù)”原理

          作者: 時(shí)間:2017-10-21 來源:網(wǎng)絡(luò) 收藏

            當(dāng)下,最火的學(xué)問莫過于“”,的核心思想就是通過科學(xué)統(tǒng)計(jì),實(shí)現(xiàn)對(duì)于社會(huì)、企業(yè)、個(gè)人的看似無規(guī)律可循的行為進(jìn)行更深入和直觀的了解。的可測(cè)性也可以對(duì)內(nèi)部“小數(shù)據(jù)”的統(tǒng)計(jì)查詢,來實(shí)現(xiàn)對(duì)內(nèi)部BUG的探查。

          本文引用地址:http://cafeforensic.com/article/201710/367065.htm

            可測(cè)性設(shè)計(jì)對(duì)于FPGA設(shè)計(jì)來說,并不是什么高神莫測(cè)的學(xué)問。FPGA的可測(cè)性設(shè)計(jì)的目的在設(shè)計(jì)一開始,就考慮后續(xù)問題調(diào)試,問題定位等問題。要了解FPGA可測(cè)性設(shè)計(jì),只不過要回答幾個(gè)問題,那就是:

           ?。?) 設(shè)計(jì)完成如何進(jìn)行測(cè)試?

           ?。?) 設(shè)計(jì)出現(xiàn)問題,如何迅速定位?

           ?。?) 如何在設(shè)計(jì)之初就能劃分故障的層次,進(jìn)行問題隔離?

            一般情況下,在設(shè)計(jì)的調(diào)試階段,如果出現(xiàn)BUG,則需要通過嵌入式邏輯分析儀(chipscope/signaltap)對(duì)可能出現(xiàn)問題的信號(hào)進(jìn)行抓取。這種方式,對(duì)于較大型的設(shè)計(jì)調(diào)試速度較慢(其編譯時(shí)間較長(zhǎng),迭代速度較慢,但是也是一種很有效的手段和FPGA的必備技能)。那么對(duì)于大型工程的可測(cè)試性,有什么行之有效的手段?

           ?。?)統(tǒng)計(jì)計(jì)數(shù)。

            FPGA設(shè)計(jì)中的統(tǒng)計(jì)計(jì)數(shù)不是不是什么”“,只不過是些“小數(shù)據(jù)”,例如,對(duì)于網(wǎng)絡(luò)接口來說,收到多少包,發(fā)送多少包,收到多少字節(jié),發(fā)送多少字節(jié)。 對(duì)于一個(gè)模塊來說,收到多少次調(diào)用,或者發(fā)起多少次操作。對(duì)于讀取的數(shù)據(jù)流操作,從中讀取多少frame(幀),向后級(jí)寫入多少幀。

            這些計(jì)數(shù),毫無疑問都是需要占用資源的,但是占用這些資源是有價(jià)值的。通過這些計(jì)數(shù),設(shè)計(jì)可以通過總線接口供外部處理器讀出。于是一張F(tuán)PGA內(nèi)部設(shè)計(jì)的“大數(shù)據(jù)”圖形就顯現(xiàn)出來了”。

           

            從上圖可得,通過外部CPU可將各處理模塊中的計(jì)數(shù),分別讀出,于是得到其內(nèi)部的一張數(shù)據(jù)流圖。我們可以簡(jiǎn)化設(shè)計(jì)為(計(jì)數(shù)A->計(jì)數(shù)B->計(jì)數(shù)C->計(jì)數(shù)D->計(jì)數(shù)E)。實(shí)際使用中可根據(jù)占用的資源和實(shí)際需要的觀測(cè)點(diǎn)來確定。

            假設(shè),我們?cè)谡{(diào)試過程中發(fā)現(xiàn),有輸入突然沒有輸出,這是不需要再去內(nèi)嵌邏輯分析儀來抓取信號(hào),通過CPU的軟件,可以打印出所有計(jì)數(shù),在有輸入驅(qū)動(dòng)的情況下,假設(shè)計(jì)數(shù)C有變化,而計(jì)數(shù)D沒有變化,則直接定位處理模塊3,此時(shí)處理有問題,簡(jiǎn)單直接而有效。

            令一種情形也可以迅速定位,輸入多,但是輸出少,比如正常輸入的碼流,但是輸出到顯示上確實(shí)缺幀少幀,完全不流暢。通過計(jì)數(shù)分析,原本幀計(jì)數(shù)C和D應(yīng)該一樣多,但是D卻計(jì)數(shù)較C少很多,說明此時(shí)處理模塊3性能不夠,或者設(shè)計(jì)有缺陷。這樣就把整個(gè)設(shè)計(jì)的關(guān)鍵點(diǎn)定位到處理模塊3.

            通過FPGA內(nèi)部各模塊的關(guān)鍵計(jì)數(shù)分析,來定位分析問題,在設(shè)計(jì)上沒有任何難度。不過需要外部CPU或者FPGA嵌入式CPU的配合使用。

            凡事有利就有弊,添加多的計(jì)數(shù),會(huì)增加資源的使用量,那么如何平衡?對(duì)這種分析計(jì)數(shù)進(jìn)行單獨(dú)位寬設(shè)定,在全局統(tǒng)一的宏定義中定位`define REG_WIDTH N 。此時(shí)N的設(shè)定可以靈活多樣,8位/16位/32位等等??梢愿鶕?jù)項(xiàng)目中資源的剩余量,靈活添加所需的邏輯,畢竟這些計(jì)數(shù)的值提供分析試用。

           ?。?)狀態(tài)輸出。

            如果向上述問題一樣,我們定位到某個(gè)模塊,那么如何再定位到模塊中那個(gè)邏輯的問題?

            解決這個(gè)問題的關(guān)鍵,就是狀態(tài)機(jī),向輸出計(jì)數(shù)一樣,一般的設(shè)計(jì)中,都會(huì)以狀態(tài)機(jī)為核心進(jìn)行設(shè)計(jì),將狀態(tài)機(jī)的CS(當(dāng)前狀態(tài))信號(hào)引出,如果沒有外部輸出的情況下,當(dāng)前狀態(tài)應(yīng)該為IDLE。比如上文中,我們定位到模塊3此時(shí)死機(jī),等待不再輸入外部信號(hào)時(shí),此時(shí)模塊3中的狀態(tài)機(jī)信號(hào)如不為IDLE,假如此時(shí)正處于狀態(tài)B_CS,則說明此時(shí)模塊的錯(cuò)誤出現(xiàn)在狀態(tài)B。而B跳轉(zhuǎn)必須由信號(hào)X起效。因此可以直接定位到信號(hào)X的問題。剩下就是要定位信號(hào)X為什么不起效。

           ?。?)邏輯復(fù)位。

            劃分FPGA的問題或者模塊問題的另一種方式就是邏輯復(fù)位,上文講復(fù)位時(shí)(架構(gòu)設(shè)計(jì)漫談),邏輯復(fù)位,如果A模塊自身有邏輯復(fù)位,如果設(shè)計(jì)沒有輸出(通俗叫做“FPGA死了”),如果懷疑某個(gè)模塊,該模塊邏輯復(fù)位后,設(shè)計(jì)又正常工作,則需要定位的則是可以是該模塊、或者該模塊影響的與其連接模塊(該模塊的非正常輸出導(dǎo)致下一級(jí)模塊出錯(cuò))。

            本文將的FPGA可測(cè)性設(shè)計(jì),非ASIC講的通過插JTAG/BIST進(jìn)行的測(cè)試。其目的還是通過關(guān)注如何測(cè)試的設(shè)計(jì),來定位問題,提高FPGA的可測(cè)性。除此之外,邏輯探針也是可以一個(gè)解決測(cè)試問題的方向(專題另述)。可測(cè)性的提高,意味著調(diào)試手段的增加,調(diào)試速度加快,而不是一味的依賴嵌入式邏輯分析儀。能夠達(dá)到快速問題定位能力,是FPGA研發(fā)能力一個(gè)重要的體現(xiàn),而可測(cè)性設(shè)計(jì)則是提升這一能力有力的助手。



          關(guān)鍵詞: 大數(shù)據(jù) FPGA FIFO

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉