特权同学最近在做一个测控设备的项目,因为接口比较多,但协议不复杂,所以主要用FPGA全部搞定。在今后的一些《项目日志》里,不会过多的讨论项目本身的一些细节,只是从大处来分享工作的思路。诸如模块划分,模块细分,设计可验证的考虑,调试的方式,以及详细设计中碰到的一些问题。可能出于时间和成本考虑,很多的调试和验证手段都是最简单轻便的方式。也许这些东西对大家不一定有用,但是对于个人的项目总结、回顾和经验的积累都是很有帮助的。
项目的硬件框图如图1所示。原理图和PCB都绘制完毕,目前处于制板状态。由于这个项目除了上位机软件设计另有其人,其他东西基本是硬件工程师的活,也就是要又特权同学一人全部包办。所以趁着硬件(元器件级)设计空闲的当儿,开始FPGA代码设计。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
图1
初步对工程的FPGA设计进行了一下简单的模块划分,如图2所示。可能最终的模块划分会和目前的这个框图有一定的出入,当时基本的思路应该是差不多的。
图2
ModelSim-Altera对于变量(reg,wire)或常量(parameter,`define)的申明必须在使用之前。Quartus II本身各个版本好像一直不是对这个问题有要求,也就是说有些变量或常量的定义可以在使用之后,印象中ISE和ModelSim-Altera一样对这个问题比较敏感。这个问题本身也没有太多可讨论之处,但是项目做多了,需要重用的模块多了,也许您会遇到和我一样的问题,明明我在QII中用得很HIGH的模块,一移植到ISE下不灵了——一大堆的ERROR。不知您是否注意到了,有时候问题也许就出在上面所提到的细节上。这也算是代码风格吧,只不过这是开发工具的不兼容或说是不够智能造成的。我们能做的就是尽量避免这样的麻烦,所以代码书写的风格上也是可以考虑更多的向不够智能一方兼容的。这应该是基于最大限度的让我们的设计模块达到通用性方面考虑的。
用户1713276 2016-3-4 16:42
用户1688136 2015-5-4 23:23
达达尼安 2015-3-9 08:54
东莞元宝代理Microchip长电二三极管 2015-2-28 09:59
ilove314_323192455 2010-2-24 21:58
ash_riple_768180695 2010-2-24 17:40
ilove314_323192455 2010-2-23 21:37
朱玉龙 2010-2-23 20:23