發表文章

目前顯示的是 2019的文章

我在內層走線量到好大的遠端串擾(FE-XTLK)

圖片
Take-away:  對於訊號傳遞方向而言,內層走線有近端串擾,沒有遠端串擾。 實際PCB設計,訊號受到阻抗不連續產生反射後,此反向傳播訊號會將近端串擾轉變為遠端串擾,讓內層走線也有遠端串擾。 在評估走線要走外層或內層,需考慮完整via數量/via位置/負載型態/走線長度/線距才能準確評估。 -----Start 老闆:這板子要面積小、類比/高速數位訊號、省電不能開ODT,大家有甚麼好建議嗎? 小M:類比最怕高速數位訊號的串擾,我看到書上寫,訊號走內層就完全沒有遠端串擾! 老闆:好!訊號品質絕對是第一優先,那我們就加層數,把訊號由外層移到內層。 (板子製作好回來後‧‧‧) 老闆:小M,為什麼量出來的遠端串擾會這麼大? 內層訊號竟然比外層還髒,你不是說內層訊號沒有遠端串擾嗎? 小M:怎麼會這樣? 沒錯,大部分的SI/PI書籍都寫內層訊號沒有遠端串擾,但相信工程師們在實際的PCB設計上,還是會量到一堆雜訊,這是怎麼一回事呢? (如下圖) 要分析小M的問題,我們先從最單純的架構出發,下圖有一段2200mil(50ohm)傳輸線連接了左邊DR(50ohm)和右邊Term 50ohm,上半部是外層走線的結果、下半部是內層走線。 左上角綠色眼圖是外層走線的近端串擾。 左下角綠色眼圖是內層走線的近端串擾。 >這兩張圖可看出外層和內層都有近端串擾,不同的是外層干擾聚集在rising/falling附近,而內層干擾幾乎是每個時刻都有,這是因為近端串擾會維持2倍走線fly-time,是段很長的時間,所以雜訊很容易就涵蓋了整個bit。這邊我們在乎的是右邊RX接收到的訊號,所以左邊近端串擾的結果影響不大。 右上角綠色眼圖是外層走線的遠端串擾。 右下角綠色眼圖是內層走線的遠端串擾。 >這兩張圖可驗證小M書上的理論是正確的,就是外層有遠端串擾,而內層的遠端串擾幾乎是完美的0。 NOTE:  對於訊號傳遞方向而言,內層走線有近端串擾,沒有遠端串擾。 (如下圖) 接著來看另外一個例子,和上個例子只差在右邊負載不同。下圖是一段2200mil(50ohm)傳輸線連接了左邊DR(50ohm)和右邊Cload (1pF),上半部採用外層走線、下半部採用內層走線。 右上角綠色眼圖是外層走線的遠端串擾。 右下角綠色眼

小小的test pad會影響訊號品質? 放哪好?

圖片
Take-away:  via pad或test pad和傳輸線相比,通常為低阻抗。 兩端都在反射的架構,共振周期約為共振路徑fly time的2倍。 反射波出現的時間點和test pad長短沒關係,和整體傳輸線架構有關係。 反射波的深度和test pad長短相關。 若SDRAM無termination,且訊號是由CPU送向SDRAM,將testpad放在靠近SDRAM的地方會有較佳的訊號品質。 -----Start 為了保持傳輸線阻抗的連續,我們會盡量讓走線線寬保持一致,但實務上走線中會有無可避免的via pad或test pad,這些pad通常尺寸會比傳輸線來得寬。筆者另一篇文章提過,線寬寬代表電容較大,則阻抗越低。 NOTE: via pad或test pad和傳輸線相比,通常為低阻抗。 (如下圖) 假設傳訊號由CPU送到SDRAM,走線由A、B、C三段構成,其中B段的線寬較寬但長度短。這時工程師就很常聽到一個問題,B段那麼短對訊號有影響嗎? 筆者這裡可以先預告,B的長短只決定了品質好壞的1/3,對訊號有沒有影響是由CPU、SDRAM、A、B、C共同決定。 反射@Y:若SDRAM不開ODT,則負載為寄生電容(2pF),可視為高阻抗,所以在Y點會產生很大的正反射。 反射@X:C段阻抗50ohm,B段阻抗10ohm,所以在X點會產生很大的負反射。 (如下圖) C段5000mil,我們可算出訊號需要0.73ns來走完C段。 XY兩端都會反射,訊號首先到達Y後,花了0.73ns由Y到X,被X反射後,又花了0.73ns由X到Y,所以訊號Y->X->Y總共花了約1.5ns。 若觀察SDRAM端Y點的波型,我們預估每1.5ns就會收到一個被彈來彈去的訊號。換句話說,兩端都在反射的架構,共振周期約為走線fly time的2倍。 NOTE: 兩端都在反射的架構,會產生共振,共振周期約為共振路徑fly time的2倍。 (如下圖) 下圖的模擬結果完全符合我們的預期,每1.5ns就會有一個反射波。 (如下圖) 這個出現在訊號中央的反射波絕對不是我們想要的,但透過上述分析,可發現此共振周期和B的長度沒關係,只和C的長度有關係。B的長短不會影響反射波出現的時間點,但會影響反射波深度,這是因為B的左側也會

