找回密码
 注册
搜索
查看: 3852|回复: 14

[讨论] 怎么学习FPGA呢?

[复制链接]
发表于 2006-3-17 15:03:00 | 显示全部楼层 |阅读模式
必须有个开发板么?
发表于 2006-3-24 20:40:00 | 显示全部楼层
我觉得不是必须要开发板的,要根据你自己的目的,可以自己来设计电路,选择合适的fpga芯片。当然要是有了开发板,方便一些[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-4-10 11:28:00 | 显示全部楼层
我也想学习,希望大家提供帮助
点评回复

使用道具 举报

发表于 2006-5-4 19:13:00 | 显示全部楼层
<P>我也想知道</P>
点评回复

使用道具 举报

发表于 2006-5-5 17:44:00 | 显示全部楼层
<P>我也刚学FPGA,因为没自信。</P><P>我买了个开发板</P><P>才650元,我和同事两个人一起搭伙买,我觉得这样的话是最好的。</P><P>一起承当经济压力,又可以一起学习,互相促进啊</P>[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-5-8 21:43:00 | 显示全部楼层
就像学习MCU一定要买开发板吗一样
点评回复

使用道具 举报

发表于 2006-5-19 20:28:00 | 显示全部楼层
<P>还是用开发板比较好 一些,个人认为。</P>
点评回复

使用道具 举报

发表于 2006-5-20 22:15:00 | 显示全部楼层
<P>开发板只是个工具,我们可以自己达电路,然后用JTAG边际扫描测试仿真。</P><P>我公司的一个老师傅帮我做的项目就是这么完成的,而且效果还不错。</P>
点评回复

使用道具 举报

发表于 2006-6-20 00:07:00 | 显示全部楼层
<P align=left><FONT color=#000066><B>一.查找表(Look-Up-Table)的原理与结构</B></FONT></P><P align=left> </P><P align=left>采用这种结构的PLD芯片我们也可以称之为FPGA:如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。</P><P align=left>查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。 目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。 当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。</P><P align=left>下面是一个4输入与门的例子,</P><TABLE borderColor=#999999 cellSpacing=0 cellPadding=2 width=540 bgColor=#ffffff border=1><TR><TD class=font10 colSpan=2><DIV align=center>实际逻辑电路</DIV></TD><TD class=font10 colSpan=2><DIV align=center>LUT的实现方式</DIV></TD></TR><TR><TD colSpan=2><img src="http://www.fpga.com.cn/advance/structures/and4.gif"></TD><TD colSpan=2><img src="http://www.fpga.com.cn/advance/structures/ram.gif"></TD></TR><TR><TD class=font10><P align=center>a,b,c,d 输入</P></TD><TD class=font10><DIV align=center>逻辑输出</DIV></TD><TD class=font10><DIV align=center>地址</DIV></TD><TD class=font10><DIV align=center>RAM中存储的内容</DIV></TD></TR><TR><TD class=font10><P align=center>0000</P></TD><TD class=font10><DIV align=center>0</DIV></TD><TD class=font10><DIV align=center>0000</DIV></TD><TD class=font10><DIV align=center>0</DIV></TD></TR><TR><TD class=font10><DIV align=center>0001</DIV></TD><TD class=font10><DIV align=center>0</DIV></TD><TD class=font10><DIV align=center>0001</DIV></TD><TD class=font10><DIV align=center>0</DIV></TD></TR><TR><TD class=font10><DIV align=center>....</DIV></TD><TD class=font10><DIV align=center>0</DIV></TD><TD class=font10><DIV align=center>...</DIV></TD><TD class=font10><DIV align=center>0</DIV></TD></TR><TR><TD class=font10><DIV align=center>1111</DIV></TD><TD class=font10><DIV align=center>1</DIV></TD><TD class=font10><DIV align=center>1111</DIV></TD><TD class=font10><DIV align=center>1</DIV></TD></TR></TABLE><P align=left><FONT color=#000066><B>二.基于查找表(LUT)的FPGA的结构</B></FONT></P><P align=left> </P><P align=left>我们看一看xilinx Spartan-II的内部结构,如下图:</P><TABLE cellSpacing=2 cellPadding=2 width="75%" border=0><TR><TD><DIV align=left><img src="http://www.fpga.com.cn/advance/structures/x2s.gif"></DIV></TD><TD><DIV align=left><img src="http://www.fpga.com.cn/advance/structures/Clb.gif"></DIV></TD></TR><TR><TD class=font10><DIV align=center>xilinx Spartan-II 芯片内部结构</DIV></TD><TD class=font10><DIV align=center><FONT color=#000000>Slices结构</FONT></DIV></TD></TR></TABLE><P align=left>Spartan-II主要包括CLBs,I/O块,RAM块和可编程连线(未表示出)。在spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。 Slices可以看成是SpartanII实现逻辑的最基本结构 (xilinx其他系列,如SpartanXL,Virtex的结构与此稍有不同,具体请参阅数据手册)</P><P align=left>altera的FLEX/ACEX等芯片的结构如下图:</P><P align=center><img src="http://www.fpga.com.cn/advance/structures/altera_str.gif"></P><P align=center>altera FLEX/ACEX 芯片的内部结构</P><P align=center> </P><P align=center><img src="http://www.fpga.com.cn/advance/structures/altera_le.gif"></P><P align=center>逻辑单元(LE)内部结构</P><P align=left>FLEX/ACEX的结构主要包括LAB,I/O块,RAM块(未表示出)和可编程行/列连线。在FLEX/ACEX中,一个LAB包括8个逻辑单元(LE),每个LE包括一个LUT,一个触发器和相关的相关逻辑。LE是FLEX/ACEX芯片实现逻辑的最基本结构(altera其他系列,如APEX的结构与此基本相同,具体请参阅数据手册)</P><P align=center> </P><P align=left><FONT><B>二.</B></FONT><B>查找表结构的FPGA<FONT>逻辑实现原理</FONT></B></P><P align=left> </P><P align=left>我们还是以这个电路的为例:<img src="http://www.fpga.com.cn/advance/structures/3.gif"></P><P align=left>A,B,C,D由FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。 该电路中D触发器是直接利用LUT后面D触发器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出与I/O脚相连,把结果输出到芯片管脚。这样PLD就完成了图3所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)</P><P align=left>这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。</P><P align=left>由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。 也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。</P><P align=left> </P><P align=left><FONT><B>三.</B></FONT><b>其他类型的FPGA和PLD</b></P><P align=left>   随着技术的发展,在2004年以后,一些厂家推出了一些新的PLD和FPGA,这些产品模糊了PLD和FPGA的区别。例如Altera最新的MAXII系列PLD,这是一种基于FPGA(LUT)结构,集成配置芯片的PLD,在本质上它就是一种在内部集成了配置芯片的FPGA,但由于配置时间极短,上电就可以工作,所以对用户来说,感觉不到配置过程,可以传统的PLD一样使用,加上容量和传统PLD类似,所以altera把它归作PLD。 还有像Lattice的XP系列FPGA,也是使用了同样的原理,将外部配置芯片集成到内部,在使用方法上和PLD类似,但是因为容量大,性能和传统FPGA相同,也是LUT架构,所以Lattice仍把它归为FPGA。</P><P align=left> </P><P align=left><FONT><B>四.</B></FONT><B>选择PLD还是FPGA?</B></P><P align=left> </P><P align=left>根据上一篇PLD的结构和原理可以知道,PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此,PLD适合用于设计译码等复杂组合逻辑。 但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。 所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。 同时PLD拥有上电即可工作的特性,而大部分FPGA需要一个加载过程,所以,如果系统要可编程逻辑器件上电就要工作,那么就应该选择PLD。</P>[br]<p align=right><font color=red>+5 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-7-24 09:34:00 | 显示全部楼层
多谢楼主!
点评回复

使用道具 举报

发表于 2006-7-28 10:20:00 | 显示全部楼层
先学理论,再让有经验的指导你买什么样的板子,这样会好点。
点评回复

使用道具 举报

发表于 2006-8-19 08:47:00 | 显示全部楼层
我个人觉地还是需要一个开发板的,只有在上面跑一下程序才能真正懂的编程!
而且我建议你买一本电子科大潘松的是书看一下,讲的很好!
点评回复

使用道具 举报

发表于 2006-8-22 20:33:00 | 显示全部楼层
2楼说的是对的
一般建议文件名和实体名搞成一样的., 12楼说的不错
个人赞同
点评回复

使用道具 举报

发表于 2006-12-19 22:23:00 | 显示全部楼层
没有板子 又不知道如何做?
点评回复

使用道具 举报

发表于 2007-1-1 15:52:00 | 显示全部楼层
我认为学习FPGA首先必须要有开发板,没有开发板自己先作一个或寻找其他的机会;然后在此基础上编写简单的代码并下载到FPGA上,这样可以激发FPGA的学习兴趣,能够具体体会FPGA的强大功能。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-9-29 18:26 , Processed in 0.046751 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表