fpga学习心得体会
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fpga学习心得体会
求教FPGA学习体会
一定要写同步逻辑,根据FPGA内部特点来写逻辑,如全局时钟的布线等
我想学习FPGA,但怎样学比较好
你提到的先复习加深数电基础在学习语言,最后上板调试,这样先理论后实践会很枯燥并且打消你学习的积极性。
对于硬件电路的学习我认为是边实践边学习。
走通了一遍,最后查漏补缺的学习理论会有更深的印象。
altera还是xilinx都可以,开发工具和环境不同罢了。
开发板当然买大众的,学习资料全的,有技术支持的。
我也是初学者,有什么学习fpga的还建议,搭车同求大神赐教学习FPGA用哪种硬件描述语言比较好
HDL概述
随着EDA技术的发展,使用硬件语言设计PLD\/FPGA成为一种趋势。
目前最主要的硬件描述语言是VHDL和Verilog HDL。
VHDL发展的较早,语法严格,而Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。
VHDL和Verilog HDL两者相比,VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。
国外电子专业很多会在本科阶段教授VHDL,在研究生阶段教授verilog。
从国内来看,VHDL的参考书很多,便于查找资料,而Verilog HDL的参考书相对较少,这给学习Verilog HDL带来一些困难。
从EDA技术的发展上看,已出现用于CPLD\/FPGA设计的硬件C 语言编译软件,虽然还不成熟,应用极少,但它有可能会成为继VHDL和Verilog之后,设计大规模CPLD\/FPGA的又一种手段。
VHDL简介 VHDL实例
VerilogHDL简介 verilog实例
其它HDL简介:
ABEL
AHDL
硬件C语言
System verilog语言
选择VHDL还是verilog HDL
这是一个初学者最常见的问题。
其实两种语言的差别并不大,他们的描述能力也是类似的。
掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。
选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。
当然,如果您是集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。
对于PLD\/FPGA设计者而言,两种语言可以自由选择。
学习HDL的几点重要提示
1.了解HDL的可综合性问题:
HDL有两种用途:系统仿真和硬件实现。
如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。
但如果我们的程序是用于硬件实现(例如:用于FPGA设计),那么我们就必须保证程序“可综合”(程序的功能可以用硬件电路实现)。
不可综合的HDL语句在软件综合时将被忽略或者报错。
我们应当牢记一点:“所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。
2.用硬件电路设计思想来编写HDL:
学好HDL的关键是充分理解HDL语句和硬件电路的关系。
编写HDL,就是在描述一个电路,我们写完一段程序以后,应当对生成的电路有一些大体上的了解,而不能用纯软件的设计思路来编写硬件描述语言。
要做到这一点,需要我们多实践,多思考,多总结。
3.语法掌握贵在精,不在多
30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,在程序移植或者更换软件平台时,容易产生兼容性问题,也不利于其他人阅读和修改。
建议多用心钻研常用语句,理解这些语句的硬件含义,这比多掌握几个新语法要有用的多。
HDL与原理图输入法的关系
HDL和传统的原理图输入方法的关系就好比是高级语言和汇编语言的关系。
HDL的可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模CPLD\/FPGA时显得很烦琐,移植性差。
在真正的PLD\/FPGA设计中,通常建议采用原理图和HDL结合的方法来设计,适合用原理图的地方就用原理图,适合用HDL的地方就用HDL,并没有强制的规定。
在最短的时间内,用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。
HDL开发流程
用VHDL\/VerilogHD语言开发PLD\/FPGA的完整流程为:
1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。
通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件
2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)
3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综
合成最简的布尔表达式和信号的连接关系。
逻辑综合软件会生成.edf(edif)的EDA工业标准文件。
4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD\/FPGA内
5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。
(也叫后仿真)
6.编程下载:确认仿真无误后,将文件下载到芯片中
通常以上过程可以都在PLD\/FPGA厂家提供的开发工具(如MAXPLUSII,Foundation,ISE)中完成,但许多集成的PLD开发软件只支持VHDL\/Verilog的子集,可能造成少数语法不能编译,如果采用专用HDL工具分开执行,效果会更好,否则这么多出售专用HDL 开发工具的公司就没有存在的理由了。
fpga怎么学习
1、了解FPGA硬件架构
2、熟练掌握代码编写(硬件描述语言),重点是能根据要求设计算法
3、最关键的还是要多实践,建议买开发板。
供你参考~希望对你有帮助~
看了许多verilog语言后该怎么学习FPGA?
找个开发板,做个虚拟项目。
FPGA将来发展的几个方向迷茫中
说哈我的想法,不是想要你的分
我觉得嘛,应该主要方向还是高速信号处理吧
fpga拼的就是速度
信号处理应该还是用的很多
FPGA嵌入式和IC验证应该用的较少吧
嵌入式被arm占了啊
ic验证不知道应用范围有好广,但是用fpga去验证ansic,感觉不舒服
用fpga实现高速信号处理的应用很多的,通讯啊啥的,你就知道有好吃香了吧,通讯业好来钱哦
苦是很苦的咯,一个个的算法,真很的头痛啊
当然fpga的nios+uclinux的Sopc应该还是很好的拼不过arm 嘛,还可以自己用在信号处理上嘛
虽然DSP信号高速处理刚强,但成本很高啊
我刚刚搞这个,感觉很累,现在大二,其实迷茫吧
拙见,见笑
明德扬fpga学习,怎样
至简设计法,实际上就是将状态机的设计总结成可以直接套用的数种固定模式,然后用硬件描述语言来描述。
至于是否采用FPGA来实现,则要看具体应用场合。
对于不熟悉状态机设计和硬件描述语言的初学者来说,至简设计法不失为一种较好的普及方法。
如果同时采用FPGA来实现,则也会对FPGA的应用有所了解。
自学FPGA哪本入门教材比较好啊
可否提供前辈们的学习经历与心得呀
谢谢
特权同学的《深入浅出玩转FPGA》很好,再结合他的视频教程,是个不错的选择,这个可以到CPLD\/FPGA助学小组里边下载
FPGA系统工程师需要学什么东西
1、数字电路基础。
做FPGA一定要有数字硬件的概念。
FPGA是硬件设计,而不是软件设计,首先要有这个概念
2、硬件描述语言,Verilog或VHDL,推荐Verilog
3、主流厂家的芯片底层结构,如Logic Cell、DSP Block、时钟、IO单元等
4、EDA工具的使用,如主流厂家的集成编译环境(Quartus II、Vivado等)、仿真软件(ModelSim等)的使用
5、熟悉FPGA设计流程(仿真,综合,布局布线,时序分析)。
6、熟练掌握资源估算(特别是slice,lut,ram等资源的估算)。
7、同步设计原理。
一个合格的FPGA工程师至少在以下三个方面的一个非常熟悉:
嵌入式应用 2.DSP应用 3.高速收发器应用
向左转|向右转扩展资料FPGA工程师的核心竞争力
1、RTL设计实现能力。
也就是算法实现能力,RTL实现是FPGA工程师或者说HDL开发人员的入门首先接触到的东西;2、硬件调试能力。
包括问题定位分析能力和系统调试能力,FPGA工程师真正的核心竞争力,因为这不仅仅需要经验的积累,同时还需要很好的逻辑思维和分析能力。
另外一方面是整个硬件软件系统层次的调试能力,要看得懂原理图PCB,懂硬件,了解软件接口,现在FPGA越来越讲究HardwareSoftwareCo-design,软件硬件这个系统层次的调试能力对人的要求更加高。
3、更加高层次的能力。
还是系统层次的东西。
算法和架构,怎样将一系列数学公式,转换为算法,在最终形成系统硬件的实现;整个系统采用什么样的架构,纯FPGA,arm+FPGA,DSP+FPGA,SOC+FPGA;FPGA顶层采用什么架构,通用总线还是自定义总线,如何考虑通用性和可扩展性等等,再大至什么样的应用适合用FPGA实现。
什么样的问题适合软件实现,怎样的组合能更加低成本高效率的解决问题,这一些列问题涉及的东西有很多,基本上都是以FPGA为核心做开发要面临的问题,其实其他平台的硬件、软件产品都是类似,系统层面的问题都是复杂的问题,同时,从系统层面去优化,解决问题才是最高效率的方式。
如何快速入门verilog与FPGA
1.观念认识:从事FPGA开发,不是写代码,是电路设计,数字电路设计,只不过不像你在protel里画原理图,做layout,它需要你用
语言把你的电路描述出来,然后根据根据你的描述生成相应的电路,这里描述的方式就体现你的技术水平了,请明白,verilog或者VHDL 都是hardware description laugahge。
2.理论储备:请把你的数字电路书拿出来,理解寄存器,状态机,时序方程。
3.请熟读xilinx或者altera的一款FPGA的手册,了解他的接口,固件组成(PLL,BlockRAM,DCM,SERDES等),资源分布,建议用xilinx的FPGA Eidter软件打开一个芯片的版图,你就会发现FPGA本质就是一系列资源的堆叠,你要做的事情就是怎么利用这么硬件资源做出你要的东西。
4.请理解组合逻辑和时序逻辑,针对2种逻辑信号延迟的组成,计算,也就是时序分许问题。
5.动手能力,写代码,多写代码,多调试,你遇到的问题多了,解决的多了,所有的问题都不是问题了。
要善于总结。
6.对流行的接口,技术的原理要理解,比如SPI,I2C,USB,DDR1\/2\/3,PCIE,流行的高速接口LVDS,LVPECL,SSTL 等。
7.FPGA工程师很多时候扮演这系统工程师的角色,请多从系统的角度思考问题。
8.良好的文档习惯,这个非常重要。