JESD204B_SystemC_module Clk(2)

2、CLK

       JESD204B內部包含豐富的時鐘資源,在一個JESD的系統中,所有的器件將共用一個(source)時鐘源,這個時鐘可以稱爲源時鐘。經過源時鐘,將產生具體的器件需要的時鐘,根據系統的結構不同,所需要的時鐘也不同。ADC/DAC的輸入時鐘稱爲轉換器時鐘(converter device clock),FPGA的輸入時鐘稱爲數字邏輯器件時鐘(logic device clock)。

      Logic device clk是FPGA的輸入參考時鐘,FPGA將通過Logic device clk生成所需要frame clock、multiframe clock、character clock、sample clcok、bit clock,以上的時鐘將在後面進行具體的介紹。

     Converter device clock是ADC/DAC的輸入參數時鐘,同理,ADC/DAC上的所有時鐘都由converter device clock時鐘衍生而來,衍生的意思指其他的時鐘可以由converter clock 通過PLL生成,也可以是converterclock只作爲生成其他的時鐘的參考或者邊沿對齊標誌,在本次的設計中,ADC/DAC上的所有時鐘由converter device clock倍頻或者分頻得到,並且他們的相位對齊。

                                                 

                                                                                                                                                圖1:時鐘拓撲接口圖

       如圖1所示,系統的時鐘管理包括兩個部分:clock distribution device 模塊,apllication clcok generators模塊。

clock distribution device 模塊爲時鐘源控制模塊,該模塊生成系統中所有的器件需要的時鐘,並且包括SYSREF信號,SYSREF是系統中發送器件與接收器件的同步信號。該模塊生成接收器和發送器所需要的device clock,在JESD204A中,接收器和發送器的devcie clock必須保持一致,而在JESD204B中,各自的device clock可以是不一致,但是建議各個器件的devcie clock的頻率保持整數倍的關係。

2.1   Device clock

            Device clock 是所有接收器和發送器的所有時鐘來源,每一個發送與接收器都需要一個Device clock,不同器件間的Device clock必須由唯一的Source clock生成。Device clock 可能與frame clock、multiframe clock 的頻率不同。但是frame clock、multiframe clock須由Device clock 衍生而成,也可以理解爲device clock 是各個器件的PLL的參考時鐘。

           根據Device clock與frame clock、multiframe clock的關係,JESD204B的時鐘模式可以分爲以下3類:

                             Subclass0:   該時鐘類是爲向JESD204A保持兼容。

                             Subclass1:    Multiframe clock的時鐘週期必須是device clock的整數倍,主要的特點是用SYSREF完成不同器件的時鐘同步。

                             Subclass2:    Device clock 生成frame clock、multiframe clock,同時Tx Device clock 必須是RX device clock的整數倍,或者RX device clock 是Tx Device                                                                clock的整數倍,在該時鐘類下,接收器與發送器的同步通過SYNC信號,並且通過發送控制信號完成發送或者接收器中的時鐘調整。

2.2   Frame clock 、Local Multiframe clock

      Frame clock 是應用層和JESD204的鏈路層橋樑。

          在鏈路層中,數據會先被組合成幀,多個單幀又會組成復幀(multiframe),multiframe 必須與LMFC(Local Multiframe clock)對齊。

           每個發送與接收器有獨立的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  所有的發送與接收器Frame clock的週期必須一致。

            l  所有的發送與接收器的Multiframe clock的週期必須保持一致。

            l  在JESD204系統中所有的Frame clock 、Local Multiframe clock必須來自同一個時鐘源。

            l  在每個device中,frame clock與LMFC必須保持對齊

            l  在Subclass 1中,當SYSREF爲高電平時,Frame clock 、Local Multiframe clock的上升沿與device clock第一個上升沿對齊。

            l  在Subclass 2中,Frame clock 、Local Multiframe clock與SYNC的上升沿對齊。

            l  Device可以允許LFMC的相位可以小範圍的調整,這樣可以保證系統中所有的devices更好的對齊,這個功能主要針對於subclass2,通過LFMC的相位,可以保證發送器與接收器的LFMC對齊。

             如果一個device支持多個JESD204,上述要求是獨立的。

   2.3 SYNC
            SYNC的接口是接收器給發送器的一個反饋,SYNC必須與RXdevice內部的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 中用於解決發送與接收的延遲的問題。

               當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信號將實現發送器與接收器之間有固定的數據延遲,SYSREF的目的是用來確定用哪個一個device的的上升沿來對齊LMFC和frame clock的相位。因爲LMFC和frame clock通常會與character clock對齊,所以在調整LMFC和frame clock時,character clock的相位也需要同時的調節。

        SYSREF可以是一個週期信號,或者脈衝的週期信號,也可以是單脈衝信號,只有在器件請求同步是,才產生SYSREF信號,高電平有效,一般是通過deviceclock的上升沿抓取,但也可以通過下降沿抓取。

         對於週期的SYSREF來說,他的頻率必須是LMFC的整數倍,LMFC和frame clock將與抓到SYSREF信號的device clock的上升沿對齊,週期的SYSREF信號除了對齊器件的時鐘外,也可以通過檢測各個時鐘是否與SYSREF時鐘對齊來時鐘是否發生偏移。



