FPGABuffer專題介紹(二)

      網友投稿 1409 2022-05-30

      目錄

      背景

      IBUF

      IBUFDS

      IBUFG

      IBUFGDS

      背景

      這篇博文是下面這篇博文的繼續:

      【FPGA】Buffer專題介紹(一)

      但介紹方式我想放的更自由一點,要不然就是官方文檔了。

      IBUF

      這是一個輸入緩沖(Input Buffer)原語,不過這個原語一般不需要你自己去例化,綜合工具會根據情況自己添加的。

      上面顯示,推薦的設計方法是Inference,什么意思呢?就是綜合工具自己添加進設計中。

      且看下面這段話:

      This design element is automatically inserted (inferred) by the synthesis tool to any signal directly connected to a top-level input or in-out port of the design. You should generally let the synthesis tool infer this buffer.

      However, it can be instantiated into the design if required. In order to do so, connect the input port (I) directly to the associated top-level input or in-out port, and connect the output port (O) to the logic sourced by that port.

      Modify any necessary generic maps (VHDL) or named parameter value assignment (Verilog) in order to change the default behavior of the component.

      這個設計元素由綜合工具自動插入(inferred)到與設計的頂層輸入或輸入輸出端口直接連接的任何信號。(翻譯的太蹩腳了,意思也就是這個IBUF通過綜合工具推斷,被插入到任何輸入信號上,或者是一個輸入輸出(in-out)信號。)

      【FPGA】Buffer專題介紹(二)

      您通常應該讓綜合工具推斷出這個緩沖區。

      但是,如果需要,可以將其實例化到設計中。 為此,將輸入端口(I)直接連接到相關的頂級輸入或輸入輸出端口,并將輸出端口(O)連接到該端口提供的邏輯。 修改任何必要的通用映射(VHDL)或命名參數值賦值(Verilog)以更改組件的默認行為。

      說簡單很簡單,就不用你管,你知道有這個東西就好了,他就是與輸入信號相連接的一個輸入緩沖,這玩意很重要,在FPGA電路中幾乎可以說是必須用。

      如果非得自己實例化,我也給出模板:

      Verilog Instantiation Template // IBUF: Single-ended Input Buffer // All devices // Xilinx HDL Libraries Guide, version 11.2 IBUF #( .IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for // the buffer: "0"-"12" (Spartan-3E) // "0"-"16" (Spartan-3A) .IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input // register: "AUTO", "0"-"6" (Spartan-3E) // "AUTO", "0"-"8" (Spartan-3A) .IOSTANDARD("DEFAULT") // Specify the input I/O standard )IBUF_inst ( .O(O), // Buffer output .I(I) // Buffer input (connect directly to top-level port) ); // End of IBUF_inst instantiation

      IBUFDS

      這個原語就很重要了,我曾經在工程中遇到過它,當時我很納悶,這到底是個啥玩意,一系列類似的buff讓我很頭疼,當然帶我入門的文章是這一篇:https://blog.csdn.net/Reborn_Lee/article/details/81289891

      這是一個差分轉單端的Buffer而已,用途就是將差分信號轉換成單端信號。

      如下:

      This design element is an input buffer that supports low-voltage, differential signaling. In IBUFDS, a design level interface signal is represented as two distinct ports (I and IB), one deemed the "master" and the other the "slave." The master and the slave are opposite phases of the same logical signal (for example, MYNET_P and MYNET_N). Optionally, a programmable differential termination feature is available to help improve signal integrity and reduce external components.

      該設計元素是一個支持低電壓差分信號的輸入緩沖器。 在IBUFDS中,設計級接口信號表示為兩個不同的端口(I和IB),一個視為“主”,另一個視為“從”。 主機和從機是相同邏輯信號的相位相反(例如,MYNET_P和MYNET_N)。 可選的,可編程差分端接功能可用于幫助改善信號完整性并減少外部元件。

      (谷歌翻譯有時候還可以,差不多我就不修改了!)

      這個Buffer就需要自己例化了。

      例化模板:

      Verilog Instantiation Template // IBUFDS: Differential Input Buffer // Virtex-4/5, Spartan-3/3E/3A // Xilinx HDL Libraries Guide, version 11.2 IBUFDS #( .CAPACITANCE("DONT_CARE"), // "LOW", "NORMAL", "DONT_CARE" (Virtex-4 only) .DIFF_TERM("FALSE"), // Differential Termination (Virtex-4/5, Spartan-3E/3A) .IBUF_DELAY_VALUE("0"), // Specify the amount of added input delay for // the buffer: "0"-"12" (Spartan-3E) // "0"-"16" (Spartan-3A) .IFD_DELAY_VALUE("AUTO"), // Specify the amount of added delay for input // register: "AUTO", "0"-"6" (Spartan-3E) // "AUTO", "0"-"8" (Spartan-3A) .IOSTANDARD("DEFAULT") // Specify the input I/O standard ) IBUFDS_inst ( .O(O), // Buffer output .I(I), // Diff_p buffer input (connect directly to top-level port) .IB(IB) // Diff_n buffer input (connect directly to top-level port) ); // End of IBUFDS_inst instantiation

      IBUFG

      專用輸入時鐘緩沖器(?Dedicated Input Clock Buffer)

      這個原語的使用也是通過綜合工具推斷,需要的時候自動添加的。同樣,你也可以例化來用(就怕你不會用,哈哈)。

      下面的介紹還不錯:

      The IBUFG is a dedicated input to the device which should be used to connect incoming clocks to the FPGA’s global clock routing resources. The IBUFG provides dedicated connections to the DCM, PLL, or BUFG resources. providing the minimum amount of clock delay and jitter to the device. The IBUFG input can only be driven by the global clock (GC) pins.

      IBUFG是器件的專用輸入,應用于將輸入時鐘連接到FPGA的全局時鐘布線資源。 IBUFG提供與DCM,PLL或BUFG資源的專用連接。 為器件提供最小量的時鐘延遲和抖動。 IBUFG輸入只能由全局時鐘(GC)引腳驅動。

      Verilog Instantiation Template // IBUFG: Global Clock Buffer (sourced by an external pin) // All FPGAs // Xilinx HDL Libraries Guide, version 11.2 IBUFG #( .IOSTANDARD("DEFAULT"), .IBUF_DELAY_VALUE("0") // Specify the amount of added input delay for // the buffer: "0"-"12" (Spartan-3E) // "0"-"16" (Spartan-3A) ) IBUFG_inst ( .O(O), // Clock buffer output .I(I) // Clock buffer input (connect directly to top-level port) ); // End of IBUFG_inst instantiation

      IBUFGDS

      差分信號專用輸入時鐘緩沖器和可選延遲(Differential Signaling Dedicated Input Clock Buffer and Optional Delay)

      這個Buffer需要自己例化來使用。

      This design element is a dedicated differential signaling input buffer for connection to the clock buffer (BUFG) or MMCM. In IBUFGDS, a design-level interface signal is represented as two distinct ports (I and IB), one deemed the "master" and the other the "slave." The master and the slave are opposite phases of the same logical signal (for example, MYNET_P and MYNET_N). Optionally, a programmable differential termination feature is available to help improve signal integrity and reduce external components. Also available is a programmable delay is to assist in the capturing of incoming data to the device.

      該設計元素是專用差分信號輸入緩沖器,用于連接時鐘緩沖器(BUFG)或MMCM。 在IBUFGDS中,設計級接口信號表示為兩個不同的端口(I和IB),一個視為“主”,另一個視為“從”。 主機和從機是相同邏輯信號的相位相反(例如,MYNET_P和MYNET_N)。 可選的,可編程差分端接功能可用于幫助改善信號完整性并減少外部元件。 還可以使用可編程延遲來幫助捕獲到設備的輸入數據。

      Verilog Instantiation Template // IBUFGDS: Differential Global Clock Buffer (sourced by an external pin) // Virtex-4/5, Spartan-3/3E/3A // Xilinx HDL Libraries Guide, version 11.2 IBUFGDS #( .DIFF_TERM("FALSE"), // Differential Termination (Virtex-4/5, Spartan-3E/3A) .IOSTANDARD("DEFAULT") // Specifies the I/O standard for this buffer .IBUF_DELAY_VALUE("0") // Specify the amount of added input delay for // the buffer: "0"-"12" (Spartan-3E) // "0"-"16" (Spartan-3A) ) IBUFGDS_inst ( .O(O), // Clock buffer output .I(I), // Diff_p clock buffer input .IB(IB) // Diff_n clock buffer input ); // End of IBUFGDS_inst instantiation

      不想寫太長,需要介紹的還有幾個,等下一篇博文介紹。

      FPGA

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:高數計算,我Python替你承包了
      下一篇:爬蟲管理平臺 Crawlab 專業版 v0.1.0 正式發布
      相關文章
      亚洲av无码成人精品国产| 亚洲成在人线在线播放无码| 亚洲国产精品尤物YW在线观看| 亚洲avav天堂av在线网爱情| 亚洲黄色在线视频| 久久久亚洲欧洲日产国码是AV| 亚洲国产精彩中文乱码AV| 亚洲色成人网站WWW永久| 亚洲AV无码乱码在线观看牲色| 亚洲AV无码一区二区三区鸳鸯影院| 亚洲欧美成aⅴ人在线观看| 亚洲高清一区二区三区| ASS亚洲熟妇毛茸茸PICS| 一区二区亚洲精品精华液| 成人亚洲国产va天堂| 亚洲色精品三区二区一区| 亚洲中文精品久久久久久不卡| 中文字幕乱码亚洲无线三区| 亚洲熟妇久久精品| 亚洲第一综合天堂另类专 | 亚洲a无码综合a国产av中文| 亚洲精华液一二三产区| 国产亚洲精品精品精品| 亚洲不卡AV影片在线播放| 77777亚洲午夜久久多人| 久久精品九九亚洲精品天堂| 亚洲第一精品在线视频| 亚洲美女aⅴ久久久91| 亚洲一卡2卡4卡5卡6卡在线99 | 国产成人精品日本亚洲专区| 337p日本欧洲亚洲大胆裸体艺术| 亚洲国产精品一区二区第一页| 亚洲AV中文无码乱人伦下载| 99久久亚洲综合精品成人网| 亚洲国产成人在线视频 | 亚洲av无码乱码国产精品| 亚洲福利一区二区三区| 亚洲а∨天堂久久精品9966| 亚洲a无码综合a国产av中文| 91麻豆国产自产在线观看亚洲 | 国产精品亚洲精品青青青|