您的位置 首页 解答

Xilinx FPGA常用原语介绍

Xilinx FPGA常用原语介绍-项目中主要用到的原语与IO端口有关,所以基本在Input/Output Functions 和IO两类中。下面着重介绍实际中所用到的几个原语,芯片A7系列。

原语,即primitive。不同的厂商,原语不同;同一家的FPGA,不同类型的芯片,能够也不一样;原语相似最底层的描绘办法。运用原语的优点,能够直接例化运用,不必定制IP;即可通过仿制原语的句子,然后例化IP,就可运用;Xilinx是通过直接修正原语中的参数再例化IP来运用;Xilinx公司的原语分为10类,包含:核算组件,IO端口组件,寄存器/锁存器,时钟组件,处理器组件,移位寄存器,装备和检测组件,RAM/ROM组件,Slice/CLB组件,G-tranceiver。下图所示为UG799中对原语的分类列表。

Xilinx FPGA常用原语介绍

项目中首要用到的原语与IO端口有关,所以根本在Input/Output FuncTIons 和IO两类中。下面侧重介绍实践中所用到的几个原语,芯片A7系列。

1. IBUF和IBUFDS(IO)

IBUF是输入缓存,一般vivado会主动给输入信号加上,IBUFDS是IBUF的差分方式,支撑低压差分信号(如LVCMOS、LVDS等)。在IBUFDS中,一个电平接口用两个共同的电平接口(I和IB)表明。一个能够认为是主信号,另一个能够认为是从信号。主信号和从信号是同一个逻辑信号,可是相位相反。

Xilinx FPGA常用原语介绍

举例说明:

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数据,防止额定的时序复杂性。

Xilinx FPGA常用原语介绍

举例说明:

差分数据源通过差分转单端后,出产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规范。

Xilinx FPGA常用原语介绍

举例说明:

差分时钟芯片输入的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 )

);

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/102353.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部