chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CPLD設(shè)計故障異步時鐘域處理案例分析

454398 ? 來源:博客園 ? 作者:fpgatalk ? 2020-10-21 14:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

麻雀雖小,五臟俱全。CPLD規(guī)模雖小,其原理和設(shè)計方法和FPGA確是一樣的。輕視在CPLD上的投入,就有可能存在設(shè)計隱患,導(dǎo)致客戶使用產(chǎn)品時出現(xiàn)故障,從而給公司帶來不可挽回的信譽(yù)損失。

近一段時間,我遇到了兩個CPLD設(shè)計故障,這兩個故障的根因(root cause)是一樣的。其中的一個故障發(fā)生在實(shí)驗(yàn)室測試階段,另一個發(fā)生在運(yùn)營商的網(wǎng)絡(luò)上,造成了非常不好的負(fù)面影響,因此引起了高度重視,必須徹底找出原因并消除。雖然可以很容易讓故障不復(fù)現(xiàn),但是要想找到根因,并給相關(guān)人員解釋清楚, 卻并不是一件容易的事情。

問題代碼:

圖 1. 問題代碼截圖

這段代碼的功能是統(tǒng)計 輸入信號’status_in’ 的高電平持續(xù)時間。CPU寫相應(yīng)的寄存器產(chǎn)生’clr_cnt’把”cnt”清零。同時,也會把”cnt”的值給回讀到CPU。實(shí)際上就是一個讀清操作。

很明顯,這里有一個問題,就是異步時鐘域處理的問題。’clr_cnt’的時鐘為’clk_sys’,而”cnt”的時鐘為’clk_io’, ‘clk_sys’和’clk_io’是異步的,沒有確定的相位關(guān)系。

測試方法:

測試中,CPU循環(huán)執(zhí)行以下四步。

1) 清零: CPU通過Local Bus寫寄存器,產(chǎn)生’clr_cnt’脈沖,把”cnt”清零;

2) 計數(shù): CPU等待一段時間?!癱nt” 開始對外部輸入 ‘status_in’ 計數(shù);

3) 回讀: CPU通過Local Bus讀取 ”cnt” 值;

4) 循環(huán): goto 1)。

實(shí)際實(shí)現(xiàn)可能略有不同,CPLD邏輯在執(zhí)行清零1)的同時會把”cnt”的值鎖存下來,供CPU回讀,也就是1)和3)也可以是一個步驟。這樣表述是為了突出問題代碼。

問題描述:

如果’status_in’ 恒為低電平’0’輸入, 那么”cnt”應(yīng)該恒為零值??墒牵蛻舭l(fā)現(xiàn)一個非常奇觀的現(xiàn)象。測試中,讓 ‘status_in’ 恒為低電平’0’輸入時,客戶發(fā)現(xiàn)CPU會低概率的回讀到非零的”cnt”值。朋友們,你們能解釋這種現(xiàn)象嗎?

初步分析:

‘status_in’恒為零,不可能引起”cnt”變化。

‘clr_cnt’在測試中是翻轉(zhuǎn)變化的?!痗lr_cnt’是從’clk_sys’時鐘域來的信號。而時鐘’clk_sys’和時鐘’clk_io’是異步關(guān)系,沒有固定的相位關(guān)系。也就是說’clr_cnt’是可能違反觸發(fā)器”cnt”的建立/保持時間要求的,進(jìn)而出現(xiàn)亞穩(wěn)態(tài)。

但是有人認(rèn)為, “cnt”的值原來是零,“clr_cnt”只是把”cnt”的值清零, 這樣來說觸發(fā)器“cnt”的輸入根本沒有發(fā)生過變化,怎么可能有亞穩(wěn)態(tài)事件? 而且故障出現(xiàn)的概率很高,遠(yuǎn)比亞穩(wěn)態(tài)的概率高,好像也不能用亞穩(wěn)態(tài)來解釋。

問題根因:

