FPGA的 基本结构(Xilinx 公司Virtex-II 系列FPGA )

以Xilinx 公司Virtex-II 系列FPGA 为例,其基本结构由下图所示。它是主要由两大部分组成:可编程输入/输出(Programmable I/Os)部分和内部可配置(Configurable Logic)部分。

可编程输入/输出(I/Os)部分主要提供芯片与外界电路的交互接口,完成不同电气特性下对输入输出信号驱动与匹配的要求。

它被设计成可编程模式,即可以用软件灵活设置,从而调整输出驱动电流的大小以及匹配阻抗特性。同时,它能够支持多种前沿的I/O 标准。

目前,I/O 口的工作频率也日益增加,有些FPGA可以支持高达2Gbps 的数据速率。

内部可配置部分则是功能实现的主体,其主要由以下五大单元组成:

1.配置逻辑单元(Configurable Logic Block,CLB)

主要用于实现组合逻辑或者时序逻辑,包括作为基本的存储单元。每个CLB 由四个Slice 和两个三态缓冲(TBUF)组成,并通过开关矩阵与布线矩阵进行连接,如下图 所示。

四个Slice 可以组成一个移位链,分成上下两组后,每组又都有其各自独立的进位链。Slice 的内部结构是上下对称的,其上半部分结构如下图所示。它是由两个四输入的函数发生器(F 函数和G 函数)、进位逻辑、算数逻辑、多路选择器和两个存储单元构成。

其中,函数发生器本质上而言,就是根据函数表达式去查找已存的数据表。所以,它可以被配置成四输入的查找表(Look Up Table,LUT)、分布式RAM/ROM 或者是16bit 的移位寄存器。

2.块存储单元(Block SelectRAM,BRAM)

FPGA 内嵌了可编程的BRAM,扩大了其应用领域,增加灵活性。BRAM 可以配置成单端口RAM(如下图 所示),

或者是双端口RAM(如下图所示)。以XC2V3000 FPGA 为例,它的大小为18Kb,每个端口都是同步且独立的。根据深度和宽度的不同,BRAM 的大小可以在16Kx1bit 到512x36bit 范围内进行配置。另外,当需要实现更大的存储空间时,则可以通过级联多个BRAM。

3.乘法器单元(Multiplier)

FPGA 内嵌单元除了BRAM 外,还包括乘法器。与用Slice 实现乘法功能相比,内嵌乘法器运算速度更高,且功耗更低。以XC2V3000 为例,乘法器单元最大可以实现18bit x 18bit,如下图所示。

在实际应用中,比如在有限脉冲响应(Finite Impulse Response,FIR)滤波器或者无限脉冲响应(Infinite Impulse Response,IIR)滤波器中用到的数字信号处理器(Digital Signal Processor,DSP)和乘法累加器(Multiplier Accumulator,MAC)功能,通常是将乘法器单元与BRAM 配合使用,从而能够充分利用两者的优点。

4.数字时钟管理(Digital Clock Manager,DCM)

提供一个具有自我校准、时延补偿、分频倍频和移相功能的时钟管理单元。在FPGA 设计中,结合全局时钟选择缓冲和DCM,让从DCM 输出的时钟通过FPGA 内部全局时钟树到达每一个触发器,且延时基本上是相同的,这大大提高FPGA 设计的工作频率。


5.布线资源

它使FPGA 内部的所有单元互联互通,而不同的布线类型、策略决定了信号的传输速度和延时。


学习例程

我给小白们准备了一份礼物,下面是我精心整理的n多verilog代码。帮助小白们由浅至深的“模仿”。在模仿的过程中能够进一步的巩固之前了解的语法知识。

这些Verilog例程基本涵盖了以后可能遇到的所有用法,参考这些代码,可以做出你想要的任何设计。
当你想要用Verilog编写一段代码实现某个功能时,如果你能够想到参考哪段代码能够实现你的设计,那么恭喜你,你已经入门了!!!

所有示例代码,点击链接获取。

01-锁存器、触发器、寄存器、移位寄存器等

【免费】VerilogHDL示例代码之01-锁存器、触发器、寄存器、移位寄存器等资源-CSDN文库

02-逻辑门、三态门、mux等

【免费】VerilogHDL示例代码之02-逻辑门、三态门、mux等资源-CSDN文库

