工作描述:
不考虑军工行业及边缘行业。
本人在工作中主要基于FPGA实现通信及信号处理应用。在之前的工作中开发团队较为完善,由资深算法设计师与资深硬件工程师带队,因此在之前的工作中受益匪浅。
在之前的工作中,我的软件开发环境主要以vivado、modelsim、matlab为主,实现平台主要依赖xilinx公司的7系列芯片。本人的具体工作是完成算法的FPGA实现工作。在与算法设计人员完成对接后,本人的第一要务是完成FPGA实现的总体设计规范,对算法进行功能划分,明确接口定义,规范编写主要依据是算法交接时获得的算法设计方案。之后进一步完成文档细化,完成设计详细规范编写,明确算法块的详细划分,详细的引脚定义,为下一步的设计实现、验证及后期的测试工作提供依据,这个步骤是一个十分繁琐且费时的过程。在参与以往的工作中,并的不是所有的同事都理解这个过程,因而经常被忽略掉。个人认为在FPGA设计的流程中,迭代效率由较高的抽象层到较低的抽象层呈递减趋势,而迭代难度却逐步增大,因此前期的方案及规范的编写显得十分重要。
接下来的工作是逻辑实现,依据详细设计规范完成RTL级实现。由于本人对xilinx 7系 FPGA底层架构有较深刻的认识,本人会结合硬件架构特点进行编码,必要时会手动干预推断过程,因此综合效率会有明显提高,但这并不意味着直接粗暴的干预综合器工作,我们需要为工具预留足够的空间以保证灵活性。随着功能仿真及首次综合网表的产生,接下来的工作是完成设计初期的XDC约束编写工作,主要对时钟拓扑述及基础布局点的描述,此时形成基线(baseline)约束。当综合迭代直到首次收敛时,进行实现工作。
在实现时,依据实现各个阶段报告持续迭代,此阶段基于对硬件架构的考虑,及时解决时序及拥塞问题。其次,在执行迭代过程中,本人可以实现对时序及拥塞问题更有效的定位,在解决这些问题时本人会尽量少的干预布局布线器,为工具留出更多的空间。当首次布线后的设计完成收敛,此时基线过程基本完成。接下来的工作进是一步完善设计,例如输入输出约束或基于基线设计增量性的做功能扩充等。
回顾4年的工作,我认为工作中团队品性及团队效率是带领团队朝着正确的方向迈进,正确的价值导向保证团队品性,保证团队团结稳定。而团队效率则是依靠科学的管理方法,良好的交接制度和文档管理制度是关键。尤其好的文档制度,是交接的重要内容,更是今后其他开发人员进行设计集成,代码移植的重要依据。在工作中个人技能是十分重要的,但同时我们也不应该忽略对工作环境的建设,合适的人在合适的环境中才能更好的体现价值。