要解釋問題的真正原因,必須要知道 ”cnt” 對應(yīng)的電路網(wǎng)表是什么樣的?!眂nt”電路網(wǎng)表由綜合工具(synthesis)生成,可以在綜合工具中查看電路圖, 圖2是網(wǎng)表的局部放大。

圖 2. “cnt”的Technology View電路

圖2中調(diào)用了進(jìn)位鏈模塊,看起來很亂,整理一下, 手工簡化一下如圖3。

圖 3. 手工簡化的“cnt”的電路圖

圖3中,可以看到,’clr_cnt’和’status_in’相或的結(jié)果控制觸發(fā)器的使能端(‘CE’)。另外,’clr_cnt’還決定了觸發(fā)器輸入(‘D’)是”cnt+1”還是”0”。真值表如下。

也許和你想象中的不一樣,電路使用了觸發(fā)器的兩個輸入端’D’和’CE’,而不是單單一個’D’端。于是,’clr_cnt’的跳變引起了’D’/’CE’的跳變。

為了說明問題方便,定義 ‘clr_cnt’ 跳變的時刻為t0,這個跳變事件傳播到觸發(fā)器’CE’端的時刻為t1, 傳播到觸發(fā)器’D’端的時刻為t2。見圖4。

圖4. “cnt”觸發(fā)器時序違反的演示

圖4中的場景, t2》t1》t0。 最初的時候,”cnt”的值為hex”0000”,”cnt+1”的值為hex”0001”。 由于’clk_io’的上升沿落在t1和t2之間, 因此”cnt”錯誤地跳變?yōu)閔ex”0001”。

一個布局布線后的設(shè)計,一般情況下CE的傳播延時(t1-t0)不會等于D的傳播延時(t2-t0)。由于’clk_io’和’clk_sys’之間的相位關(guān)系是隨機(jī)的, 肯定會出現(xiàn)’clk_io’的上升沿剛好位于t1和t2之間的情況。這種情況下,觸發(fā)器CNT[15:0]就會錯誤的采樣到”cnt+1”,而不是期望的hex”0000”值。

忽略次要參數(shù)和亞穩(wěn)態(tài)事件,故障出現(xiàn)的概率可以被估算為 (t2-t1)/TCLK_IO 。(t2-t1)越大,故障概率越高。這就是為什么故障出現(xiàn)的概率這么高的原因。

顯然,對于t2

對于t2=t1的情況(應(yīng)該沒有可能),只有當(dāng)’clk_io’采樣到’D’/’CE’的邊沿附近時,引起亞穩(wěn)態(tài)事件,CNT才會出錯,當(dāng)然這種故障的概率會低的多。

圖5. “cnt”觸發(fā)器的后仿真時序違反演示

解決措

通過以上的分析,問題是由于信號跨異步時鐘域而產(chǎn)生了模糊的時序關(guān)系,布局布線工具無法也不可能分析出這種時序要求,只能從代碼上加以處理。

1.同步化

一個很成熟的異步信號同步化方法就是多拍處理。見圖6。

圖6. 優(yōu)化過后的代碼

‘clr_cnt’經(jīng)過同步化后, ’clr_cnt_sync’會在’clk_io’上升沿之后很短的時間內(nèi)穩(wěn)定下來。布局布線工具通過利用’clk_io’的時鐘周期,去約束’clr_cnt_sync’到’D’和’CE’的路徑。從而不會出現(xiàn)”cnt”非零的錯誤。

如果’status_in’也是異步的信號,原理是一樣的,會引起計數(shù)的不準(zhǔn)確,只是故障更隱蔽,同樣需要同步化。如果’status_in’是同步的引腳輸入,必須通過時序約束告知布局布線工具,’status_in’相對于’clk_io’的建立時間和保持時間。

2.禁止CE

有人提出過一種偽辦法,我們來討論一下。就是約束綜合工具,禁止使用觸發(fā)器的’CE’功能。這樣,觸發(fā)器只有D端口, 且D = ( clr_cnt ) ? “0000” : ( status_in ) ? cnt+1 : cnt 。