03-各种计数器

【免费】VerilogHDL示例代码之03-各种计数器资源-CSDN文库

04-各类加法器

【免费】VerilogHDL示例代码之04-各类加法器资源-CSDN文库

05-乘法器

【免费】VerilogHDL示例代码之05-乘法器资源-CSDN文库

06-异步复位同步释放

【免费】VerilogHDL示例代码之06-异步复位同步释放资源-CSDN文库

07-分频

【免费】VerilogHDL示例代码之07-分频资源-CSDN文库

08-语法语句

【免费】VerilogHDL示例代码之08-语法语句资源-CSDN文库

09-串并转换

【免费】VerilogHDL示例代码之09-串并转换资源-CSDN文库

10-状态机设计

【免费】VerilogHDL示例代码之10-状态机设计资源-CSDN文库

11-编解码应用

【免费】VerilogHDL示例代码之11-编解码应用资源-CSDN文库

12-仿真语法举例

【免费】VerilogHDL示例代码之12-仿真语法举例资源-CSDN文库

13-进阶设计

【免费】VerilogHDL示例代码之13-进阶设计资源-CSDN文库


我将Verilog的语法进行了总结,写了13篇文章,让小白“快速见识猪如何跑”,每一篇讲解一类语法,结合正确的示例代码和错误的示例代码,有的章节对个别语法进行了归纳总结,帮助初学者加深理解。详情点击                     

小白如何快速入门Verilog?-CSDN博客

Verilog语法之〇:Verilog HDL简介/Verilog语法介绍-CSDN博客

Verilog语法之一:简单的Verilog HDL模块-CSDN博客

Verilog语法之二:常量-CSDN博客

Verilog语法之三:变量-CSDN博客

Verilog语法之四:运算符-CSDN博客

。。。。。。

更多课程,敬请期待

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1672.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day10_Structured Steaming

文章目录 Structured Steaming一、结构化流介绍(了解)1、有界和无界数据2、基本介绍3、使用三大步骤(掌握)4.回顾sparkSQL的词频统计案例 二、结构化流的编程模型(掌握)1、数据结构2、读取数据源2.1 File Source2.2 Socket Source…

mybatisPlus(条件构造器API)

文章目录 目录一、mybatisPlus的介绍二、mybatisPlus的基础使用配置BaseMapper的基本CURD(增删改查) 三、wrapper(条件构造器)条件构造器(wrapper)通用API基础条件判断:进阶条件判断&#xff08…

手撕代码: C++实现按位序列化和反序列化

目录 1.需求 2.流程分析 3.实现过程 4.总结 1.需求 在我们正在开发的项目,有这样一种需求,实现固定格式和自由格式的比特流无线传输。解释一下,固定格式形如下面表格: 每个字段都有位宽、类型等属性,这种固定格式一…

【Rust自学】12.6. 使用TDD(测试驱动开发)开发库功能

12.6.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print),是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步: 接收命令行参数读取…

C#,入门教程(27)——应用程序(Application)的基础知识

上一篇: C#,入门教程(26)——数据的基本概念与使用方法https://blog.csdn.net/beijinghorn/article/details/124952589 一、什么是应用程序 Application? 应用程序是编程的结果。一般把代码经过编译(等)过程&#…

机器学习(1):线性回归概念

1 线性回归基础 1.1 什么是线性 例如:汽车每小时60KM,3小时可以行使多长距离?已知汽车的速度,则汽车的行使距离只与时间唯一相关。在二元的直角坐标系中,描出这一关系的图是一条直线,所以称为线性关系。 线…

日志系统实践

日志系统 产生日志 logging:level:root: infoconfig: /usr/src/config/logback-spring.xml<?xml version"1.0" encoding"UTF-8"?> <configuration><appender name"STDOUT" class"ch.qos.logback.core.ConsoleAppender&qu…

基于微信小程序的智能停车场管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

如何选择Ubuntu版本

一、为什么要选择Ubuntu系统&#xff1f; CentOS官方已全面停止维护CentOS Linux项目 。具体来说&#xff0c;CentOS 8已于2021年12月31日停止维护&#xff0c;而CentOS 7则在2024年6月30日结束了生命周期 。这意味着这些版本不再接收官方的安全更新、bug修复或技术支持 二、…

