FPGA设计原语篇一:什么是原语(Primitive)

目录

一、原语Primitive

二、原语的分类

三、原语与Verilog代码

四、原语使用模板

五、原语手册


一、原语Primitive

在FPGA中,(Primitive)原语是硅片结构中最底层的、不可再分割的硬件逻辑单元(例如,查找表、触发器、多路复用器、DSP和RAM块)。

开发者写的verilog代码会综合成门级网表(AND,OR,NOT等),然后再映射到原语Primitive,最后经过布局布线后生成bit文件。

通常是需要使用一些特殊硬件功能或工具推断不理想时会直接使用对应单元的原语。

二、原语的分类

原语根据功能特点可分为以下

CLB(可配置逻辑块)原语:包括查找表(LUT)、触发器(Flip-Flop)、多路选择器(MUX)和进位链(Carry Chain)等。例如:LUT1~LUT6, FDCE, FDPE, CARRY4等。

块RAM(Block RAM)原语:用于实现片上存储器。例如:RAMB18E1, RAMB36E1等。

DSP(数字信号处理)原语:用于实现乘法、乘加等算术运算。例如:DSP48E1(7系列)、DSP48E2(UltraScale)等。

时钟资源原语:包括全局时钟缓冲器、BUFH水平时钟缓冲器、时钟管理单元(如MMCM、PLL)等。例如:BUFG, BUFIO, BUFR, MMCME2_ADV, PLLE2_ADV等。

I/O(输入/输出)原语:包括输入缓冲器、输出缓冲器、双向缓冲器等。例如:IBUF, OBUF, IOBUF, IBUFDS(差分输入)等。

高速收发器原语:用于实现高速串行通信,如GTX、GTH、GTZ等。例如:GTHE2_CHANNEL, GTXE2_CHANNEL等。

互联和配置原语:包括STARTUP, BSCAN等用于配置和调试的原语。

三、原语与Verilog代码

以触发器的例子为例,可以看出使用原语比写verilog代码方便多了,缺点是没法看出具体的行为功能

module Primitive(CLK,CLR,CE,D,Q_reg,Q );
input CLK,CLR,CE,D;
output Q_reg,Q;
reg Q_reg;
always @(posedge CLK or negedge CLR) begin
        if (!CLR) begin
            Q_reg <= 1'b0; // 异步复位
        end 
        else if(CE)  
            Q_reg <= D;
end
FDCE #(
      .INIT(1'b0) // Initial value of register (1'b0 or 1'b1)
   ) FDCE_inst (
      .Q(Q),      // 1-bit Data output
      .C(CLK),      // 1-bit Clock input
      .CE(CE),    // 1-bit Clock enable input
      .CLR(CLR),  // 1-bit Asynchronous clear input
      .D(D)       // 1-bit Data input
   );
endmodule

查看Synthesis后的schematic结果,使用原语的触发器为FDCE_inst,使用Verilog写的也生成了一个FDCE(Q_reg_reg)

四、原语使用模板

快速查看原语的使用,进入“Tools->Language Templates",可以查看Verilog,VHDL,SystemVerlog三种语言下的原语使用

五、原语手册

Xilinx关于原语的使用手册如下

6系列:UG615 Spartan-6 Libraries Guide

7系列 (Artix-7, Kintex-7, Virtex-7) :UG953 7 Series Libraries Guide

UltraScale/UltraScale+:UG974 UltraScale Libraries Guide

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA芯中的小蚂蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值