Z參數使用案例

圖片
Take-away:  Z_ij=V_i/I_j where I_k=0 for k≠j Z21並不是port2到port1的路徑阻抗。 使用模擬軟體前,建議多了解軟體的各種假設和前提,以免建立了錯誤的模擬電路而得到了錯誤的結果。 -----Start (如下圖) 老闆:小M阿,幫我看一下CPU和SDRAM的PDN。 小M:是的老闆,我已經把PDN的model抽好了,port都接上了。 老闆:那CPU看到的阻抗是多少呢? CPU到VRM的路徑阻抗是多少呢? 小M:模擬軟體顯示Z11=無窮大ohm, Z13=無窮大ohm,怎麼軟體好像怪怪的阿... (如下圖) 這次小M有下方的解答圖, 小M:老闆,我知道了,CPU到VRM的路徑阻抗是5ohm。 老闆:再用模擬確認一次。 於是小M又試圖用Z13來看CPU到VRM的路徑阻抗,模擬結果為Z13=無窮大ohm。 小M:老闆,這模擬軟體有問題阿,我們要換一套新的才行。 (如下圖) Z參數的定義為 Z_ij=V_i/I_j where I_k=0 for k≠j Z31:port1接上電流源I1,量測port3的電壓V3,port2/3不接東西為開路。 我們把Z31在模擬軟體的計算方式用電路畫出來,得知Z31為無窮大,所以模擬器算出的結果是正確的,只是小M誤會把Z31當成CPU到VRM的路徑阻抗。 NOT E:  Z_ij=V_i/I_j where I_k=0 for k≠j。 NOT E: Z21並不是port2到port1的路徑阻抗。 上述狀況是不是很熟悉呢? 常常覺得模擬軟體的結果很奇怪,懷疑軟體有錯誤,但其實此誤解大多是來自於工程師對定義的不了解。上例就是用了錯誤的模擬手法,得到了一個和事實完全相反的結果。 NOTE: 使用模擬軟體前,建議多了解軟體的各種假設和前提,以免建立了錯誤的模擬電路而得到了錯誤的結果。 (如下圖) 最後再回到剛剛老闆的要求,CPU到VRM的路徑阻抗是多少呢?回想我們大學量電阻值時,我們會把電表的正負端接在電阻的兩端嗎?所以在CPU端接上port正端,VRM接地,模擬器算出來的Z11就為5ohm了。 -----END -code_082301 Q from H: 在純電阻性電路下推導的Z11

DDR開強訊號會長怎樣? TX與傳輸線阻抗關係

圖片
Take-away:  DDR為讀取訊號的一種方式,DDR SDRAM才是代表動態記憶體的正式名稱。 DDR SDRAM內阻越小,訊號震幅會越大。 除了DDR SDRAM內阻,傳輸線阻抗Z0也可控制訊號震幅。 當內阻Rs<傳輸線Z0,over-driven,訊號衝得快但會有上下ringing。當內阻Rs>傳輸線Z0,under-driven,訊號衝得慢不會有上下ringing。 DDR SDRAM驅動開更強,不見得訊號眼圖就會保證更好,需配合通道的特性來選擇驅動大小。 -----Start 身為龜毛的工程師,文章開頭先解釋一下DDR這個常誤解的名詞。DDR是Double Data Rate的縮寫,意思是一個DQS週期內可讀取兩個data,是一種讀取訊號的方式。常見另一種讀取訊號的方式為SDR(Single Data Rate),例如Clock對Address訊號是SDR方式讀取。SDRAM可以用DDR方式讀取訊號,NAND Flash也可以使用DDR方式讀取訊號,所以單用『DDR』一詞來代表動態記憶體SDRAM其實是不正確的。為了避免誤會,專業的工程師最好使用『DDR4 SDRAM』一詞,此名詞也是JEDEC協會上正式使用的名稱哦! NOTE: DDR為讀取訊號的一種方式,DDR SDRAM才是代表動態記憶體的正式名稱。 (如下圖) 假設訊號內阻Rs 48ohm,傳輸線Z0 40ohm,訊號源A震幅1.2V,那麼傳送到傳輸線的訊號震幅B可用分壓定律計算 1.2v*40ohm/(48ohm+40ohm)=545mv 若把DDR4 SDRAM的驅動開強一點,降低內阻Rs 34ohm,傳輸Z0 40ohm,則震幅B為 1.2v*40ohm/(34ohm+40ohm)=649mv 可看出若訊號源內阻越小,推出來的訊號B震幅越高。 NOTE: DDR SDRAM內阻越小,訊號震幅會越大。 一般DDR4 SDRAM驅動內阻為48ohm、40ohm、34ohm,若我們的驅動已經開到最強的34ohm了,那還有其他方法可讓震幅再更高嗎? 此時我們可在傳輸線阻抗動手腳。 內阻Rs 34ohm,傳輸線Z0 40ohm,訊號B震幅為649mv 內阻Rs 34ohm,傳輸線Z0 55