Elasticsearch ES|QL 地理空间索引加入纽约犯罪地图

可以根据地理空间数据连接两个索引。在本教程中&#xff0c;我将向你展示如何通过混合邻里多边形和 GPS 犯罪事件坐标来创建纽约市的犯罪地图。 安装 如果你还没有安装好自己的 Elasticsearch 及 Kibana 的话&#xff0c;请参考如下的链接来进行安装。 如何在 Linux&#xff0…

分布式缓存redis

分布式缓存redis 1 redis单机&#xff08;单节点&#xff09;部署缺点 &#xff08;1&#xff09;数据丢失问题&#xff1a;redis是内存存储&#xff0c;服务重启可能会丢失数据 &#xff08;2&#xff09;并发能力问题&#xff1a;redis单节点&#xff08;单机&#xff09;部…

【ArcGIS初学】产生随机点计算混淆矩阵

混淆矩阵&#xff1a;用于比较分类结果和地表真实信息 总体精度(overall accuracy) :指对角线上所有样本的像元数(正确分类的像元数)除以所有像元数。 生产者精度(producers accuracy) &#xff1a;某类中正确分类的像元数除以参考数据中该类的像元数(列方向)&#xff0c;又称…

C++ STL之容器介绍(vector、list、set、map)

1 STL基本概念 C有两大思想&#xff0c;面向对象和泛型编程。泛型编程指编写代码时不必指定具体的数据类型&#xff0c;而是使用模板来代替实际类型&#xff0c;这样编写的函数或类可以在之后应用于各种数据类型。而STL就是C泛型编程的一个杰出例子。STL&#xff08;Standard …

GitLab本地服务器配置ssh和克隆项目

1. 本地安装好git git链接&#xff1a;https://git-scm.com/downloads/win 无脑点击下一步安装即可,打开Git Bash命令终端如下&#xff1a; 2. 配置本地用户名和邮箱 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…

【Unity高级】一文了解Unity 中的条件编译(附所有指令)

一、Unity中的条件编译 Unity 对 C# 语言的支持包括使用指令&#xff0c;这些指令允许您根据是否定义了某些脚本符号&#xff0c;选择性地包含或排除代码的编译。有关这些指令在 C# 中如何工作的更多信息&#xff0c;请参阅微软关于 C# 预处理器指令 的文档。 &#xff08;一…

主数据系统建设模式分析

很多企业在长期的信息化建设和使用过程中&#xff0c;或多或少的存在数据一致性问题&#xff0c;这类问题导致了大量的数据手工梳理、清洗的工作&#xff0c;对于系统的对接以及统计分析造成了极大的不便&#xff0c;因此信息化部门的管理者迫切的想通过主数据项目来解决目前的…

Redis是单线程还是多线程?

大家好&#xff0c;我是锋哥。今天分享关于【Redis是单线程还是多线程&#xff1f;】面试题。希望对大家有帮助&#xff1b; Redis是单线程还是多线程&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis是 单线程 的。 尽管Redis的处理是单线程的&a…

UML系列之Rational Rose笔记一:用例图

好久没有更新笔记了&#xff1b;最近想整理下近期掌握的UML软件建模的知识笔记&#xff1b; 包括但不限于Rational Rose&#xff1b;Drawio&#xff1b;EA&#xff1b;PowerDesigner&#xff1b;Visio&#xff1b;StarUML&#xff1b;Software等软件的使用&#xff1b;UML软件…

熵权法(变异系数法)

熵权法(变异系数法) 一种客观赋权方法&#xff0c;它根据指标的变异程度来确定指标的权重&#xff0c;变异程度越大&#xff0c;说明该指标所包含的信息量越大&#xff0c;相应的权重也就越大。以下是熵权法的详细介绍&#xff1a; 概率与信息量的关系 概率P(x)越小,信息量I(…

基于当前最前沿的前端(Vue3 + Vite + Antdv)和后台(Spring boot)实现的低代码开发平台

项目是一个基于当前最前沿的前端技术栈&#xff08;Vue3 Vite Ant Design Vue&#xff0c;简称Antdv&#xff09;和后台技术栈&#xff08;Spring Boot&#xff09;实现的低代码开发平台。以下是对该项目的详细介绍&#xff1a; 一、项目概述 项目名称&#xff1a;lowcode-s…