标题: 学习FPGA设计的体会(每周更新) [打印本页]
作者: brianwu 时间: 2007-8-6 23:57 标题: 学习FPGA设计的体会(每周更新)
学习FPGA设计的体会
[此贴子已经被admin于2007-8-7 9:51:07编辑过]
作者: brianwu 时间: 2007-8-6 23:58
学习FPGA设计的体会(每周更新)
我真正使用FPGA有10年了吧,在这个论坛潜水也有一两年了,很少发新的帖子,看到很多人对学习FPGA有很多的困惑,包括设计,语言,工具的使用等等。我将我的一些学习体会和看法写出来,抛砖引玉,希望对大家有所帮助和启发。
(1) FPGA工程师首先应该是一个硬件工程师,对所需要设计的系统的需求,架构,有深刻了解。
只有了解这些,才能知道那些可以功能可以或最好在FPGA中完成,应该如何估算需要资源,甚至将来需要增加的功能,从而选择FPGA型号,在设计上FPGA内部的系统架构如何分解,各个功能模块接口如何设计划分,以达到高稳定,可重用。
(2)语言设计的捷径
我偶尔到HDL语言论坛去看看,看到很多人对语言的学习感到困难,其实语言的学习并不困难,其捷径是什么,答案:先用原理图设计,尤其是一些基本的逻辑功能单元。分频计数,开关,串并、并串等等。从某种角度来说语言的本质是原理图设计,如果您脑袋里想的原理图,手指在键盘上敲出来的是语言,你可以不用担心代码可综合性。其实我学习语言是今两年的事情,我只看两三天Verilog语言语法,然后看看基本逻辑单元的表示方法和例子,就可以用Verilog进行设计了,当然会在设计过程中碰到一些语法表示的困难,翻翻书就可以了。
当然,不是语言不重要,功能的实现也需要语言准确的表达,例如case语句如何避免LATCH。
(3)有关仿真
我曾经有一个做FPGA的同事,每当设计完一个功能模块,就看到用MODELSIM仿真好几天,一个设计下来,仿真耗用他很多时间,为什么会这样,原因有两个:基本原因是:功能架构或者说思路没有想好,在那里凑,第二个原因是因为写代码的时候他脑袋里没有形成时序图。如果这两方面都想好,仿真的工作量会大大减少的。
在设计和仿真过程时,多想一想被处理的与其他信号的时序关系,这对你的设计能力大有益处。
我刚开始FPGA设计时,一个简单的计数器都要仿真半天,别说一个功能模块了,那个阶段设计是靠仿真才能设计出来的(汗,数字电路没有学好)。但随着设计的增多,水平的提高,仿真用的时间越来越少了,为什么?因为当你的脑袋里有时序图时,仿真回归了它真正的本意,只不过验证你(脑袋里的时序)设计是否正确的一个工具。
(4)设计思路
设计思路是指在系统或功能电路设计时的方法和技巧,我不知道定义是否准确,但他非常非常重要,是具有战略意义层面上的重要,一个好的思路,往往功能实现时简单,可靠,移植性好,反之,感觉电路繁杂,思路不清的,就要回头审视一下自己的思路。
设计思路的提高需要积累,多看看别人的设计,尤其是功能电路的设计,比较一下自己的设计,总结一下经验教训,看得多了,手段也就多了,另外多从系统的(The higher level)角度看看你的设计,你会发现更多的东西,不久,你会发现你不仅仅是一名FPGA工程师,而且是一名系统工程师。
作者: vincent 时间: 2007-8-7 14:34
呵呵,不错,最好能加上设计实例就好了!
作者: linnalily 时间: 2007-10-25 00:34
很好的体会
作者: casse 时间: 2007-10-25 13:42
学习中
作者: caopengly 时间: 2007-10-26 14:01
“设计思路的提高需要积累,多看看别人的设计,尤其是功能电路的设计,比较一下自己的设计,总结一下经验教训,看得多了,手段也就多了,另外多从系统的(The higher level)角度看看你的设计,你会发现更多的东西,不久,你会发现你不仅仅是一名FPGA工程师,而且是一名系统工程师。
”
系统的规划是很重要的,看看什么模块是可以重复使用的,看看什么模块是速度瓶颈。
等等,然后再分列,解决。
作者: freeaway_2008 时间: 2010-4-1 10:41
很有用 我是个初学者 能不能介绍些实例 谢谢
作者: zpw 时间: 2010-4-21 22:14
学习了,谢谢!
作者: 大树一棵 时间: 2010-6-1 18:05
学习了,谢谢!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |