FPGA认识

Graduated_one_FPGA自学

1.FPGA认识

1.1组成

在这里插入图片描述
FPGA内部结构有可编程输入输出I/O单元,基本可编程逻辑单元,RAM,布线以及嵌入的功能单元与专用硬核。
其中片上可编程输入输出I/O单元可以通过软件灵活的分配,对应于FPGA开发应该就是功能仿真时候的分配IO端口。可适应不同的电器标准与物理特性(应该是FPGA上的IO通用性比较强,在1.2V到5V电压上都可以正常工作),并且可以调整上下拉电阻(这里之前遇到过,但是忘了,后补0)。

1.1.1 可编程逻辑单元

而可编程逻辑单元则是由查找表实现可配置,每一个查找表会连接一个D触发器的输入端,然后再来驱动其它的I/O口或者其它的逻辑电路(其实就是下一级的查找表的MUX),这样就实现了可编程可配置。其实查找表就是SRAM与各种MUX连接到一起如下图,SRAM中存储的是设计逻辑的所有输出结果,所以,如果是3输入的逻辑电路,查找表就需要8个SRAM单元来存储所有的逻辑结果。如果是设计的第一层逻辑,则MUX的sel端就是I/O口。FPGA中每个查找表对应着一个函数,Y=F(X),比如一个逻辑电路是Y=X+Z+D,而X=a+b,Z=X^b,D=Z*b,则整个逻辑函数需要占用FPGA两输出的三个查找表分别对应加、亦或、乘的逻辑函数。而a、b作为输入I/O会驱动第一层查找表的MUX,让其作为地址输出a+b对应的RAM中存储的结果X,然后X输出到FF再到下一级查找表的MUX的sel端,依此原理最后输出正确的结果。但FPGA硬件内部绝不是这么简单的几个查找表的逻辑。每个查找表中除了MUX,还可以有加法器这样的逻辑单元的应用来一起构成更加复杂的逻辑。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
所以说任何的复杂逻辑Y=F(X),都可以分成多个小的基本单元逻辑y=f(x),每个逻辑可以对应一个或者多个内部含不仅仅有选择器还有其它如加法器、乘法器、移位寄存器等共同构成的slice(称为片),在FPGA上看就是一个个小岛,每个小岛由可编程的互连线相接。
对FPGA代码编写到电路实现理解:FPGA内部其实就是无数个查找表与基本逻辑门,当我们写Verliog代码时,编译软件会用算法把代码分成多个小函数,然后对每个小函数的所有可能的输入对应的输出结果做出正确计算,这一步应该就是下板子前的Compilation。在少板子时,把计算完的结果存入FPGA内部的RAM中,当板子上电,然后给对应给需要的I/O值,如单个按键按下输入片内I/O口值为1,然后经过查找表(查找表不单单是简单的真值表“查表”,其中会通过像加法器这种巨常见的逻辑单元实现更加复杂的逻辑,不然只通过EDA软件就能计算出所有的逻辑是不现实的)与可编程的布线输出一个数值。
以前觉得FPGA内部硬件结构就是各种标准单元电路已经摆好了,然后用I/O控制逻辑开关是错误的。

1.1.2 嵌入式RAM、丰富的布线资源、硬核与嵌入式的功能单元。

FPGA中的布线也都是可编程的来实现不同slice之间不同连线然后实现不同功能。嵌入式RAM应该是来扩大片内的存储能力的。硬核可以有嵌入一个ARM芯片作为CPU,现在大多数用的是CPU软核,即可编程的,用FPGA的门阵列来实现CPU功能。还有其它的功能单元,比如DSP,PLL,DLL,射频单元等等,这些则是直接做好,布局在芯片上的。
总结一下:经过一天的了解与查资料,还是有了一些更加深层次的理解,只是刚刚看到过的自己的理解。可能不对,当作笔记总结一下。
如果是错误的希望指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值