前言
簡要整理本書部分章節內容,詳細內容可以參考閱讀原著《Xilinx FPGA開發實用教程--田耘 著》!
1、Xilinx 原語簡介
Xilinx 提供的原語涵蓋了FPGA 開發常用領域,但只有相應配置的硬件才能執行相應的原語, 並不是所有的原語都能在任意一款芯片上運行。
本節以Virtex-4平臺介紹各類原語。
原語按功能分類,主要分爲:
- 計算組件原語;
- I/O端口組件原語;
- 寄存器和鎖存器原語;
- 時鐘組件原語;
- 處理器組件原語;
- 移位寄存器原語;
- 配置和檢查組件原語;
- RAM/ROM組件原語;
- Slice/CLB組件原語;
- 吉比特收發器組件原語;
1.1 時鐘組件原語
時鐘組件包括各種全局時鐘緩衝器、全局時鐘複用器、普通I/O本地的時鐘緩衝器,以及高級數字時鐘管理模塊。
原語名 | 描述 |
BUFG | 全局時鐘緩衝器 |
BUFGCE | 全局時鐘複用器,附帶時鐘使能信號和0狀態輸出 |
BUFGCE_1 | 全局時鐘複用緩衝器,附帶時鐘使能信號和1狀態輸出 |
BUFGCTRL | 全局時鐘複用緩衝器 |
BUFGMUX | 全局時鐘複用緩衝器,附帶時鐘使能信號和0狀態輸出 |
BUFMUX_1 | 全局時鐘複用器,附帶0狀態輸出 |
BUFGMUX_VIRTEX4 | Virtex-4期間特有的全局時鐘複用緩衝器 |
BUFIO | I/O端口本地時鐘緩衝器 |
BUFR | I/O端口和CLB的本地時鐘緩衝器 |
DCM_ADV | 帶有高級特性的數字時鐘管理模塊 |
DCM_BASE | 帶有基本特徵的數字時鐘管理模塊 |
DCM_PS | 帶有基本特徵和移相特徵的數字時鐘管理模塊 |
PMCD | 匹配相位時鐘分頻器 |
對幾個常用時鐘組件進行簡單介紹。
1.1.1 BUFG
BUFG是具有高扇出的全局時鐘緩衝器,一般由綜合器自動推斷並使用。全局時鐘是具有高扇出驅動能力的緩衝器,可以將信號連接到時鐘抖動可以忽略不計的全局時鐘網絡。BUFG組件可以應用與典型的高扇出信號和網絡,如復位信號和時鐘使能信號。如果要對全局時鐘實現PLL或DCM等時鐘管理,需要手動例化該緩衝器。
1.1.2 BUFGMUX
1.2 I/O端口組件
I/O組件提供:
- 本地時鐘緩存;
- 標準單端I/O緩存;
- 差分I/O信號緩存;
- DDR專用I/O信號緩存;
- 可變抽頭延遲鏈;
- 上拉;
- 下拉;
- 單端信號和差分信號互相轉換;
原語 | 描述 |
BUFIO | I/O的本地時鐘緩存 |
DCIRESER | FPGA配置成功後,DCI狀態機的復位信號 |
IBUF | 標準和容量可選I/O單端輸入緩存 |
IBUFDS | 帶可選擇端口的差分信號輸入緩存 |
IBUFG | 帶可選擇端口的專用輸入緩存 |
IBUFGDS | 帶可選擇端口的專用差分信號輸入緩存 |
IDDR | 用於接收外部DDR輸入信號的專用輸入寄存器 |
IDELAY | 專用的可變抽頭輸入延遲鏈 |
IDELAYCTRL | IDELAY抽頭數的控制模塊 |
IOBUF | 帶可選擇端口的雙向緩存 |
IOBUFDS | 低有效輸出的三態差分信號I/O緩存 |
ISERDES | 專用I/O緩存的輸入分解器 |
KEEPER | KEEPER符號 |
OBUF | 單端輸出端口緩存 |
OBUFT | 帶可選擇端口的低有效輸出的三態輸出緩衝 |
OBUFDS | 帶可選擇端口的差分信號輸出緩衝 |
OBUFTDS | 帶可選擇端口的低有效輸出的三態差分輸出緩衝 |
ODDR | 用於向外部DDR發送信號的專用輸出寄存器 |
OSERDES | 用於快速實現輸入源同步接口 |
PULLDOWN | 輸入端寄存器下拉至0 |
PULLUP | 輸入端寄存器、開路以及三條輸出端口上拉至Vcc |
1.2.1 BUFIO
1.2.2 IBUFDS