最近在進行信號完整性仿真的仿真時,被人問到的碼型是什么樣子,一下子就有點懵了。發(fā)現(xiàn)自己的盲區(qū)有多了一塊,碼型是什么東西?所以上網(wǎng)收集整合了一些資料,發(fā)現(xiàn)這些東西都是平常自己用到的,只不過是沒有在意。下面簡單介紹一下PRBS:
一、PRBS偽隨機二進制序列
PRBS:Pseudo Random Binary Signal 也就是我們常說的偽隨機碼,在DDR的仿真中可以經(jīng)常被用到。
PRBS 碼具有“隨機”特性,是因為在 PRBS 碼流中,二進制數(shù)“ 0 ” 和“ 1 ” 是隨機出現(xiàn)的,但是它又和真正意義上的隨機碼不同,這種“隨機”特性只是局部的,即在周期內(nèi)部,“0”和“1”是隨機出現(xiàn)的(碼流生成函數(shù)與初始碼確定后,碼流的順序也是固定的),但各個周期中的碼流卻是完全相同的,所以我們稱其為“”偽隨機碼。PRBS 碼的周期長度與其階數(shù)有關(guān),常用的階數(shù)有 3、7 、 9 、 11 、 15 、 20 、 23 、 31 ,也就是我們常說的 PRBS7 、 PRBS9 、 PRBS11 、 PRBS15 、 PRBS20 、 PRBS23 、 PRBS31 。對于 n 階 PRBS 碼,每個周期的序列長度為 2^n-1 ,在每個周期內(nèi),“ 0 ” 和“ 1 ” 是隨機分布的,并且“ 1” 的個數(shù)較“ 0 ” 的個數(shù)多一個,連“ 1 ” 的最大數(shù)目為 n ,連“ 0 ” 的最大數(shù)目為 n-1( 反轉(zhuǎn)后就是 n-1 個連“ 1 ” 和 n 個連“ 0 ” ) 。
在對高速信號鏈路進行誤碼測試時,基本上都是利用 PRBS 碼流來模擬真實的線網(wǎng)碼流環(huán)境,因為在線網(wǎng)中,所有的數(shù)據(jù)都是隨機出現(xiàn)的,沒有任何規(guī)律可言,而 PRBS 碼流在一定程度上具有這種“隨機數(shù)據(jù)”特性,二進制“ 0 ”和“ 1 ”隨機出現(xiàn),其頻譜特征與白噪聲非常接近(白噪聲或白噪音,是一種功率波長譜密度為常數(shù)的隨機信號或隨機過程。
相對的,其他不具有這一性質(zhì)的噪聲信號被稱為有色噪聲。理想的白噪聲具有無限帶寬,因而其能量是無限大,這在現(xiàn)實世界是不可能存在的。實際上,我們常常將有限帶寬的平整訊號視為白噪音,因為這讓我們在數(shù)學(xué)分析上更加方便)。
PRBS 碼流的階數(shù)越高,其包含的碼型就越豐富,就越接近真實的線網(wǎng)環(huán)境,測試的結(jié)果就越準確。
下面是prbs3的簡單示意,當然其中還涉及到了移位寄存器和運算器等循環(huán),本文重要是簡單介紹PRBS,其中的內(nèi)部原理大家可以自己研究一下:
二、仿真中的應(yīng)用
1.在我接觸到的DDR4中的信號完整性的仿真中,經(jīng)常是要查看數(shù)據(jù)和地址等相關(guān)的眼圖是否滿足要求,所以會在SystemSI中進行模板搭建,然后添加激勵設(shè)置,每個不同的平臺要求不一樣,有的是要求跑256bit,有的是1000bit,但是這些碼型都是PRBS,如下:
2.下面ADS仿真中用到的PRBS設(shè)置,整個屬于激勵源,不僅可以使用于DDR仿真,也可以用于其他數(shù)據(jù)模擬使用: