FPGA开发流程及编程思想课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《FPGA开发流程及编程思想课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 开发 流程 编程 思想 课件
- 资源描述:
-
1、FPGA开发流程及编程思想开发流程及编程思想 简化的开发流程简化的开发流程需求定义设计输入设计综合设计实现配置下载功能仿真系统测试设计验证设计验证实际的开发流程实际的开发流程需求定义设计输入设计综合设计实现配置下载综合结果分析实际电路验证静态时序分析时序仿真系统整合验证功能仿真需求定义需求定义l需求决定设计“这个设计是做什么用的?”“要实现什么功能?”“有什么要注意的地方?”l需求是容易发生变更的大师说过,没有哪个设计需求更改少于三次的,唯一一次只更改过两次需求的情况,是那个可怜的家伙在送第三次变更需求来的路上,被车给撞了。l你不能决定需求是否发生变更,但你可以做到当需求更改时,你所需要做出的
2、调整最小。设计输入设计输入l原理图输入(对大型设计很少使用)l硬件描述语言VerilogHDL,VHDLlHDL语言是硬件描述语言,不是硬件设计语言l用硬件电路设计思想来编写HDL先有鸡,还是先有蛋?先有鸡,还是先有蛋?always(posedge clk)if(!rst_n)a=8b0;elsea=a+1b1;?是因为,我们这样写了,a就会被综合成同步计数器;还是因为,这样写a会被综合成同步计数器,我们才如上写。你知道它们会综合成什么?你知道它们会综合成什么?代码1:always (posedge clk)begin if(ce)b=in,b0:14;endassign out=b15;代码
3、2:reg 31:0 c511:0;always (posedge clk)begin addr_reg=addr;if(we)caddr=din;end assign out=caddr_reg;设计综合设计综合l软件开发工具lAltera:QuartusIIlXilinx:ISE lLattice:IspLeverl第三方 Synplicity:Synplify Pro综合结果分析综合结果分析l看看综合结果,了解你的代码消耗了多少reg、lut资源,综合估计频率多快,最差路径是哪条。l尽量消除每一个warning,如果warning无法消除,请确认该warning于结果无害。l有没有这种情
4、况:代码A比代码B,速度更快、消耗资源更少、功能更强、运行更稳定?功能仿真功能仿真l仿真工具lAltera:QuartusIIlXilinx:ISE lLattice:IspLeverl第三方Monter:ModelSim仿真测试方法仿真测试方法l正确性测试又称功能测试,基本的方法是构造一些合理输入,检查是否得到期望的输出。l容错性测试检查程序在异常条件下的行为。通常构造一些不合理的输入来引诱程序出错。容错性好的程序能确保系统不发生无法意料的事故。设计实现设计实现l实现工具lAltera:QuartusIIlXilinx:ISE lLattice:IspLever静态时序分析静态时序分析l观察
5、Static Timing Analyse结果,原则上不允许出现时序违规。l如果出现时序违规(1)调整实现选项(2)修改约束条件(3)修改代码拆分最差路径其中修改代码改掉最差路径是治本之法。下载调试下载调试l内嵌式逻辑分析仪Altera:SignalTapXilinx:ChipScopeLattice:Reveall示波器示波器也是有力的调试工具。调试困境调试困境l功能仿真,看不出错误l用示波器点测,看不出错误l用内嵌式逻辑分析仪捕获数据,看不出错误l最终结果就是不对软件调试软件调试l主要指通过功能仿真(ModelSim)查找问题实践证明,很多后期调试发现的问题,其实在仿真阶段就能发现,只是因
6、为测试激励不完备,前期仿真没能暴露出来。硬件调试硬件调试l首先,请确认你的硬件工作正常l通过示波器、内嵌式逻辑分析仪等工具获取波形或数据查找问题l除了你对自己程序的了解,还需要熟悉所用FPGA的架构、资源等情况,还需要清楚外接芯片的接口时序,了解外围电路的分布。调试方法调试方法l逐级跟踪如果不是最后一步出错,那就是最后一步的前一步出错;如果不是前一步出错,就是前一步的前一步出错,总之,有一步出错,找到那一步。l使用多种工具不论是ModelSim、SignalTap、ChipScope、Reveal、示波器各有各的优缺点。在合适的地方,选用合适的工具。倒霉定律倒霉定律l担心有理你所担心的地方,通
7、常是错误发生的地方。你很确定的地方,通常很少发生错误,你不能很确定的地方,就难说了。l人与机器与机器相比,人更容易犯错误。芯片没有正常工作,我们会怀疑芯片坏了,但大多数时候会发现是芯片没有配置对(程序原因),或者是有只管脚短路或虚焊了(还是人为)。不要不要C,要软件工程,要软件工程l虽然Verilog HDL语法与C语言有些相似,但是有些在C语言好的语法习惯,于FPGA设计而言却是不合适的,甚至是背道而驰的。l我们需要的是软件工程的思想。抛弃你的抛弃你的C语言习惯语言习惯assign data=(frame_head_valid)?frame_head_reg :(rtl8305_mtxen_
展开阅读全文