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