原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT、D触发器、RAM等。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元件,否则就是不可实现的。原语在设计中可以直接例化使用,是最直接的代码输入方式,它与HDL语言的关系类似于汇编语言和C语言的关系。

Xilinx公司提供的原语涵盖了FPGA开发的常用领域,但只有相应配置的硬件才能执行相应的原语,并不是所有的原语都可以在任何一款芯片上运行。在Verilog中使用原语非常简单,将其作为模块名直接例化即可。本节以Virtex-4平台为例介绍几种常用的原语,其他系列芯片原语的使用方法是类似的。

Xilinx公司的原语按照功能分为10类,包括计算组件、I/O端口组件、寄存器和锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、Slice/CLB组件以及吉比特收发器组件。此处我们只介绍常用的一些原语,其他的读者可参阅Xilinx的用户手册。

时钟组件

时钟组件包括各种全局时钟缓冲器、全局时钟复用器、普通I/O本地的时钟缓冲器以及高级数字时钟管理模块。

在综合结果分析中,其RTL结构如图3-10所示。

linx是干嘛的(想全面了解Xilinx原语)(1)

图3-10 BUFG的RTL结构

吉比特收发器组件

吉比特收发器组件用于调用RocketIO千兆位级收发器,支持从622 Mb/s到6.5 Gb/s的多速率应用,符合最广泛的芯片、背板和光学器件的标准及协议,具有高级Tx/Rx均衡技术,收发器最多可达24个,提供了完整的串行I/O解决方案。具体包括4个组件,如表3-1所示。

linx是干嘛的(想全面了解Xilinx原语)(2)

表3-1 吉比特收发器组件

由于吉比特收发器操作复杂,原语在使用时很容易出错,不易配置,因此需要在ISE中通过结构向导完成。

I/O端口组件

I/O组件提供了本地时钟缓存、标准单端I/O缓存、差分I/O信号缓存、DDR专用I/O信号缓存、可变抽头延迟链、上拉、下拉以及单端信号和差分信号之间的相互转换,具体包括了21个原语,如表3-2所示。

表3-2 I/O端口组件

linx是干嘛的(想全面了解Xilinx原语)(3)

(续表)

linx是干嘛的(想全面了解Xilinx原语)(4)

IBUFDS

IBUFDS原语用于将差分输入信号转化成标准单端信号,且可加入可选延迟。在IBUFDS原语中,输入信号为I、IB,一个为主、一个为从,二者相位相反。

IBUFDS的逻辑真值表如表3-3 所示,其中“-*”表示输出维持上一次的输出值,保持不变。

表3-3 IBUFDS原语的输入、输出真值表

linx是干嘛的(想全面了解Xilinx原语)(5)

BUFDS原语的例化代码模板如下所示。

linx是干嘛的(想全面了解Xilinx原语)(6)

在分析综合结果时,IBUFDS的RTL结构如图3-11所示。

linx是干嘛的(想全面了解Xilinx原语)(7)

图3-11 IBUFDS

IDELAY

在Virtex-4系列芯片中,每个用户I/O引脚的输入通路都有一个IDELAY模块,可用于同步数据信号与时钟信号,准确采集输入数据。IDELAY 具有可控的 64 抽头延迟线,每个抽头的延迟都是经过精密校准的 75 ps,且与进程、电压和温度特性无关,其内部结构如图3-12所示。

linx是干嘛的(想全面了解Xilinx原语)(8)

图3-12 IDELAY模块的RTL级结构

对IDELAY原语的信号说明如下。

I:单比特输入信号,来自于IOB的串行输入数据。

C:单比特输入信号,时钟输入信号。

INC:单比特输入信号,用于增加或减少延迟抽头数。

CE:单比特输入信号,使延迟抽头数增加或减少。

RST:单比特输入信号,复位延迟链的延迟抽头数,如果没有编程输入,则为0。

O:单比特输出信号。

IDELAY原语的例化代码模板如下所示。

linx是干嘛的(想全面了解Xilinx原语)(9)

在综合结果分析时,IDELAY原语的RTL结构如图3-13所示。

linx是干嘛的(想全面了解Xilinx原语)(10)

图3-13 IDELAY

如当延迟周期数设为8的时候,延迟时间为75 ps×8=0.6 ns,仿真图见图3-14。

linx是干嘛的(想全面了解Xilinx原语)(11)

图3-14 IDELAY仿真波形图

OBUFDS

OBUFDS将标准单端信号转换成差分信号,输出端口需要直接对应到顶层模块的输出信号,和IBUFDS为一对互逆操作。OBUFDS原语的真值表如表3-4所示。

linx是干嘛的(想全面了解Xilinx原语)(12)

表3-4 OBUFDS原语的真值表

OBUFDS原语的例化代码模板如下所示。

linx是干嘛的(想全面了解Xilinx原语)(13)

在综合结果分析时,OBUFDS原语的RTL结构如图3-15所示。

linx是干嘛的(想全面了解Xilinx原语)(14)

图3-15 OBUFDS的

【电子工程师资料分享圈】,一个能帮你全面提升技能、收入稳步提升的圈子!

这里不仅有关于电子工程师的专业技术资料、还有职场老兵的经验心得,是你的学习好帮手!

为什么要加入【电子工程师资料分享圈】,加入即可享受以下四大特权福利!

①圈内的资料,大部分是圈主付费购买,现在免费分享给大家;

②免费帮你下载百度文库任何资料,每人每天限一次机会;

③你有任何疑问,可以在圈子提出,圈主和其他圈友一起帮你解答疑惑;

④圈主具备十几年的行业经验,会在圈内不定时的分享一些自己的经验心得;

本圈属于终身会员制,现活动五折优惠,入圈只需9.9元,想加入趁现在!

,