SoC设计指南:基于Arm Cortex-M
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 Arm Cortex-M系列处理器简介

1.1 Cortex-M系统设计

1.1.1 轻松开始Cortex-M系统设计

Arm Cortex-M是目前物联网和嵌入式应用中使用最广泛的处理器架构之一。数字系统设计者开发的数字模块需要以某种方式与处理器进行交互,例如使用处理器进行操作流程控制。Cortex-M系列处理器具有轻量化和易于使用的优点,将其集成到系统设计中能够降低整体方案的复杂度。

虽然在简单的数字应用系统中,可以使用状态机来实现控制功能,如编写Verilog或VHDL有限状态机(Finite State Machine,FSM)来实现,基本不需要使用处理器,但是当应用场景更为复杂时,有限状态机中的控制状态数也会随之增加。针对复杂系统设计中愈来愈高的灵活性要求,在系统中集成和使用处理器将势在必行。通过处理器运行控制代码来处理复杂的控制流,设计者可以轻松地进行软件修改和调试,因此嵌入式处理器被越来越广泛地使用在FPGA系统设计中。虽然使用单独的微控制器来控制基于FPGA的数字系统也是可行的,但除了会增加整个系统的组件数量,这还可能引发FPGA与处理器之间潜在的信号布线问题,如时序、PCB信号布线、噪声和可靠性问题等。

总体来说,在FPGA中集成处理器有以下优点:

● 能够处理图形用户界面(Graphical User Interface,GUI)和文件系统中的数据存储管理等类似的复杂任务;

● 系统的硬件设计和应用程序的开发与更新可以各自独立进行,有利于提高系统开发的灵活性;

● 不需要单独的处理器芯片,从而减少了整个系统中组件的数量;

● 处理器与功能逻辑模块之间的信号布线可以由FPGA设计工具自动处理;

● 相比于复杂状态机,在技术成熟的处理器上调试软件更容易;

● 处理器与逻辑模块之间的接口限制性小;

● 相比之下,使用独立的处理器芯片可能对接口有限制,如引脚数量、协议选择和电气特性等;

● 程序代码存储在FPGA的配置闪存中,允许在应用程序执行的同时进行系统固件更新;

● 现阶段的FPGA开发工具大多支持嵌入式处理器,将处理器集成到FPGA中比使用单独的处理器芯片更加便利。

相比于市场上众多的处理器IP,Cortex-M处理器具有以下优势:

● 性能优异,在相同的条件下,芯片面积更小、功耗更低;

● 软件开发更容易;

● 技术更成熟。

基于Arm Cortex-M处理器的产品已于2005年问世。近年来,Arm公司凭借其流程简便、响应快速、免认证费或低认证费的优势,助力众多预算有限的设计企业取得Cortex处理器IP。例如,2019年,Arm公司推出Flexible Access业务,允许设计企业在产品量产之前广泛使用Arm IP,用于开展技术评估或全功能片上系统(System on Chip,SoC)设计,此过程中Arm公司不收取任何费用,设计企业仅需负担芯片制造的开支;Arm公司还推出了DesignStart项目,提供了一系列Arm IP,帮助刚接触Cortex-M技术的设计者无风险地快速开展设计工作。设计者可以通过多种渠道获取FPGA开发解决方案,而购买FPGA开发板更直接有效,还省时省钱。通过与FPGA厂商合作,Arm公司还提供了DesignStart FPGA设计包,其中包含可在特定FPGA平台上即时免费使用的Cortex-M1、Cortex-M3 CPU IP软核。凭借其在开发工具、软件和技术服务等方面领先的生态优势,Arm Cortex-M系列产品已成为数字系统设计中最佳的嵌入式处理器。

1.1.2 基于FPGA的Cortex-M处理器系统

既然市面上已有很多基于Cortex-M的微控制器和SoC产品可供使用,为何还要在FPGA平台上搭建Cortex-M系统呢?原因如下:

● 教育方面——FPGA对于许多高校数字系统设计的教学来说是完美的平台。高校在数字系统设计课程的教学中热衷于使用Arm处理器,如使用Arm处理器演示如何创建典型的SoC系统并为其开发应用程序。相比于真正耗时费钱的芯片设计,FPGA数字系统开发平台在教学使用中更加合适。

● 产品开发方面——设计者在使用FPGA平台创建定制化数字系统时,需要用处理器对设计的数字系统进行操作控制。在一些应用场景中,现有的微控制器产品无法提供所需的数字功能,此时使用FPGA平台上的Cortex-M处理器将成为有效的替代方案。

● 操作性方面——Cortex-M3软CPU IP现在易于使用,成本低,可以与来自不同FPGA供应商的FPGA设备一起使用。DesignStartFPGA程序、Cortex-M1和Cortex-M3软CPU IP与FPGA设计工具集成,使其更易于使用。此外,由于这些处理器与其他Arm处理器有许多共同的架构特征,学生们通过实验获得的知识和技能对于他们将来再次使用Arm处理器很有价值。

● 芯片或SoC系统原型设计方面——许多专用集成电路(Application Specific Integrated Circuit,ASIC)设计者使用包含Cortex-M处理器的FPGA平台来开展芯片或SoC系统的原型设计。它可以有效进行新产品理念的原型验证,并提供概念的展示与可行性评价方法。使用这些系统,软件开发人员可以重用他们对Cortex-M编程的知识来开发这些设备。

虽然FPGA厂商也提供一些处理器,但其中大多数架构都是专用的且仅限于特定的FPGA平台。相比之下,Cortex-M处理器更加通用。大多数Cortex-M处理器(如Cortex-M0和Cortex-M3)都针对ASIC或SoC进行了优化。Cortex-M1处理器针对大多数FPGA器件进行了优化设计(如规模更小、操作频率更高),同时可以在不同类型的FPGA平台之间进行移植,并与其他版本的Cortex-M处理器向上兼容。例如,从软件的角度来看,Cortex-M1中使用的指令集架构与时下流行的Cortex-M0和Cortex-M0+处理器相同。如果需要更多指令功能,设计人员还可以升级到Cortex-M3或其他Cortex-M处理器。

由于在最新的FPGA设计工具中可直接使用Cortex-M处理器IP,因此Cortex-M设计不再局限于SoC设计专业人员,学生、学术研究人员、电子爱好者等也都可以接触到Cortex-M系统设计。

1.1.3 Arm处理器架构更易构建安全系统

为了确保传输数据的安全性和知识产权成果的私密性,系统与外设互相访问时,需要采用适当的方法加强数据传输的安全,这对保障企业在技术创新中知识产权成果持续获益非常重要。Arm公司在行业领域内发起了一项名为平台安全架构(Platform Security Architecture,PSA)的倡议,受到了很多半导体厂商及产业生态合作者的支持,它们都寻求多方合作,共同致力于在系统设备互联访问安全标准方面达成一致。

尽管PSA框架是由Arm公司提出的,但它并不对处理器架构设置限制,即PSA与处理器架构无关,也就是说,互相兼容的设备都要遵从既定的PSA安全规范。PSA资源包括编程接口(API)、实施指南、风险模型、开源的参考固件等。读者可通过访问网址https://developer.arm.com/architectures/security-architectures/platform-security-architecture获取更多资源。