圖4:SYSREF對齊示意圖

   對於整個系統來說,

              對於系統的同步最需要考慮的是系統的延遲,由於分佈延遲的不確定性,會導致很多的問題,而本次設計搭建的是純數字的不同的device不一定必須共用一個SYSREF,但是必須保證不同的SYSREF信號之間有固定的關係。邏輯系統,所以不考慮上述的問題。

               對於系統的延遲主要包括:Interconnect skewIntra-device skewInter-device skew

Clock distribution skewSYSREF distribution skewSYNC~ distribution skewInter-device 、SYNC~ generation skew詳見JESD204B的spec。

   2.5 SystemC 中的時鐘模型設計


               在模型的設計中,系統的主要包含兩個時鐘模塊,Clock_distribution_device 模塊, jesd204clk_generator模塊,以及SYNC_signal_encoder和SYNC_signal_decoder模塊。

   2.5.1 SYNC signal encoder and decoder

該模塊工作與frameclock時鐘域下。

在SystemC模型中,SYNC_signal_encoder在接收器中,該模塊接收系統中的SYNC請求,並生成SYNC信號。具體的流程如下:

Ø 系統復位後,SYNC信號的初始值爲0,即SYNC復位後將直接生效。

Ø RX_link控制器運行後,狀態機運行生成gen_SYSREF_req信號,gen_SYSREF_req也可以是由系統傳輸發送錯誤引起,也可以由其他情況觸發。

Ø 在Subclass 0中,SYNC將延遲gen_SYSREF_req一拍輸出。

Ø 在Subclass1、2中,SYNC信號在gen_SYSREF_req下降沿是後有效,在gen_SYSREF_req的上升沿後的第一個multiframeclock的上升沿後SYNC將被置1,無效。

在SystemC模型中,SYNC_signal_decoder在發送器中,該模塊在接收系統中的SYNC請求,並將不同器件的SYNC信號組合到一起,實現SYNC的解碼。具體的流程如下:

Ø  將多個器件的SYNC相與輸出

Ø  SYNC~有效4個frame clock時鐘後,認爲系統重新同步請求有效

SYNC~有效的持續時間小於4個frame clock,認爲接收器接收發生非致命錯誤。



圖5:SYNC生成的時序仿真圖

 

   2.5.2 jesd204clk_generator

   該模塊生成系統所需要的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會做相應的調整。]



圖6:系統時鐘的關係圖

 

如上圖所示爲各個時鐘的對應關係,上面的係數的解釋如下表:



最終的模型仿真如下:



圖7:系統時鐘時序仿真圖

系統中,frame_clcok、multiframeclock、character clcok、sample clcok將根據輸入的對應參數生成不同頻率關係的時鐘,並且frame_clcok、multiframeclock、character clcok的時鐘相位可以調整。

  SYSREF_req由低拉高後,系統分別生成了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


    該模塊負責生產device clock和SYSREF信號,device clock 由source clock通過PLL生成,並且頻率和相位在系統運行的過程中不需要做調整,而SYSREF的信號形式可以多樣化,可以是週期的方波、週期的脈衝波、單脈衝信號,本次的模型中採用的單脈衝的信號。具體的實現過程遵循以下幾點:

Ø  不同的device有自己獨立的SYSREF信號,可以分爲converter SYSREF和logic SYSREF。

Ø  gen_SYSREF_req信號是生成SYSREF的請求信號,該信號在系統復位或者系統要求從新同步時會有效,信號在SYNC低電平持續4個frame clock週期後拉高,並在SYNC信號由低電平變爲高電平後拉低。

Ø  gen_SYSREF_req爲上升沿有效,在module抓取到gen_SYSREF_req信號上升沿後,SYSREF信號將在logic device clock和converter device clock的第一個對齊的上升沿後輸出高電平,以實現不同器件間的同步。

Ø  在SYSREF信號的高電平有效,並持續一個device clock的時鐘週期,根據器件的device clock的週期不同,SYSREF信號的高電平持續時間也會不同。

Ø  在SYSREF信號爲高電平時,各個器件將復位各個時鐘的frame clock、multiframe clock、character clock,以保證各個器件的時鐘邊沿對齊,具體的仿真如9所示。



圖9:SYSREF信號同步仿真圖

發佈了42 篇原創文章 · 獲贊 47 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章