FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
FPGA更偏向于硬件电路,而单片机更偏于软件。
单片机是基于CPU的冯·诺依曼器件,FPGA是基于并行逻辑单元的器件。
相应的,单片机的开发是对指令的编程,FPGA的开发是对逻辑单元的连接。
你的理解已经非常接近完全正确了。需要更正的是,“单片机硬件固定,硬件各部分功能固定,我们用软件编程后意味着我们只是使用了其中部分硬件的功能来实现我们想要的结果”这句话中,如果需要,我们完全可以使用其中全部硬件的功能,但没办法增加硬件功能。
不懂不要乱提修改建议啊
=============================
最主要的区别是FPGA是硬件可编程,单片机是软件可编程。
FPGA是通过设计硬件逻辑电路来达成设计目标,
而单片机的硬件是固定的,通过设计软件程序来达成设计目标。