將BUFG上的時鐘信號通過FPGA的普通IO輸出

如需轉載,請將下列字段一起轉載。
新浪海風博客http://blog.sina.com.cn/dingyunfeng

 

聲明:以下內容僅指Xilinx Spartan6系列,其他FPGA並不一定適用。

   

    FPGA的設計中,時鐘系統的設計極其重要,通常時鐘信號會使用BUFG網絡減少傳輸延遲,提高系統性能並增強系統的穩定性。

 

    在實際使用中,經常會遇到需要將某個BUFG上的時鐘信號通過FPGA的普通IO輸出。如果直接從BUFG上連接到OBUF上,在編譯器map的過程中就會出現錯誤,並提示規避錯誤的方法,就是在約束文件中加上一條約束,讓編譯器忽略時序約束的要求,直接通過普通邏輯資源連接。雖然這個約束能規避這個錯誤,但中間的時序將無法評估,因此可能會導致錯誤的發生。

 

    Xilinx Spartan6對於這種應用給出的解決方案是通過ODDR2來連接,每個IO都有ODDR2資源,這些資源可以連接到BUFG網絡上。

 

    使用舉例:

    ODDR2 #(
      .DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1"
      .INIT(1'b0),    // Sets initial state of the Q output to 1'b0 or 1'b1
      .SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
    ) ODDR2_inst (
      .Q(需要輸出的時鐘信號連線),   // 1-bit DDR output data
      .C0(BUFG上的時鐘信號),   // 1-bit clock input
      .C1(BUFG上的時鐘信號的180度反相信號),   // 1-bit clock input
      .CE(1'b1), // 1-bit clock enable input
      .D0(1'b1), // 1-bit data input (associated with C0)
      .D1(1'b0), // 1-bit data input (associated with C1)
      .R(1'b0),   // 1-bit reset input
      .S(1'b0)    // 1-bit set input
    );

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章