金屬線把訊號反射回來? 傳輸線的阻抗不匹配

圖片
Take-away:  阻抗不連續的接面(ex:線寬不同的接面)會產生訊號反射。 反射的計算公式, 反射電壓=輸入電壓*(Z2-Z1)/(Z2+Z1)。 透射的計算公式, 透射電壓=輸入電壓*(2*Z2)/ (Z2+Z1)。 走線線寬保持一致 -> 阻抗保持連續 -> 降低反射提升訊號品質。 -----Start (如下圖) 在PCB上常見訊號線寬的改變,例如訊號線在IC下方走線會比較細,出了IC範圍後線寬就會變寬。 前幾篇提到傳輸線阻抗Z0值和金屬線寬有關,若線寬由細變寬,則阻抗將會由高變小, 那麼兩段不同阻抗的線串在一起會怎樣呢? (如下圖) 左邊傳輸線為70ohm,右邊傳輸線為50ohm,C為 線寬不同的接面( 也就是阻抗不連續的點),訊號會發生『反射』。 輸入 訊號(深藍色訊號)在A點由左向右傳送,經過B點,碰到C點時會產生一個反射訊號(紅色訊號),此反射訊號會由右往左傳送。 NOTE: 阻抗不連續的接面(ex:線寬不同的接面)會產生訊號反射。 反射電壓的大小可由此公式計算: 反射電壓=輸入電壓*(Z2-Z1)/(Z2+Z1)上方舉的例子Z2為50ohm,Z1為70ohm: 反射電壓=1*(50-70)/(50+70})=-0.167v  (如下圖) 若我們在B點設置一個高速電壓量測儀,會先量到輸入的1v訊號,接著量到反射的-0.167v訊號。 A點發射的訊號在C點一部分被反射回來,另一部分會『透射』到D點,訊號繼續由左向右前進(淺藍色訊號)。 透射電壓的大小可由此公式計算 透射電壓=輸入電壓*(2*Z2)/ (Z2+Z1)上方舉的例子Z2為50ohm,Z1為70ohm: 透射電壓=1*(2*50)/(50+70)=0.833v NOTE:  反射的計算公式, 反射電壓=輸入電壓*(Z2-Z1)/(Z2+Z1)。 透射的計算公式, 透射電壓=輸入電壓*(2*Z2)/ (Z2+Z1)。 筆者強烈建議將反射/透射公式背起來。 這些公式可由阻抗不連續接面的邊界條件推得,但筆者不在此列出推導過程。 工程師將一個訊號送出去,沒想到在途中卻反射回來, 若輸入訊號和反射訊號疊加在一起,波型會變得歪七扭八。 這絕對是工程師的噩夢。 常見的阻抗不連續有  IC break-out走線接面

PCB金屬線也有阻抗? 傳輸線阻抗

