10730|23

581

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

【三】【FPGA助学系列一】闲聊FPGA——基础知识学习篇(完整) [复制链接]

201366日,今天开始聊聊FPGA
关于FPGA的缩写和得名之类的问题请直接百度,在这个知识爆炸的年代,有个万能的度娘真是我等小民之福啊。
先想聊下开始学习的准备,通过深刻的回忆,我追忆起了第一次接触FPGA的年代,大约是大学四年级昏暗的实验室,那一年,Altera的软件还是MAX+PLUSII,学习的教材还是原理图和ABEL,用的芯片不比GAL大多少,可能很多人都不知道(百度中),但当时神奇的功能和替代无数74XX的神奇力量使得大家非常投入。大概一共学了3-4节课吧,老师也是摸着石头过河那种,和我们共同学习。
  GAL器件和内部结构:简约而不简单
(第一要素)熟练掌握FPGA的第一要素是你要对数字电路有足够深刻的认识,对寄存器尤其是触发器以及各种“与或非”的组合逻辑关系清清楚楚,对状态图、真值表有所耳闻,因为FPGA的前辈们诞生之初就是用可编程的方式代替了2种门级电路:时序电路如573,逻辑电路如74047400等。
▲小贴士一:早期的CPLDFPGA内部结构完全不一样。没有PLL,没有RAM资源,没有乘法器,最关键的是没有LUT查找表(具体请继续百度….),现在的AlteraMAXIIMAXV也好,XILINXSpartan3AN以及LatticeMXO系列都只是在FPGASRAM工艺基础上增加内置的FLASH,来模拟CPLD,降低成本,他们本质上还是FPGAminiFPGA。真正的CPLD现在还有LatticeMACH4000系列(当年CPLD界的霸主)以及XilinxCoolRunner系列,其他的我也不熟。
正牌CPLD
FPGA里面有很多资源,因此建议想学的同学们不要用CPLD入门学习FPGA,因为很多FPGA特有的资源才是其魅力所在,乘法器、RAMPLLMAC,看着直流口水有木有……而且FPGA的价格也越来越亲民,这些东西在FPGA的内部达到了惊人的频率,一般都是300M以上的速度等级,工艺不同有所区别。
(第二要素)熟练掌握FPGA的第二要素是你要掌握一门HDL语言,强烈建议要有C语言的基础,因为大学C是最容易学到的,那样Verilog你基本会用了,曾经的ABEL就像汇编一样偏向底层,渐渐被淘汰了,取而代之的是VHDLVerilog。语法上VHDL较为严谨,Verilog偏向松散(人云亦云….),这句话的含义是写下一段VHDL你和综合器一般都清楚知道你们的共同目的,而Verilog的一段话则可能使你和综合器的意见发生分歧。顺便提一句,学什么都可以看你的兴趣,使用者国内Verilog稍多。而现在的软件都支持2种语言混编、混调、还有互转,所以不要纠结于学哪种语言了。下图不是描述的同一个东西仅仅是语言风格对比。
VHDL()Verilog()语言风格对比
▲小贴士二:千万别学了2FPGA还不知道综合,这会使你很没面子,请及早百度之。假定你熟悉C,可以用编译器来类比综合器,编译器是将高级语言C翻译成各种平台的汇编语言,而综合器就是把半高级语言VerilogVHDL翻译成RTL门级网表,请注意这也是需要熟悉数字电路的原因之一,RTL才是你最终的期望值。如果你发现代码执行结果不对有时需要从RTL来查找问题,找出你和综合器之间的小分歧,这时数电知识就起了关键作用。
综合器吃下HDL之后吐出这货
(第三要素—仿真)仿真是指对FPGA实现的一种预先检验,不同于C语言软件仿真的是FPGA的仿真分为:行为级仿真、门级仿真和布局布线后仿真,或者叫做前仿真、后仿真(包含门级仿真和布局布线后仿真),以上是些教科书式的名词,初学者可以视而不见。
前仿真实际是检验HDL语言描述的功能是否是你的预期,这点很重要,很多初学者都倒在HDL描述不准确上,根本就不是所谓的“时序”问题。
后仿真才是将门级延迟和布线延迟加入仿真的解决所谓“时序”问题。有时FPGA的延迟超过你的想象太多太多,只不过你从未注意到。
常用的仿真软件有Mentor公司的ModelSim系列,Aldec公司的Active系列以及XilinxAltera等公司提供的一些集成在开发软件中的工具。其中Modelsim是当仁不让的市场第一的工具,近期貌似改名为Questa Modelsim,以一统Mentor公司的命名风格,打造统一品牌形象……广告就不多说了,众多的用户,极高的仿真速度以及稳定的内核是其重要特点。界面偏向Unix/Linux风格,支持命令行应用。
HDL语言中分为可综合和不可综合2种,在仿真中则都可以使用,和C不同的是HDL语言本身就为仿真做了很好的设计,因此仿真的重要性不言而喻,学习本开发板很重要的一点,请先安装ModelSim 6.5b版本。


