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