本設(shè)計(jì)致力于用SystemC語言建立JESD024B的協(xié)議標(biāo)準(zhǔn)模型,描述JESD204B的所有行為,并且能夠保證用戶可以通過該JESD204B的SystemC庫,進(jìn)行JESD204B行為的仿真和RTL代碼的編寫。
設(shè)計(jì)以最新的版本JESD204B.01(July 2011)為參考,設(shè)計(jì)根據(jù)數(shù)據(jù)流的傳輸分為傳輸層、數(shù)據(jù)鏈路層、物理成進(jìn)行代碼的編寫,其中JESD204B的模擬特性在本設(shè)計(jì)中因?yàn)闊o法實(shí)現(xiàn),所以并沒有做過多的描述,具體的模擬的細(xì)節(jié)可以參考有JEDEC發(fā)布的標(biāo)準(zhǔn)協(xié)議。
JESD204和JESD204B修訂版數(shù)據(jù)轉(zhuǎn)換器串行接口標(biāo)準(zhǔn)由JEDEC委員會(huì)制定,旨在標(biāo)準(zhǔn)化并減少高速數(shù)據(jù)轉(zhuǎn)換器與FPGA(現(xiàn)場可編程門陣列)等其它器件之間的數(shù)據(jù)輸入/輸出數(shù)目。更少的互連可簡化布局布線,并支持實(shí)現(xiàn)更小尺寸的解決方案,同時(shí)不影響整體系統(tǒng)性能。這些特性對于克服許多高速ADC應(yīng)用的系統(tǒng)尺寸和成本限制非常重要,包括無線基礎(chǔ)設(shè)施(GSM、EDGE、W-CDMA、LTE、CDMA2000、WiMAX、TD-SCDMA)、收發(fā)器架構(gòu)、軟件定義無線電、便攜式儀器儀表、醫(yī)療超聲設(shè)備、雷達(dá)和安全通信等軍用/航空應(yīng)用。
文檔將分別介紹系統(tǒng)的時(shí)鐘、數(shù)據(jù)傳輸層、數(shù)據(jù)鏈路層、Deterministic Latency,系統(tǒng)的時(shí)鐘包括系統(tǒng)中時(shí)鐘的管理和生成,數(shù)據(jù)傳輸層主要完成系統(tǒng)中AD采樣數(shù)據(jù)的映射和組幀,數(shù)據(jù)鏈路層主要完成數(shù)據(jù)流的傳輸、加擾、編碼、同步、糾錯(cuò),Deterministic Latency作為JESD204B的一個(gè)新加入的功能,主要設(shè)定系統(tǒng)中中發(fā)送器與接收器之間的數(shù)據(jù)傳輸?shù)难舆t,并保證傳輸?shù)难舆t是固定的。
文檔在介紹各個(gè)大模塊的基礎(chǔ)上,將進(jìn)一步介紹協(xié)議中定義的每一個(gè)模塊的設(shè)計(jì)標(biāo)準(zhǔn),需要注意的問題細(xì)節(jié),并在每章的最后介紹該模塊在SystemC中的設(shè)計(jì)和仿真情況。
注意:為了保證文檔意思的正確無誤的表達(dá),所有的專用名詞,將用原有的英文表示。
2、CLK
JESD204B內(nèi)部包含豐富的時(shí)鐘資源,在一個(gè)JESD的系統(tǒng)中,所有的器件將共用一個(gè)(source)時(shí)鐘源,這個(gè)時(shí)鐘可以稱為源時(shí)鐘。經(jīng)過源時(shí)鐘,將產(chǎn)生具體的器件需要的時(shí)鐘,根據(jù)系統(tǒng)的結(jié)構(gòu)不同,所需要的時(shí)鐘也不同。ADC/DAC的輸入時(shí)鐘稱為轉(zhuǎn)換器時(shí)鐘(converter device clock),FPGA的輸入時(shí)鐘稱為數(shù)字邏輯器件時(shí)鐘(logic device clock)。
Logic device clk是FPGA的輸入?yún)⒖紩r(shí)鐘,F(xiàn)PGA將通過Logic device clk生成所需要frame clock、multiframe clock、character clock、sample clcok、bit clock,以上的時(shí)鐘將在后面進(jìn)行具體的介紹。
Converter device clock是ADC/DAC的輸入參數(shù)時(shí)鐘,同理,ADC/DAC上的所有時(shí)鐘都由converter device clock時(shí)鐘衍生而來,衍生的意思指其他的時(shí)鐘可以由converter clock 通過PLL生成,也可以是converterclock只作為生成其他的時(shí)鐘的參考或者邊沿對齊標(biāo)志,在本次的設(shè)計(jì)中,ADC/DAC上的所有時(shí)鐘由converter device clock倍頻或者分頻得到,并且他們的相位對齊。
圖1:時(shí)鐘拓?fù)浣涌趫D
如圖1所示,系統(tǒng)的時(shí)鐘管理包括兩個(gè)部分:clock distribution device 模塊,apllication clcok generators模塊。
clock distribution device 模塊為時(shí)鐘源控制模塊,該模塊生成系統(tǒng)中所有的器件需要的時(shí)鐘,并且包括SYSREF信號,SYSREF是系統(tǒng)中發(fā)送器件與接收器件的同步信號。該模塊生成接收器和發(fā)送器所需要的device clock,在JESD204A中,接收器和發(fā)送器的devcie clock必須保持一致,而在JESD204B中,各自的device clock可以是不一致,但是建議各個(gè)器件的devcie clock的頻率保持整數(shù)倍的關(guān)系。
2.1 Device clock
Device clock 是所有接收器和發(fā)送器的所有時(shí)鐘來源,每一個(gè)發(fā)送與接收器都需要一個(gè)Device clock,不同器件間的Device clock必須由唯一的Source clock生成。Device clock 可能與frame clock、multiframe clock 的頻率不同。但是frame clock、multiframe clock須由Device clock 衍生而成,也可以理解為device clock 是各個(gè)器件的PLL的參考時(shí)鐘。
根據(jù)Device clock與frame clock、multiframe clock的關(guān)系,JESD204B的時(shí)鐘模式可以分為以下3類:
Subclass0: 該時(shí)鐘類是為向JESD204A保持兼容。
Subclass1: Multiframe clock的時(shí)鐘周期必須是device clock的整數(shù)倍,主要的特點(diǎn)是用SYSREF完成不同器件的時(shí)鐘同步。
Subclass2: Device clock 生成frame clock、multiframe clock,同時(shí)Tx Device clock 必須是RX device clock的整數(shù)倍,或者RX device clock 是Tx Device clock的整數(shù)倍,在該時(shí)鐘類下,接收器與發(fā)送器的同步通過SYNC信號,并且通過發(fā)送控制信號完成發(fā)送或者接收器中的時(shí)鐘調(diào)整。
2.2 Frame clock 、Local Multiframe clock
Frame clock 是應(yīng)用層和JESD204的鏈路層橋梁。
在鏈路層中,數(shù)據(jù)會(huì)先被組合成幀,多個(gè)單幀又會(huì)組成復(fù)幀(multiframe),multiframe 必須與LMFC(Local Multiframe clock)對齊。
每個(gè)發(fā)送與接收器有獨(dú)立的device clock,并且frame Frame clock 、Local Multiframe clock由device clock派生。frame Frame clock 、Local Multiframe clock 可以直接由device clock生成,也可以由device clock 來同步,派生出frame Frame clock 、Local Multiframe clock。
如果Multiframe clock由device提供,在Subcalss 1中LMFC的起始相位由SYSREF決定。在Subcalss2中,由SYNC的上升沿決定。
Frameclock 、LocalMultiframe clock的要求如下:
l 所有的發(fā)送與接收器Frame clock的周期必須一致。
l 所有的發(fā)送與接收器的Multiframe clock的周期必須保持一致。
l 在JESD204系統(tǒng)中所有的Frame clock 、Local Multiframe clock必須來自同一個(gè)時(shí)鐘源。
l 在每個(gè)device中,frame clock與LMFC必須保持對齊
l 在Subclass 1中,當(dāng)SYSREF為高電平時(shí),F(xiàn)rame clock 、Local Multiframe clock的上升沿與device clock第一個(gè)上升沿對齊。
l 在Subclass 2中,F(xiàn)rame clock 、Local Multiframe clock與SYNC的上升沿對齊。
l Device可以允許LFMC的相位可以小范圍的調(diào)整,這樣可以保證系統(tǒng)中所有的devices更好的對齊,這個(gè)功能主要針對于subclass2,通過LFMC的相位,可以保證發(fā)送器與接收器的LFMC對齊。
如果一個(gè)device支持多個(gè)JESD204,上述要求是獨(dú)立的。
2.3 SYNC
SYNC的接口是接收器給發(fā)送器的一個(gè)反饋,SYNC必須與RXdevice內(nèi)部的frame clock同步。同時(shí),強(qiáng)烈建議TX frame與SYNC也保持同步(在Subclass 0和Subclass 2有要求)。強(qiáng)烈建議SYNC的接口與deviceclock的接口的物理特性保持一致,以獲得一致的延時(shí)。
圖2 subclass 0和subclass 2 中SYNC的時(shí)序
:是指Device clock到SYNC的延遲。
:建立時(shí)間
:保持時(shí)間。
圖2中展示了SYNC的時(shí)序圖,對于Subclass 0和Subclass2 是必須的,Subclass 0是為了保持與JESD204A的兼容性,而在Subclass 2 中用于解決發(fā)送與接收的延遲的問題。
當(dāng)device的devices clock快于或者等于frame clock是,device clock 將用于對齊SNYC,而當(dāng)deivice clock 慢于frame clock時(shí),SYNC將由frame clock抓取。
圖3 Subclass 0和Subclass 2 中device clock中時(shí)鐘邊沿的關(guān)系
圖3中展示的兩種不同情況下,各個(gè)時(shí)鐘邊沿的關(guān)系,在第一種情況下,frameclock的時(shí)鐘慢于deviceclock,第二種情況剛好相反。
2.4 SYSREF signal(Device Subclass 1)
在Subclass1中,SYSREF信號將實(shí)現(xiàn)發(fā)送器與接收器之間有固定的數(shù)據(jù)延遲,SYSREF的目的是用來確定用哪個(gè)一個(gè)device的的上升沿來對齊LMFC和frame clock的相位。因?yàn)長MFC和frame clock通常會(huì)與character clock對齊,所以在調(diào)整LMFC和frame clock時(shí),character clock的相位也需要同時(shí)的調(diào)節(jié)。
SYSREF可以是一個(gè)周期信號,或者脈沖的周期信號,也可以是單脈沖信號,只有在器件請求同步是,才產(chǎn)生SYSREF信號,高電平有效,一般是通過deviceclock的上升沿抓取,但也可以通過下降沿抓取。
對于周期的SYSREF來說,他的頻率必須是LMFC的整數(shù)倍,LMFC和frame clock將與抓到SYSREF信號的device clock的上升沿對齊,周期的SYSREF信號除了對齊器件的時(shí)鐘外,也可以通過檢測各個(gè)時(shí)鐘是否與SYSREF時(shí)鐘對齊來時(shí)鐘是否發(fā)生偏移。
圖4:SYSREF對齊示意圖
對于整個(gè)系統(tǒng)來說,
對于系統(tǒng)的同步最需要考慮的是系統(tǒng)的延遲,由于分布延遲的不確定性,會(huì)導(dǎo)致很多的問題,而本次設(shè)計(jì)搭建的是純數(shù)字的不同的device不一定必須共用一個(gè)SYSREF,但是必須保證不同的SYSREF信號之間有固定的關(guān)系。邏輯系統(tǒng),所以不考慮上述的問題。
對于系統(tǒng)的延遲主要包括:Interconnect skew、Intra-device skew、Inter-device skew、
Clock distribution skew、SYSREF distribution skew、SYNC~ distribution skewInter-device 、SYNC~ generation skew詳見JESD204B的spec。
2.5 SystemC 中的時(shí)鐘模型設(shè)計(jì)
在模型的設(shè)計(jì)中,系統(tǒng)的主要包含兩個(gè)時(shí)鐘模塊,Clock_distribution_device 模塊, jesd204clk_generator模塊,以及SYNC_signal_encoder和SYNC_signal_decoder模塊。
2.5.1 SYNC signal encoder and decoder
該模塊工作與frameclock時(shí)鐘域下。
在SystemC模型中,SYNC_signal_encoder在接收器中,該模塊接收系統(tǒng)中的SYNC請求,并生成SYNC信號。具體的流程如下:
? 系統(tǒng)復(fù)位后,SYNC信號的初始值為0,即SYNC復(fù)位后將直接生效。
? RX_link控制器運(yùn)行后,狀態(tài)機(jī)運(yùn)行生成gen_SYSREF_req信號,gen_SYSREF_req也可以是由系統(tǒng)傳輸發(fā)送錯(cuò)誤引起,也可以由其他情況觸發(fā)。
? 在Subclass 0中,SYNC將延遲gen_SYSREF_req一拍輸出。
? 在Subclass1、2中,SYNC信號在gen_SYSREF_req下降沿是后有效,在gen_SYSREF_req的上升沿后的第一個(gè)multiframeclock的上升沿后SYNC將被置1,無效。
在SystemC模型中,SYNC_signal_decoder在發(fā)送器中,該模塊在接收系統(tǒng)中的SYNC請求,并將不同器件的SYNC信號組合到一起,實(shí)現(xiàn)SYNC的解碼。具體的流程如下:
? 將多個(gè)器件的SYNC相與輸出
? SYNC~有效4個(gè)frame clock時(shí)鐘后,認(rèn)為系統(tǒng)重新同步請求有效
SYNC~有效的持續(xù)時(shí)間小于4個(gè)frame clock,認(rèn)為接收器接收發(fā)生非致命錯(cuò)誤。
2.5.2 jesd204clk_generator
該模塊生成系統(tǒng)所需要的6個(gè)時(shí)鐘,multiframe_clock、frame_clock、sample_clcok、character_clcok、bit_clock、sample_clcok、conversion_clcok。上訴的所有時(shí)鐘由device clock生成,并與其對齊。
在subclass 1中,multiframe_clock、frame_clock、character_clcok會(huì)與采樣到SYSREF高電平的deviceclock的上升沿對齊。
在subclass 2中會(huì)multiframe_clock、frame_clock、character_clcok會(huì)做相應(yīng)的調(diào)整。]
?
圖6:系統(tǒng)時(shí)鐘的關(guān)系圖
如上圖所示為各個(gè)時(shí)鐘的對應(yīng)關(guān)系,上面的系數(shù)的解釋如下表:
?
最終的模型仿真如下:
圖7:系統(tǒng)時(shí)鐘時(shí)序仿真圖
系統(tǒng)中,frame_clcok、multiframeclock、character clcok、sample clcok將根據(jù)輸入的對應(yīng)參數(shù)生成不同頻率關(guān)系的時(shí)鐘,并且frame_clcok、multiframeclock、character clcok的時(shí)鐘相位可以調(diào)整。
SYSREF_req由低拉高后,系統(tǒng)分別生成了FPGA的SYSREF_clock以及converter 的SYSREF_clcok,并且在兩個(gè)信號的高電平期間,他們的device clock的上升沿對齊。而同時(shí),frameclock、multiframe clock、character clock將從新對齊于device clock的上升沿,具體的如下圖所示:
圖8:SYSREF信號同步示意圖
在模型的設(shè)計(jì)中,SYNC的模型包括兩個(gè)部分:SYNC_signal_encoder、SYNC_signal_decoder。
2.5.3Clock_distribution_device
該模塊負(fù)責(zé)生產(chǎn)device clock和SYSREF信號,device clock 由source clock通過PLL生成,并且頻率和相位在系統(tǒng)運(yùn)行的過程中不需要做調(diào)整,而SYSREF的信號形式可以多樣化,可以是周期的方波、周期的脈沖波、單脈沖信號,本次的模型中采用的單脈沖的信號。具體的實(shí)現(xiàn)過程遵循以下幾點(diǎn):
? 不同的device有自己獨(dú)立的SYSREF信號,可以分為converter SYSREF和logic SYSREF。
? gen_SYSREF_req信號是生成SYSREF的請求信號,該信號在系統(tǒng)復(fù)位或者系統(tǒng)要求從新同步時(shí)會(huì)有效,信號在SYNC低電平持續(xù)4個(gè)frame clock周期后拉高,并在SYNC信號由低電平變?yōu)楦唠娖胶罄汀?/p>
? gen_SYSREF_req為上升沿有效,在module抓取到gen_SYSREF_req信號上升沿后,SYSREF信號將在logic device clock和converter device clock的第一個(gè)對齊的上升沿后輸出高電平,以實(shí)現(xiàn)不同器件間的同步。
? 在SYSREF信號的高電平有效,并持續(xù)一個(gè)device clock的時(shí)鐘周期,根據(jù)器件的device clock的周期不同,SYSREF信號的高電平持續(xù)時(shí)間也會(huì)不同。
? 在SYSREF信號為高電平時(shí),各個(gè)器件將復(fù)位各個(gè)時(shí)鐘的frame clock、multiframe clock、character clock,以保證各個(gè)器件的時(shí)鐘邊沿對齊,具體的仿真如9所示。
圖9:SYSREF信號同步仿真圖
評論