当前位置: 首页 > news >正文

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系列:UG615Spartan-6 Libraries Guide

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

UltraScale/UltraScale+:UG974UltraScale Libraries Guide

http://www.cnnetsun.cn/news/1873324.html

相关文章:

  • 研究生亲测:告别EndNote配置地狱和Zotero同步bug,这个引用插件让我效率翻倍
  • Java Swing 实战:手把手教你写一个拼图小游戏(二)
  • 【STM32】STM32F103C8T6多串口通信实战:配置与调试技巧
  • 终极SOCD清洁器:彻底解决游戏按键冲突的免费神器
  • Agent的性能瓶颈:延迟与吞吐量的优化
  • 3大创意引擎:用MediaPipe TouchDesigner插件重塑实时交互创作边界
  • Pixel Aurora Engine 环境部署避坑指南:常见错误与解决方案汇总
  • 3分钟搭建KIMI AI免费API:开发者必备的智能对话接口解决方案
  • FOC电流采样实战:从采样电阻到ADC的完整信号链设计
  • 特斯拉工厂同款|C#+YOLOv8实现AGV视觉导航全流程,零硬件改造落地
  • PR与PI双环控制单相PWM整流器 MATLAB仿真模型 simulink (1)基于比例谐振...
  • 从零开始掌握PrismLauncher:打造你的专属Minecraft游戏空间
  • AIAgent异常处理机制深度拆解(生产环境99.99%可用性背后的12层防护网)
  • AI知识库“10倍效率”承诺:如何通过3个核心维度验证与落地?
  • 基于TMS320F28035的汇川变频器源码:MD290、MD380、MD500及SVC3算法...
  • Foldseek:让蛋白质结构分析从数小时缩短到几分钟的智能工具
  • 向量记忆 vs 实体记忆 vs 元认知记忆,深度拆解SITS2026定义的AIAgent长期记忆三维模型
  • MATLAB 2024b实战:用SIMP算法5步搞定材料拓扑优化(附完整代码)
  • Autoware实车部署避坑指南(一)—— 基于Unity MapTool的矢量地图精细化绘制与验证
  • 014、Neck结构改进(二):自适应空间特征金字塔(ASPP)的引入
  • DeOldify真实案例:黑白老照片上色前后对比,效果惊艳
  • VGGT革命:Transformer如何重塑3D视觉几何的未来
  • 04月13日AI每日参考:Anthropic高危模型限流,中国每日处理140万亿Token
  • 决策树核心算法详解与应用,机器学习数据挖掘核心知识点
  • PowerShell高级用法深度解析:那些鲜为人知的技巧,带你领略它的真正实力。
  • 太极重命名软件在办公场景中的应用价值与效率提升
  • 从MCU到SFU:实时音视频架构演进与场景化选型指南
  • 保姆级教程:手把手教你将MOT17数据集转成YOLOv7能用的格式(附完整代码)
  • DoubleQoLMod:让《工业队长》从繁琐操作到流畅体验的智能管理方案
  • OrCAD元器件属性管理进阶技巧:用Description属性打造智能BOM清单