FPGA基礎學習(6) -- 原語



原語,即primitive。不同的廠商,原語不同;同一家的FPGA,不同型號的芯片,可以也不一樣;原語類似最底層的描述方法。使用原語的好處,可以直接例化使用,不用定制IP;即可通過復制原語的語句,然后例化IP,就可使用;Xilinx是通過直接修改原語中的參數再例化IP來使用;Xilinx公司的原語分為10類,包括:計算組件,IO端口組件,寄存器/鎖存器,時鍾組件,處理器組件,移位寄存器,配置和檢測組件,RAM/ROM組件,Slice/CLB組件,G-tranceiver。下圖所示為UG799中對原語的分類列表。

項目中主要用到的原語與IO端口有關,所以基本在Input/Output Functions 和IO兩類中。下面着重介紹實際中所用到的幾個原語,芯片A7系列。

1. IBUF和IBUFDS(IO)

IBUF是輸入緩存,一般vivado會自動給輸入信號加上,IBUFDS是IBUF的差分形式,支持低壓差分信號(如LVCMOS、LVDS等)。在IBUFDS中,一個電平接口用兩個獨特的電平接口(I和IB)表示。一個可以認為是主信號,另一個可以認為是從信號。主信號和從信號是同一個邏輯信號,但是相位相反。

舉例說明:

LVDS_25的差分輸入的ADC數據。

IBUFDS #(                           // 差分輸入原語,用於LVDS_25端口
            .DIFF_TERM("TRUE"),
            .IOSTANDARD("LVDS_25")
        ) IBUFDS_ADC01 (
            .O(ADC01_D[i]),
            .I(ADC01_P_D[i]),
            .IB(ADC01_N_D[i])
        );

2. IDDR(Input/Output Functions)

被設計用來接收DDR數據,避免額外的時序復雜性。

舉例說明:

差分數據源經過差分轉單端后,生產ADC01_D,在同步時鍾ADC01_DCO的驅動下,產生DDR數據adc01_a_d和adc01_b_d。

 IDDR #(
            .DDR_CLK_EDGE("SAME_EDGE_PIPELINED"),
            .INIT_Q1(1'b0),
            .INIT_Q2(1'b0),
            .SRTYPE("SYNC")
        ) IDDR_ADC01_D (
            .Q1(adc01_a_d),
            .Q2(adc01_b_d),
            .C(ADC01_DCO),
            .CE(1'b1),
            .D(ADC01_D),
            .R(1'b0),
            .S(1'b0)
        );

3. IBUFG和IBUFGDS(IO)

IBUFG即輸入全局緩沖,是與專用全局時鍾輸入管腳相連接的首級全局緩沖。所有從全局時鍾管腳輸入的信號必須經過IBUF元,否則在布局布線時會報錯。 IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI、LVDS、LVPECL、LVTTL、PCI、PCIX和 SSTL等多種格式的IO標准。

IBUFGDS是IBUFG的差分形式,當信號從一對差分全局時鍾管腳輸入時,必須使用IBUFGDS作為全局時鍾輸入緩沖。IBUFG支持BLVDS、LDT、LVDSEXT、LVDS、LVPECL和ULVDS等多種格式的IO標准。

舉例說明:
差分時鍾芯片輸入的100MHz時鍾,作為FPGA的全局時鍾。


IBUFGDS #(
            .DIFF_TERM    ("TRUE" ),
            .IBUF_LOW_PWR ("FALSE")
        ) u_ibufg_clk_100 (
            .I  (FP_CLK_100M_P),
            .IB (FP_CLK_100M_N),
            .O  (clk_100m     )
        );

參考文獻:

  1. http://blog.sina.com.cn/s/blog_47205d2d0100l5jv.html

  2. 《Xilinx 7 Series FPGA and Zynq-7000 All Programmable SoC Libraries Guide for Schematic Designs》(UG799)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM