CDC(不同時(shí)鐘之間傳數(shù)據(jù))問題是ASIC/FPGA設(shè)計(jì)中最頭疼的問題。CDC本身又分為同步時(shí)鐘域和異步時(shí)鐘域。這里要注意,同步時(shí)鐘域是指時(shí)鐘頻率和相位具有一定關(guān)系的時(shí)鐘域,并非一定只有頻率和相位相同的時(shí)鐘才是同步時(shí)鐘域。異步時(shí)鐘域的兩個(gè)時(shí)鐘則沒有任何關(guān)系。這里假設(shè)數(shù)據(jù)由clk1傳向clk2。
單bit傳輸時(shí),同步時(shí)鐘域因?yàn)轭l率和相位關(guān)系都是已知的,可以推導(dǎo)的,所以不需要采用額外的硬件電路就可以解決CDC問題,只需要源數(shù)據(jù)在clk1端保持足夠長(zhǎng)時(shí)間即可。讓其保持足夠長(zhǎng)時(shí)間有兩個(gè)好處:即便出現(xiàn)亞穩(wěn)態(tài),也可以在兩個(gè)clk2時(shí)鐘周期后數(shù)據(jù)變得穩(wěn)定下來,從而采到正確的結(jié)果。還可以防止低頻采高頻時(shí),因?yàn)轭l率跟不上而導(dǎo)致數(shù)據(jù)丟失。
單bit傳輸時(shí),異步時(shí)鐘域的傳輸就必須使用額外的電路模塊(同步器)來保證數(shù)據(jù)正確的傳輸。最基本的同步器是雙鎖存結(jié)構(gòu)的電平同步器,其余的同步器都是由其衍生而來。該同步器的基本原理,也是讓數(shù)據(jù)至少在clk2的時(shí)鐘下保存兩個(gè)周期,消除亞穩(wěn)態(tài)。當(dāng)然同步器能解決異步時(shí)鐘域的同步問題,自然也可以拿來解決同步時(shí)鐘域的問題,畢竟同步時(shí)鐘域更簡(jiǎn)單一些。
實(shí)際的電路設(shè)計(jì)中,才不會(huì)管那么多細(xì)節(jié),不管你是同步時(shí)鐘域還是異步時(shí)鐘域,只要是不同的時(shí)鐘之間傳數(shù)據(jù),就加上同步器的結(jié)構(gòu),這當(dāng)然是一種偷懶的解決辦法。脈沖同步器就是這么一種萬能的結(jié)構(gòu),對(duì)于單bit跨時(shí)鐘域傳輸而言,使用脈沖同步器就夠了,不需要區(qū)分時(shí)鐘有沒有關(guān)系,也不需要區(qū)分是高頻采低頻還是低頻采高頻,畢竟也很少有人能掌握這么全的細(xì)節(jié)。
對(duì)于多bit傳輸,不能采用單bit傳輸?shù)姆椒āT蛟谟?,單bit傳輸時(shí),不能確定該數(shù)據(jù)到底經(jīng)過1個(gè)clk2時(shí)鐘周期之后有效還是兩個(gè)clk2時(shí)鐘周期之后才有效。所以對(duì)多個(gè)bit各自采用單bit的同步機(jī)制,會(huì)導(dǎo)致輸出一些錯(cuò)誤的中間狀態(tài)。對(duì)于多bit傳輸,只能使用握手信號(hào)或者異步fifo。
總結(jié)如下:
1、有關(guān)系的時(shí)鐘之間傳單bit數(shù)據(jù),理論上只需要源數(shù)據(jù)保持足夠長(zhǎng)的時(shí)間(clk2的兩個(gè)周期)即可;
2、無關(guān)系的時(shí)鐘之間傳單bit數(shù)據(jù),必須要使用同步器;
3、不管有無關(guān)系的時(shí)鐘進(jìn)行單bit傳輸,脈沖同步器都可以解決這個(gè)問題;
4、多bit傳輸只能使用握手機(jī)制或者異步fifo;
5、低頻采高頻,為防止數(shù)據(jù)不丟失,應(yīng)當(dāng)讓源數(shù)據(jù)變慢,多保持一些周期;高頻采低頻則不需要,但是高頻采低頻得到的結(jié)果可能帶有很多冗余。
原文標(biāo)題:FPGA學(xué)習(xí)-CDC問題的解決方案總結(jié)--異步時(shí)鐘
文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1645文章
22049瀏覽量
618405 -
asic
+關(guān)注
關(guān)注
34文章
1246瀏覽量
122388 -
異步時(shí)鐘
+關(guān)注
關(guān)注
0文章
17瀏覽量
9511 -
同步時(shí)鐘
+關(guān)注
關(guān)注
0文章
73瀏覽量
3495
原文標(biāo)題:FPGA學(xué)習(xí)-CDC問題的解決方案總結(jié)--異步時(shí)鐘
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ASIC和FPGA的優(yōu)勢(shì)與劣勢(shì)

#硬聲創(chuàng)作季 #ASIC 可編程ASIC設(shè)計(jì)-04.01FPGA設(shè)計(jì)中的仿真方法
cogoask講解fpga和ASIC是什么意思
如何在FPGA和ASIC設(shè)計(jì)中結(jié)合高速USB功能
ASIC設(shè)計(jì)-FPGA原型驗(yàn)證
FPGA和ASIC芯片解密有哪些性能分析
高密度IC設(shè)計(jì)中ASIC與FPGA選擇誰(shuí)
ASIC和FPGA有什么區(qū)別
ASIC和FPGA設(shè)計(jì)中的多點(diǎn)綜合技術(shù)
ASIC設(shè)計(jì)轉(zhuǎn)FPGA時(shí)的注意事項(xiàng)
如何使用report_cdc命令分析、調(diào)試和修復(fù)CDC問題
FPGA_ASIC-MAC在FPGA中的高效實(shí)現(xiàn)

評(píng)論