當(dāng)’status_in’==0且”cnt”=”0000”時,D = ( clr_cnt ) ? “0000” : cnt = ”0000”,此時,’clr_cnt’的跳變不會引起D端口上出現(xiàn)跳變,也就不會出現(xiàn)錯誤的采樣。

這樣做局限性很大,首先限制了”cnt”=”0000”的狀態(tài)才適用, 如果”cnt”的當(dāng)前狀態(tài)非零,一樣會有問題,只是錯誤會跟隱蔽。再者,使用CE端口可以降低邏輯級數(shù),改善時序,節(jié)省面積,實(shí)際上可能的情況下應(yīng)該盡量使用。

因此禁止CE的手段是不能作為解決措施的。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1650

    文章

    22204

    瀏覽量

    626708
  • 電路圖
    +關(guān)注

    關(guān)注

    10446

    文章

    10748

    瀏覽量

    549093
  • cpld
    +關(guān)注

    關(guān)注

    32

    文章

    1258

    瀏覽量

    172762
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11186

    瀏覽量

    221205
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2047

    瀏覽量

    62780
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    黑芝麻智能跨時間同步技術(shù):消除多計算單元的時鐘信任鴻溝

    ,并以黑芝麻智能武當(dāng) C1296 芯片為例,通過多方式同步實(shí)現(xiàn)多高精度對齊,消除時鐘信任鴻溝的實(shí)測效果。 智能汽車的核心是通過多維度感知、實(shí)時決策和精準(zhǔn)控制實(shí)現(xiàn)輔助駕駛與智能交互,而這一切的前提是?"時間基準(zhǔn)一致",由于不同傳感器采集數(shù)據(jù)的頻率、機(jī)制不同,只有在時間
    的頭像 發(fā)表于 07-22 09:17 ?270次閱讀
    黑芝麻智能跨<b class='flag-5'>域</b>時間同步技術(shù):消除多<b class='flag-5'>域</b>計算單元的<b class='flag-5'>時鐘</b>信任鴻溝

    三相異步電機(jī)常見故障原因分析

    純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~*附件:三相異步電機(jī)常見故障原因分析.pdf【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時間告知,刪除內(nèi)容!
    發(fā)表于 06-13 09:38

    異步時鐘處理方法大全

    該方法只用于慢到快時鐘的1bit信號傳遞。在Xilinx器件中,可以使用(* ASYNC_REG = "TRUE" *)標(biāo)記,將兩個寄存器盡量靠近綜合,降低 亞穩(wěn)態(tài)因?qū)Ь€延遲太大而傳播到第二個寄存器的可能性。
    的頭像 發(fā)表于 05-14 15:33 ?1095次閱讀
    跨<b class='flag-5'>異步</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b>方法大全

    變頻器諧波引發(fā)系統(tǒng)電源故障分析處理

    變頻器諧波引發(fā)系統(tǒng)電源故障分析處理是一個復(fù)雜但至關(guān)重要的問題,以下是對該問題的詳細(xì)分析處理建議。 一、變頻器諧波的產(chǎn)生與危害 1. 產(chǎn)
    的頭像 發(fā)表于 05-11 16:58 ?626次閱讀
    變頻器諧波引發(fā)系統(tǒng)電源<b class='flag-5'>故障</b><b class='flag-5'>分析</b>與<b class='flag-5'>處理</b>

    電機(jī)接地故障分析處理

    絕緣進(jìn)行詳細(xì)檢查,防患于未然。純分享帖,需要者可點(diǎn)擊附件獲取完整資料~~~*附件:電機(jī)接地故障分析處理.pdf 【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時間告知,刪除內(nèi)
    發(fā)表于 04-11 09:53

    AG32 MCU中CPLD使用基礎(chǔ)(一)

    AG32 MCU中CPLD使用基礎(chǔ)(一) 目錄時鐘配置與使用 1. 外部晶振與內(nèi)部振蕩器; 2. PLL倍頻與分頻; 3. cpld可用的時鐘; 4. 幾個
    發(fā)表于 04-02 10:08

    變頻器欠壓(lu)類故障原因分析處理

    變頻器欠壓(LU)類故障通常指的是直流母線上的電壓低于變頻器的欠壓檢出值,從而觸發(fā)故障保護(hù)機(jī)制。以下是對此類故障的原因分析處理建議: 一、
    的頭像 發(fā)表于 03-14 16:05 ?2944次閱讀
    變頻器欠壓(lu)類<b class='flag-5'>故障</b>原因<b class='flag-5'>分析</b>及<b class='flag-5'>處理</b>

    與ADS8323的時鐘引腳斷開,示波器測量CPLD輸出的時鐘高電平為3.3v,連接上后只有1v,為什么?

    與ADS8323的時鐘引腳斷開,示波器測量CPLD輸出的時鐘高電平為3.3v,連接上后只有1v,片子是不是壞了??
    發(fā)表于 02-05 07:40

    常見 CPLD 故障排除方法

    CPLD作為一種靈活的硬件解決方案,被廣泛應(yīng)用于各種電子系統(tǒng)中。然而,由于各種原因,CPLD可能會出現(xiàn)故障。 1. 初步檢查 在開始故障排除之前,進(jìn)行初步檢查是非常重要的。這包括: 電
    的頭像 發(fā)表于 01-23 10:01 ?2359次閱讀

    CPLD 優(yōu)勢與劣勢分析

    CPLD(Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)是一種介于簡單可編程邏輯器件(如PAL、GAL)和FPGA(現(xiàn)場可編程門陣列)之間的可編程邏輯器件
    的頭像 發(fā)表于 01-23 09:54 ?1709次閱讀

    CPLD 應(yīng)用場景分析

    隨著電子技術(shù)的快速發(fā)展,可編程邏輯器件在各個領(lǐng)域中的應(yīng)用越來越廣泛。CPLD作為一種靈活、成本效益高的解決方案,被廣泛應(yīng)用于多種電子系統(tǒng)設(shè)計中。 CPLD概述 CPLD是一種可編程邏輯器件,它通過
    的頭像 發(fā)表于 01-23 09:48 ?1795次閱讀

    混合示波器的原理和應(yīng)用

    故障、評估通信系統(tǒng)的性能和穩(wěn)定性等。 優(yōu)化系統(tǒng)性能:在嵌入式系統(tǒng)開發(fā)、汽車電子和電源電子學(xué)等領(lǐng)域,混合示波器可用于監(jiān)測和分析系統(tǒng)中的模擬和數(shù)字信號,以確保系統(tǒng)按照預(yù)期工作。工程師可以通過
    發(fā)表于 12-27 15:54

    CPLD輸出(3.3V)作TLC5510A的時鐘,為什么CPLD和板子共地,芯片就發(fā)熱?

    TLC5510A時鐘電壓多少伏? 我用CPLD輸出(3.3V)作TLC5510A的時鐘,為什么CPLD和板子共地,芯片就發(fā)熱? 謝謝!
    發(fā)表于 12-26 07:09

    一文解析跨時鐘傳輸

    一、單比特CDC傳輸1.1 慢到快 快時鐘相比慢時鐘采樣速度更快,也就是說從慢時鐘來到快
    的頭像 發(fā)表于 11-16 11:55 ?1617次閱讀
    一文解析跨<b class='flag-5'>時鐘</b><b class='flag-5'>域</b>傳輸

    三相異步電動機(jī)的基本結(jié)構(gòu)有哪些?三相異步電動機(jī)出現(xiàn)故障如何處理?

    三相異步電動機(jī)是一種常見的交流電動機(jī),廣泛應(yīng)用于工業(yè)和商業(yè)領(lǐng)域。其基本結(jié)構(gòu)和故障處理如下: 一、三相異步電動機(jī)的基本結(jié)構(gòu) 定子:定子是電動機(jī)的靜止部分,主要由定子鐵芯和定子繞組組成。定
    的頭像 發(fā)表于 10-23 09:21 ?2003次閱讀