先说一些题外话,通常来说,一个规范的FPGA工程设计都会遵循一套固有的流程,但并不是所有的工程都从始至终一层不变的围着一个所谓的固定的流程走。对于所有的设计,特权同学也都会大致按照下面的步骤进行:分析需求à划分模块à设计输入à功能仿真à综合à时序约束à实现à板级调试。简单的设计也许整个工程都会如此执行,但是复杂一些的,如涉及的不同接口较多,那么就会考虑先逐个接口(逐个模块)按照上述流程调试一遍,最后整合所有接口模块再走一次流程。单个模块验证的时候对时序不会抠得太细,主要在最后整合的时候在优化上下功夫。
我不知道这样的方式是否是最优化的设计方式,但确实个人的设计习惯。也许和团队设计的方法有些类似,特权同学没有机会在多人分工协作的环境下进行过任何的FPGA项目。个人认为这种方式相对而言能够将一个最终可能调试起来比较复杂的设计从一开始就肢解为多个较小的相对简单的调试任务。并且这些简单的调试任务的工作量一定是要比整合起来的大任务轻松许多的。也许这种设计和调试方法有点和软件调试类似。
“白猫黑猫抓到老鼠都是好猫”,也许对于工程师来说如何最高效率高质量的完成项目才是王道。特权同学就习惯以这种方式工作,也许并不那么规范。
对于这个项目,接口中相对比较复杂的就是AD采样芯片的控制和两块液晶驱动(包括界面的设计)。因此,特权同学就先设计了如图1所示的几个模块,用于验证AD采样。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
图1
从数据流来说,如图2所示。最终借助PC端的串口调试助手来观察。
图2
特权同学在测试脚本中模拟一个uart,正常定义一个波特率为
parameter BPS = 1_000_000_000/38400;
PC机是32位的,算了下,这里的数据也都没有超过32位。于是想到如果超过32位是工具报错呢还是直接反应到仿真中。结果是ModelSim-Altera给了个error。如图3所示。
图3
文章评论(0条评论)
登录后参与讨论