圖片
Take-away:  傳輸線的物理幾何形狀、物理尺寸決定了傳輸線阻抗Z0,可藉由調整金屬線寬來控制傳輸線阻抗。 傳輸線阻抗Z0 建議透過模擬軟體運算得知。 傳輸線阻抗Z0和電容值C反比, 例如 線寬變細->電容下降->阻抗上升。 -----Start (如下圖左方) 我們若想知道元件的電性阻抗,我們會將電壓源V接到原件的正負端,此時會產生對應的電流I,我們便可藉由V/I得到阻抗Z。 (如下圖右方) 同理,若我們把電壓源接上PCB上的走線和GND端,並觀察電流,可得到傳輸線的阻抗,習慣上稱呼傳輸線阻抗為Z0。 很神奇對吧! 不只是電阻電容有阻抗,單純的金屬走線也是有阻抗值。 傳輸線的阻抗值Z0和傳輸線的物理幾何形狀、物理尺寸有關。 (下圖) 幾何形狀上,由左至右分別為microstrip,coaxial cable,stripline,coplanar microstrip,分別有不同的傳輸線阻抗Z0,例如PCB外層常用microstrip,PCB內層常用stripline。 (下圖) 尺寸上,由左至右分別細線寬、粗線寬、厚PCB層,分別有不同的傳輸線阻抗Z0,換句話說,在PCB上,我們可藉由調整走線的線寬、或者介質層的厚度來控制傳輸線的阻抗。 Note: 傳輸線的物理幾何形狀、物理尺寸決定了傳輸線阻抗,可藉由調整金屬線寬來控制傳輸線阻抗。 要得知傳輸線的阻抗,一般有三種方式, 1為利用模擬軟體透過電腦運算, 2為模型公式解, 3為人工計算。三種方式各有優缺點,模型公式解雖然快速方便,但大多人會忽略了公式可使用的極限,得到了錯誤的結果。筆者最推薦使用1的方式來計算。常見傳輸線阻抗計算軟體 如Keysight ADS-CILD、POLAR、ANSYS Q2D,這些軟體在 2D結構、EM  quasi-static、 quasi-TEM的假設下,能夠快速得到傳輸線阻抗。 Note: 傳輸線阻抗Z0建議 透過模擬軟體運算得知 。 阻抗值可透過模擬軟體得知,但身為工程師需知道阻抗和物理結構的定性關係。例如線寬變細,那麼阻抗是升高還降低呢?筆者推薦一個簡單的方式來判斷,傳輸線阻抗Z0會反比於電容值,若物理尺寸的改變會讓電容值下降,則阻抗會升高。例如 1. 線寬變細->電容下降->阻抗上升。 2.

電線?傳輸線?

圖片
Take-away:  當金屬線長比訊號波長大上許多時,需考慮傳輸線效應。 傳輸線效應可能讓訊號波型失真。 -----Start 一片10公分地磚對人類而言只是一步,地磚的兩側A/B點對我們來說幾乎是同一點,但10公分地磚對0.5公分的小螞蟻是一大段路,螞蟻必須花一段時間才能走完地磚,這時候地磚的兩側A/B點對小小的螞蟻已經不同了。 以往在學校使用麵包板時,只要用一小段金屬線將A/B兩點接起來,我們就將A/B點視為同一點,0101的數位訊號也可以透過這一小段金屬線無時差的由A送到B。若我們將數位訊號的操作頻率提升,則訊號波長會越來越短,短到像小螞蟻一樣,此時一小段的金屬線對訊號而言也是很長的距離,A/B點不再保證相同,此時就需考慮傳輸線效應。 Note: 當金屬線長比訊號波長大上許多時,需考慮傳輸線效應。 電線或傳輸線,有甚麼差異呢? (如下圖) 將訊號由A點傳送到B點 黑=A點原始訊號 紅 =B點透過 電線 收到的訊號(線長為波長的1/4000, 線長很短->電線 ) 藍 =B點透過 傳輸線 收到的訊號(線長為波長的1/4, 線長很長-> 傳輸線) 可以看出透過傳輸線傳輸的藍色訊號,因為傳輸線的效應,所以波型產生了變化,此時這條金屬線已經無法完整地將訊號由A點傳送到B點。 Note: 傳輸線效應可能讓訊號波型失真。 -----END - code_080901

about this blog

201908成立 筆者於任職過台灣系統大廠、台灣IC大廠、美國IC大廠,也曾在美國高速領域著名的公司賣命(DesignCon ISSCC常勝軍)。 深刻體會SI/PI領域是一門很實務的工程,整體設計和產品成本、大小、公司布局等實際因素有很大關係,身為SI/PI工程師,我們首要學會基本功,了解各參數的特性,接著學習如何做trade-off,SI的世界變數非常多,讓某項變數100分某項變數20分絕對不是SI工程師的目的,如何選用最適當的solution來讓每個項目都達到60分合格,這才是一名優秀的工程師。 本網誌盡量用工程師實務角度讓大家了解SI的原理和應用,避用複雜的電磁學數學來解說SI。每篇文章開頭會有take away的總結,讓大家能快速記下重點。 如果有任何意見看法,歡迎寄信到sipi.taiwan@gmail.com 想加入blog作者團隊撰寫SI相關文章,歡迎寄信到sipi.taiwan@gmail.com 文章中所有的圖都是筆者自己製作,若要引用再麻煩大家註明本網誌就可以了。