XILINX 原语使用
XILINX 原语使用
原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的ip,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元件,否则就是不可实现的。原语在设计中可以直接例化使用,是最直接的代码输入方式,其和HDL语言的关系,类似于汇编语言和C语言的关系。
Xilinx公司提供的原语,涵盖了FPGA开发的常用领域,但只有相应配置的硬件才能执行相应的原语,并不是所有的原语都可以在任何一款芯片上运行。在Verilog中使用原语非常简单,将其作为模块名直接例化即可。
Xilinx公司的原语按照功能分为10类,包括:计算组件、I/O端口组件、寄存器和锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、Slice/CLB组件以及G比特收发器组件。下面分别对其进行详细介绍。
-
IOBUF
双向单端I/O缓冲区,用于将内部逻辑连接到外部双向pin。
“`ruby
// IOBUF: Single-ended Bi-directional Buffer // All devices // Xilinx HDL Libraries Guide, version 2012.2
IOBUF #(
.DRIVE(12), // Specify the output drive strength
.IBUF_LOW_PWR(“TRUE”), // Low Power - “TRUE”, High Perforrmance = “FALSE”
.IOSTANDARD(“DEFAULT”), // Specify the I/O standard
.SLEW(“SLOW”) // Specify the output slew rate
)
IOBUF_inst (
.O(O), // Buffer output
.IO(IO), // Buffer inout port (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input, high=input, low=output
);
// End of IOBUF_inst instantiation