Xilinx FPGA原语的使用方法和分类
需积分: 0 6 浏览量
更新于2024-06-30
1
收藏 650KB DOCX 举报
Xinlinx原语的用法1
Xilinx公司原语的使用方法是FPGA开发中非常重要的一部分,原语是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的“cout”等关键字,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等,相当于软件中的机器语言。
Xilinx公司提供的原语,涵盖了FPGA开发的常用领域,但只有相应配置的硬件才能执行相应的原语,并不是所有的原语都可以在任何一款芯片上运行。在Verilog中使用原语非常简单,将其作为模块名直接例化即可。本节以Virtex-4平台介绍各类原语,因为该系列的原语类型是最全面的。其它系列芯片原语的使用方法是类似的。
Xilinx公司的原语按照功能分为10类,包括:
1. 计算组件:计算组件是FPGA开发中最基本的组件之一,负责进行数学运算,如加法、乘法、除法等。计算组件的例子包括DSP48核,也有人将其称为硬件乘法器,功能描述如表3-6所示。
表3-6计算组件清单
DSP48其结构为一个18*18比特的有符号乘法器,且在后面还级联了一个带有可配置流水线的3输入加法器DSP48核由一个18比特的乘法后面级联一个48比特的加法器,乘法器和加法器的应用位宽分别可以在18、48比特内任意调整。其在乘加模块中有广泛应用,特别是各类滤波器系统中,不仅可以提高系统稳定性,还能够节省逻辑资源且工作在高速模式下。
2. I/O端口组件:I/O端口组件是FPGA开发中负责输入/输出操作的组件,负责将数据传输到芯片的输入/输出端口。I/O端口组件的例子包括Input/Output Buffer、Output Buffer等。
3. 寄存器和锁存器组件:寄存器和锁存器组件是FPGA开发中负责存储数据的组件,负责将数据存储在寄存器或锁存器中。寄存器和锁存器组件的例子包括Flip-Flop、Latch等。
4. 时钟组件:时钟组件是FPGA开发中负责时钟信号的组件,负责将时钟信号传输到芯片的其它部分。时钟组件的例子包括Clock Buffer、Clock Generator等。
5. 处理器组件:处理器组件是FPGA开发中负责执行指令的组件,负责将指令执行并将结果存储到寄存器或锁存器中。处理器组件的例子包括Microprocessor、DSP等。
6. 移位寄存器组件:移位寄存器组件是FPGA开发中负责移位寄存器操作的组件,负责将数据移位到指定的位置。移位寄存器组件的例子包括Shift Register、Rotate Register等。
7. 配置和检测组件:配置和检测组件是FPGA开发中负责配置和检测的组件,负责将配置信息传输到芯片的其它部分,并检测芯片的工作状态。配置和检测组件的例子包括Configuration Port、Debug Module等。
8. RAM/ROM组件:RAM/ROM组件是FPGA开发中负责存储数据的组件,负责将数据存储到RAM或ROM中。RAM/ROM组件的例子包括Block RAM、Distributed RAM等。
9. Slice/CLB组件:Slice/CLB组件是FPGA开发中负责逻辑计算的组件,负责将逻辑计算结果存储到寄存器或锁存器中。Slice/CLB组件的例子包括Slice、CLB等。
10. G比特收发器组件:G比特收发器组件是FPGA开发中负责高速数据传输的组件,负责将数据传输到高速接口上。G比特收发器组件的例子包括Gigabit Transceiver、High-Speed Transceiver等。
在Verilog中使用原语非常简单,将其作为模块名直接例化即可。例如,使用DSP48核可以将其作为模块名直接例化,如下所示:
```verilog
module fpga_v4_dsp48(
BCOUT, P, PCOUT, A, B, BCIN, C, CARRYIN, CARRYINSEL, CEA, CEB,
CEC, CECARRYIN, CECTRL, CEM, CEP, CLK, OPMODE,
PCIN, RSTA, RSTB, RSTC, RSTCARRYIN, RSTM, RSTP, SUBTRACT
);
```
Xilinx公司原语的使用方法是FPGA开发中非常重要的一部分,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的“cout”等关键字,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等,相当于软件中的机器语言。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2018-04-09 上传
2022-07-25 上传
126 浏览量
2014-09-19 上传
张匡龙
- 粉丝: 25
- 资源: 279
最新资源
- H3C_iNode_PC_7.3_linux E0548
- becquerel:Becquerel是用于分析核光谱测量的Python软件包
- comp_graf_laba1
- glsl-map:将一个范围内的值映射到另一范围内
- 计算机科学知识:计算机基础知识:计算机网络,操作系统,数据库,数据结构与算法,计算机组成原理,软件工程,设计模式,代码外的生存之道,开发常用工具
- arrowdb:用于在所有制造商中查找箭头的数据库
- js代码-js插入新列表时剔除掉全列表已有的项目
- Warpoint:基于团队的2D多人CTH独立游戏
- signsend:Zetakey登录并发送-Webapp。 它使用具有Canvas支持HTML5浏览器(例如Zetakey浏览器www.zetakey.com)捕获签名,并将其发送到电子邮件地址
- 美萍瑜珈管理系统标准版
- vagrant-spree:使用Vagrant的Spree开发环境
- nano-4.0.tar.gz
- let-prove-blocking-queue:以多种方式证明阻塞队列的死锁状态
- albumtrackr:利用ASP.Net Core Web API的Android应用,由Ryan Deering和James Lynam构建
- 剧本
- java代码-编写一个程序判断字符串“Tom”是否在另一个字符串“I am Tom, I am from China”中出现。