ModelSim的界面风格
▲小贴士3FPGA的“速度问题” 。一个标称450MHzFPGA仅仅指内部的寄存器或者乘法器、RAM等单个资源的时钟频率能够达到。实际上即使一个很有经验的工程师用这样的器件搭建一个运行在200-300MHz之间的设计已经非常理想。因为级联门延时、线延时都是非常大的,除了优化算法结构外,为了达到更高的速率插入同步寄存器,增加流水级数必不可少,这样才能用资源换来速度的提升。对同功能的设计,速度和资源永远成反比。
(第四要素—时序)时序已经是FPGA的最后关卡了,虽然有时工程中你也会提前遇上他们。首先基本的时序信息分为时序约束和时序报告。时序约束是你告诉软件希望全部设计或者局部设计能跑到多快,时序报告是软件反馈你,现在的时钟频率能达到多快,以及影响时序关键路径(Critical Path)等等。当一个设计不设置时序约束时,软件会有一个默认的时钟约束例如1MHz。简单的说:建立就是CLK到来前DATA稳定时间,保持就是时钟到来后数据的保持时间,因为在现实中0时刻变化的陡峭时钟沿是没有的,对建立保持时间的讨论在FPGA时序发生紊乱时有一定作用,当然从时序报告中你已经可以清晰的看到时序问题所在,这里不对建立(Setup)、保持(Hold)时间再做详细讨论,因为具体的问题将在开发板的例程中展开具体讨论。很多人开始就把时序作为学习的要务这是错误的,因为,一个好的约束首先是学习然后是经验累积出来的,纯理论学习只会让你越来越糊涂。不知道该怎么去约束。

建立时间的简单示意
▲小贴士4:时序问题并不是啥深不可测的问题,并且如果不是因为机器速度问题的话使用后仿真完全能够发现在延时问题上的一些潜在问题,但前提是你的激励足够全面和准确;时序报告也会告诉你很多,但前提是约束加到点子上。不难看出,实际上时序问题的前提需要经验的积累,不需要直接学习奔跑,先学走再奔跑水到渠成。
下面会开始Espier FPGA开发板的教程更新,先聊到这儿。


[ 本帖最后由 kdy 于 2013-6-28 23:18 编辑 ]

modelsim_1.JPG (57.52 KB, 下载次数: 2)

modelsim_1.JPG

【FPGA助学系列一】基础知识学习篇(完整 格式).pdf

445.54 KB, 下载次数: 67

售价: 1 分芯积分  [记录]

FPGA

此帖出自FPGA/CPLD论坛

最新回复

写得很详细,不过专业词汇有点多   详情 回复 发表于 2021-2-22 09:02

点评

好贴需要支持,求更新  详情 回复 发表于 2013-7-31 10:44
点赞 关注(3)
个人签名Net:Wxeda.taobao.com
QQ:1035868547
Blog:https://home.eeworld.com.cn/space-uid-390804.html
 

回复
举报

581

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
看到上面的格式我绝望了,只好上传了PDF,还没写完,会陆续更新......
此帖出自FPGA/CPLD论坛
个人签名Net:Wxeda.taobao.com
QQ:1035868547
Blog:https://home.eeworld.com.cn/space-uid-390804.html
 
 

