Xilinx FPGA 使用者原語介紹

2021-10-07 10:34:39 字數 2404 閱讀 5121

原語,即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、lvd***t、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 )

);

原語,即primitive。不同的廠商,原語不同;同一家的fpga,不同型號的晶元,可以也不一樣;原語類似最底層的描述方法。使用原語的好處,可以直接例化使用,不用定製ip;即可通過複製原語的語句,然後例化ip,就可使用;xilinx是通過直接修改原語中的引數再例化ip來使用;xilinx公司的原語分為10類,包括:計算元件,io埠元件,暫存器/鎖存器,時鐘元件,處理器元件,移位暫存器,配置和檢測元件,ram/rom元件,slice/clb元件,g-tranceiver。下圖所示為ug799中對原語的分類列表。

Xilinx FPGA使用者原語介紹

原語,即primitive。不同的廠商,原語不同 同一家的fpga,不同型號的晶元,可以也不一樣 原語類似最底層的描述方法。使用原語的好處,可以直接例化使用,不用定製ip 即可通過複製原語的語句,然後例化ip,就可使用 xilinx是通過直接修改原語中的引數再例化ip來使用 xilinx公司的原語分...

xilinx FPGA 配置原理

從不同的角度分析,可以得到不同的劃分形式,如從主從關係上分,則有主模式 從模式。如果從一次傳輸資料的位寬上分析,則有序列模式 和並行模式。另外還有jtag模式 模式的選擇是由fpga上的m0 m1 m2完成。因此,可以組合出多種不同的模式,如主序列模式 主並模式 從串模式 從並模式。其中,區分主與從...

Xilinx FPGA的配置流程

儘管fpga的配置模式各不相同,但整個配置過程中fpga的工作流程是一致的,分為三個部分 設定 載入 啟動。有多種方式使fpga的配置進入這一過程。在上電時,電壓達到fpga要求之前,fpga的上電復位模組將使fpga保持在復位狀態 外部控制prog b引腳出現乙個低脈衝也可以使fpga保持在復位狀...