从研一开始接触FPGA,刚开始接触的时候,认为很简单,不就是写写代码就okey了吗?所以混混谔谔地度过了3个月,因为刚开始的时候接触的时比较简单的算法,所以对设计的时序和性能要求不是很高,写写代码完全就可以了,所以从来没有关心底层的东西(底层的手工布局布线),也很少写一些约束文件。可是后来随着设计月来月复杂,才认识到约束文件和底层布局布线的重要性。而这些东西设计的知识面还是比较广的 ,比如数字电路,高速时钟系统,电路工艺方面,系统设计等等。只有底层做好了,才是真正的高手。后来去709所调试板子的时候,有幸遇到一个经验很丰富并且很乐意帮助我们的工程师,她从90年代开始做FPGA,那个时候EDA工具不像现在智能化,她那个时候基本上完全是从底层做起来的,即使到我今年5月份去的时候,她才开始学习语言verilog,绝大部分工作都是自己从底层的模块搭建起来的。和我们的设计相比,她的设计性能更好,代价更小,系统更稳定。那一个月学到的东西,比我读研三年学到的东西更多。下面是自己的一些总结(个人意见,仅供参考):
1 要有对FPGA的兴趣,只有这样才能用最大的热情对待它。
2 要有对数字系统设计比较全面的把握,reg ,ram,counter,fifo,dsp,uc......
3 最好能有一个具体的项目(最好复杂一些,对系统的性能要求高一些),这样才能有的放矢,有压力才有动力。
4 找一个好的老师
5 重视底层,即使你的系统性能可以满足要求,也尝试着从底层进行一些开放和优化
6 多看看别人成功的例子,拓宽自己的视野,没事的时候到FPGA论坛逛逛。帮助他人也是帮助自己。
7 对要求实现的算法或者系统有一个清楚的认识
altera
xilinx
actel
lattice
FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。
FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。
FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
最近FPGA的配置方式已经多元化! |