比较在MCU和FPGA / CPLD上实现简单的自动化设计


8

自90年代以来,我一直在从事MCU的开发工作,最近,我使用Xilinx的Spartan6系列芯片进入了FPGA领域。假设一个简单的带有传感器和电机的工厂自动化设计,以及将所有东西链接起来的智能,那么我可以在哪种类型的设备上更快,更轻松地完成设计,MCU或FPGA?细小或“明显”的观点也应受到赞赏,因为我是FGPA的新手。


即使是FPGA解决方案,也几乎可以肯定会包含一个处理器,该处理器要么在FPGA旁边,在其内部实现,要么在连接的大型计算机中实现。与专用逻辑或状态机相比,存储程序结构更易于实现算法的复杂部分,因此,您仅将它们保存在必须快速(或大规模并行)但简单的事情上即可。
克里斯·斯特拉顿

来自Richard和Martin的精彩答案。尝试将新近学习的技能或技术应用于下一个问题可能很诱人,但是在这种情况下(出于上述先生们描述的原因),我认为MCU是必经之路。
Radian 2012年

Answers:


11

除非需要,否则没有理由使用FPGA 。甚至在MCU和FPGA领域中,两位具有类似才能的工程师都可以将MCU用于相对简单的自动化任务。

Pro MCU:

  • 通常,MCU可以随时使用外界的所有外围设备
  • 编译需要几秒钟(FPGA需要几分钟到几小时)
  • 还有一个数量级(或两个!)的工程师可以为您提供帮助,也可以在您离开的地方继续工作。(出于有趣的目的,不一定是统计上有效的比较-比较CVHDL或FPGA在堆栈溢出上的问答次数)

如果需要,请使用FPGA,因为:

  • 使用微处理器无法在功率,重量,尺寸或成本预算中满足所需的数字转换
  • 有软件无法保证的严格的实时期限(例如,响应时间以微秒为单位)
  • 使用FPGA逻辑可以使对响应时间的可靠断言更加容易
  • 通过使用自定义数据类型(例如12位浮点数),您可以节省大量成本,功耗等。

要么:

  • 您的作业告诉您,您必须:)

+1对于第三个项目符号,“可以提供更多数量的工程师(或两个!)”。上次使用此标准时,它是用于选择编程语言。
尼克·阿列克谢耶夫

5

我相信使用微控制器(MCU)对您来说更容易的几个原因:

  • 您有使用MCU的经验。学习任何新芯片的来龙去脉都需要时间。
  • MCU具有内置的外围设备,您必须在FPGA上自己实现(或购买)。例如,大多数MCU都具有I2C端口,如果您从I2C传感器读取数据,该端口将很有用。同样,大多数MCU都具有某种模数转换器和脉宽调制器,而这两者对于良好的电机控制来说很有可能是必需的。
  • 复杂的算法在C语言中比在VHDL中更容易表达(我没有Verilog的经验)。
  • 在MCU中,人为比例的延迟很容易,但是在FPGA中却占用大量资源。
  • 对于简单的工厂自动化而言,MCU的短,标准位宽度和较慢的速度很可能就足够了。

无论哪种情况,都必须注意所编写的代码,以使其在所有情况下均能正常工作,尤其是在危险情况下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.