回复

1100

帖子

3

TA的资源

五彩晶圆(初级)

板凳
 
继续更
此帖出自FPGA/CPLD论坛
 
 
 

回复

435

帖子

1

TA的资源

一粒金砂(高级)

4
 
期待中~~~~
此帖出自FPGA/CPLD论坛
 
 
 

回复

1059

帖子

0

TA的资源

纯净的硅(高级)

5
 
支持个~已经参加活动
此帖出自FPGA/CPLD论坛
 
 
 

回复

525

帖子

235

TA的资源

版主

6
 
支持活动,可惜新币不够啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

324

帖子

2

TA的资源

纯净的硅(初级)

7
 
,支持,顶楼主,继续更新!
此帖出自FPGA/CPLD论坛
 
 
 

回复

581

帖子

0

TA的资源

五彩晶圆(初级)

8
 
一章分2次更好麻烦,只能修改了下标题改为(完整)了,附件PDF也更新了,貌似有骗芯币的嫌疑啊。
此帖出自FPGA/CPLD论坛

点评

你好,师兄,我想请问一下,我是一名学生,跨专业学的电子。没有virlog语言,模拟电路,数字电路的基础, 真的可谓是零基础。 如果想要入门FPGA,我该怎么做? 现在很着急。 1,数字电路基础,模拟电路基础,v  详情 回复 发表于 2014-9-7 23:56
个人签名Net:Wxeda.taobao.com
QQ:1035868547
Blog:https://home.eeworld.com.cn/space-uid-390804.html
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

9
 
支持支持~
此帖出自FPGA/CPLD论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
支持一下楼主
此帖出自FPGA/CPLD论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

11
 
前排支持版主
此帖出自FPGA/CPLD论坛
 
 
 

回复

525

帖子

235

TA的资源

版主

12
 
支持支持,深入浅出
此帖出自FPGA/CPLD论坛
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(初级)

13
 
好东西 支持一下 可以自学用

[ 本帖最后由 powerxlgood 于 2013-7-12 19:44 编辑 ]
此帖出自FPGA/CPLD论坛
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(初级)

14
 
楼主整理挺认真的 可以好好学习一下
此帖出自FPGA/CPLD论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

15
 

回复 楼主kdy 的帖子

好贴需要支持,求更新
此帖出自FPGA/CPLD论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

16
 
好东西收下了,多谢楼主分享
此帖出自FPGA/CPLD论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

17
 
初学者学习了,谢谢分享
此帖出自FPGA/CPLD论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

18
 
你好,师兄,我想请问一下,我是一名学生,跨专业学的电子。没有virlog语言,模拟电路,数字电路的基础,
真的可谓是零基础。  如果想要入门FPGA,我该怎么做? 现在很着急。

1,数字电路基础,模拟电路基础,virlog语言,开发板,我应该如何安排学习顺序?

2,开发板的问题,是在哪里买 比较好?

还望师兄指教
此帖出自FPGA/CPLD论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

19
 
kdy 发表于 2013-6-15 17:36
一章分2次更好麻烦,只能修改了下标题改为(完整)了,附件PDF也更新了,貌似有骗芯币的嫌疑啊。

你好,师兄,我想请问一下,我是一名学生,跨专业学的电子。没有virlog语言,模拟电路,数字电路的基础,
真的可谓是零基础。  如果想要入门FPGA,我该怎么做? 现在很着急。

1,数字电路基础,模拟电路基础,virlog语言,开发板,我应该如何安排学习顺序?

2,开发板的问题,是在哪里买 比较好?

还望师兄指教
此帖出自FPGA/CPLD论坛
 
 
 

回复

581

帖子

0

TA的资源

五彩晶圆(初级)

20
 
1、先数电、后HDL,带着看模电
2、开发板随意购买
此帖出自FPGA/CPLD论坛
个人签名Net:Wxeda.taobao.com
QQ:1035868547
Blog:https://home.eeworld.com.cn/space-uid-390804.html
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表