lanlingshan

 

FPGA和DSP的HPI通信中的问题总结

观点:凡是都有一个顺序,虽然FPGA是并行的,但是人们在处理问题时都是从某一个点入手,按照一定的顺序思考问题,解决问题。

一、一个FPGA设计人员应该知道并会使用的

①1. 仿真:Modelsim, Quartus II(Simulator Tool)
   2. 综合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner)
   3. 时序:Quartus II (TimeQuest Timing Analyzer, Technology Map Viewer, Chip Planner)
   4. 调试:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor)
   5. 验证:Modelsim, Quartus II(Test Bench Template Writer)

②开发流程(特权同学的《深入浅出玩转FPGA》)

  1、需求分析到模块划分:首先是器件的选型,然后是模块的划分,一般整个设计的顶层只做例化,不做逻辑,然后一个顶层下面会有模块A,模块B,模块C,模块A下面又可以分为A/B/C多个子模块;模块划分的基本原则:子模块功能相对独立,模块内部联系尽量紧密,而模块间的连接尽量简单,对于那些难以满足模块划分准则且具有强内部关联的复杂设计,并不适合模块化设计方法,还有就是对系统中用到的时钟要有清楚的认识,比如用了50M的,100M的,都用在那个模块里面,是否有跨时钟域的问题。关于详细的介绍以及如何利用Quartus软件来入手可以参看Altera的中国官网视频中的“增量式编译”,http://www.altera.com.cn/education/courses/online-courses.html

  2、设计输入到综合优化:代码的输入,代码设计功底需要时间去积累,但是有许多重要的思想和技巧,比如“同步思想”,“脉冲边沿检测”,“跨时钟域的握手信号”,“利用存储器实现跨时钟域的数据传输”,运用这些思想在用TimeQuest进行时序约束的时候可以方便的定位时序不满足的路径,解决亚稳态等优势。综合的时候可以利用Quartus的提供的一些设置和工具进行综合优化,详细介绍可以看Altera的官网培训视频,“使用Quartus II 顾问和设计空间勘查器实现时序逼近”,“使用Quartus II 物理综合优化功能实现时序逼近”,“时序逼近最佳HDL设计实践”。利用Modelsim进行功能验证仿真,功能不对,在修改代码,在综合。

 

  3、实现时序收敛:利用TimeQuest进行时序报告分析,先对工程进行全局约束,比如系统时钟有几个分别周期为多少,在对I/O口进行约束,用到虚拟时钟,在对需要的地方做时序例外约束,参看官网视频“TimeQuest时序分析器”。

  4、仿真测试在到板级调试:需要利用到SignalTapII工具,参看官网视频“SignalTap II 嵌入式逻辑分析器”。

③所以个人认为要对FPGA的软件的使用熟悉,利用软件来帮助设计,然后对代码的风格很重要,对跨时钟域的同步处理等,利用官网的视频资料,软件的Handbook以及相应器件的Handbook,还有一些Application的Handbook。还得看看好书···

二、遇到的问题,解决问题的思想

 

posted on 2012-08-02 11:43  lanlingshan  阅读(1140)  评论(0编辑  收藏  举报

导航