ARM原理学习(一)全可编程SoC设计导论

一、引言

1、SoC(System-on-chip)

 传统的计算机系统主板由大量的电子元器件、散热装置以及固定连接器组成,需要使用大量的机械连接装置,以及额外的专用集成电路(Application SpecificIntegrated Circuit,ASIC)器件,这会带来以下几个方面的问题:
(1)增加系统的整体功耗。
(2)增加系统的总成本。
(3)降低系统可靠性。
(4)维护成本较高。
  传统计算机系统由于存在大量芯片与机械连接装置,使用时可能由于机械连接不牢固,造成系统无法正常工作。随着半导体技术的发展,将基于PCB的构造集成至芯片,即将构成计算机基本结构的大量元件集成到一个芯片中,如CPU内核、总线结构、功能丰富的外设控制器以及模数混合器件。
  典型地,ARM公司向其合作伙伴提供了以ARM CPU体系结构为基础的嵌入式处理器物理知识产权( Intellectual Property,IP)核,以该嵌入式处理器结构为核心,可以在单个芯片内搭载功能丰富的外设资源。这种将一个计算机系统集成到单芯片中的结构称为片上系统(System on a Chip,SoC)。在该结构中,集成了ARM CPU核、ARM制定的高级微控制器总线结构( Advanced Microcontroller Bus Architecture,AMBA),以及用于和外部不同设备连接的物理IP核。

2、SoC与MCU及CPU

(1)SoC优势

(1)集成多个功能强大的处理器内核.
(2)集成容量更大的存储器块、不同的I/O资源,以及其他外设.
(3)集成了功能更强大的图形处理器单元( Graphies Processing Unit,GPU)、数字信号处理器( Digital Signal Processor,DSP)以及视频和音频解码器等.
(4)可运行不同的操作系统。典型地有微软公司的windows操作系统、 Linux操作系统和谷歌公司的 Android操作系统。
(5)可以用于更高级的应用,如数字设备的主芯片(智能手机、平板电脑)。

(2)CPU(Central Processing Unit)特点

(1)单个处理器核。
(2)CPU可以用于绝大多数的应用场合,但是需要额外的存储器和外设的支持

(3)MCU(Microcontroller Unit)特点

(1)典型地,它只有一个处理器内核
(2)其内部包含了存储器块、I/O和其他外设
(3)MCU主要用于工业控制领域,如嵌入式应用。

实际上,MCU相当于低级的SoC,MCU与CPU均是SoC的子集。

3、典型SoC

高通 ----------骁龙
英伟达--------图睿
苹果-----------A系列(如A4,A5等,目前ipad2020采用了A12处理器芯片)

4、SoC设计流程SOC设计流程图

(1)IP供应商:如ARM,英特尔等
(2)芯片设计公司:如TI,Xilink,NVDIA,高通,华为海思等(他们主要从事芯片设计工作,一般不参与芯片的加工制造工作)
(3)制造厂:台积电,三星,中芯国际等

  设计开发流程中,首先要制定SoC设计规范,完成软硬件划分,购买硬件IP核设计与软件驱动程序,IP核设计与驱动程序均由IP供应商提供,ARM等公司不参与芯片制造,他们主要靠授权IP核实现盈利。之后由芯片设计公司实现软硬件集成,并在FPGA上进行验证。之后软硬件进行优化与验证,最后交由制造厂加工芯片,设备厂商再进行PCB制备与设备组装。

  实际上,大部分嵌入式软硬件工程师仅仅在从事应用程序开发和验证以及PCB制造与设备组装工作,并不涉及芯片设计开发。在产品开发过程中,我们仅仅通过接口进行调用,内部已经被封装,类似于一个黑盒子,但通过学习ARM架构可以促进我们对于底层的理解,加深我们对于芯片工作原理的认识。

5、SoC基本结构在这里插入图片描述

 如上图所示,针对于一个SoC器件主要由以下部分组成:
(1)一个ARM处理器,如 Cortex-M0
(2)高级微控制器总线结构( Advanced Microcontroller Bus Architecture,AMBA)
(3)来自ARM或者第三方的IP核
(4)一些SoC提供更复杂的结构,如:包含总线桥的多总线系统、DMA引擎、时钟生成器单元,以及电源管理单元等。

6、可编程SoC技术

  Xilinx公司的ZYNQ 7000系列就是集成了ARM与FPGA的可编程SoC.
  全可编程SoC可分为基于软核与硬核两种全可编程SoC。
(1)基于软核的全可编程SoC:在FPGA中并不存在这样一个CPU,而是通过使用FPGA内的通用逻辑资源,对所描述的CPU功能进行综合与实现后,在FPGA内部实现一个与专用SoC内CPU功能一样的处理器结构,是一种RTL级代码,简化为传输门的形式。
(2)基于硬核的全可编程SoC:如ZYNQ-7000中存在的A9处理器,是真正存在的处理器核,在硅片上已经做好了,只可通过AMBA规范连接CPU与外设,无法观察到CPU内部。
全可编程SoC设计流程见下图:
在这里插入图片描述
  采用 Xilinx7系列FPGA实现 Cortex-M0全可编程系统设计的过程。如图1.9所示,在构建全可编程SoC系统时,包含两个开发环境:
1)Xilinx的 Vivado2016.1集成开发环境

在该集成开发环境中,实现的主要功能包括:
(1)对 Cortex-M0处理器硬件系统的描述,包括:Cortex-M0处理器、时钟、总线、存储器和外设,描述方法采用HDL和IP核混合设计方法。
注:这种描述方法属于寄存器传输级( Register Transfer Level,RTL)描述。
(2)对所描述的系统进行行为级仿真。通过仿真,及时发现系统描述中存在的缺陷。
(3)对系统进行详细描述和综合。通过详细描述和综合,将RTL描述转换成逻辑网表。
(4)对设计分配物理和时序约東。在本书介绍的内容中,物理约束主要是引脚位置和电气标准;时序约東,目标是保证整个 Cortex-MO嵌入式系统正常运行所需的时序,主要包括建立时间和保持时间。
(5)对设计进行实现。实现过程包括转换、映射以及布局布线。转换将逻辑网表变成 Xilinx可以识别的网表格式;映射将 Xilinx可以识别的网表格式对应到Xilinx具体的FPGA器件;布局布线就是在FPGA器件内选择所使用的逻辑设计资源,并使用FPGA内的互联资源将所使用的逻辑设计资源进行连接。
(6)时序收敛。时序收敛的目标是保证整个硬件系统工作时,不会出现竞争冒险和亚稳定工作状态等时序问题。通过对设计进行布局布线后仿真(时序仿真),读者可以分析所设计的系统在考虑时序(延迟等)时,能否正常工作。当不满足时序收敛条件时,读者需要修改时序约束条件。
(7)生成比特流文件。将实现后的设计转换成可以配置成FPGA的比特流文件。
(8)下载比特流文件。将生成后的比特流文件下载到FPGA内,用于在FPGA内生成全可编程SoC硬件系统结构。
(9)逻辑分析和调试。通过使用Xinx提供的在线逻辑分析工具,分析设计的逻辑功能,以便在出现运行故障时,帮助定位引起故障的原因。

2)Keil的u Vision5集成开发环境
在该开发环境中,可以使用汇编语言、C语言编写驱动、用户应用程序,以及选择使用RTX操作系统。并且,通过该集成开发环境提供的编译器、汇编器和链接器等工具生成可以用于配置 Cortex-M0硬件系统内存储器的十六进制文件。该文件就是所设计软件的机器码描述。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ARM Cortex-M0是一种可编程SOC(系统级芯片),它的原理是将处理器、内存、外设等多个功能模块集成在一个芯片上,实现了高度集成化的设计。Cortex-M0采用了ARM架构,具有低功耗、高性能、易于编程等特点,广泛应用于物联网、智能家居、工业控制等领域。 实现Cortex-M0 SOC需要进行多个步骤,包括设计芯片架构、选择器件、编写软件等。首先,需要确定芯片的功能需求和性能指标,设计出合适的架构。然后,选择适合的器件,包括处理器、存储器、外设等,进行芯片的布局和布线。最后,编写软件,包括底层驱动程序、操作系统、应用程序等,实现芯片的功能。 总之,ARM Cortex-M0可编程SOC的实现需要进行多个步骤,包括芯片架构设计、器件选择和软件编写等,需要具备丰富的硬件和软件开发经验。 ### 回答2: ARM Cortex-M0是一种精简型微控制器(MCU)的处理器核心,广泛应用于普通消费电子产品、智能物联网、低功耗应用等多个领域。ARM Cortex-M0采用3级流水线的指令执行架构和16/32位的总线结构,在搭载外设、调度内部资源和处理I/O操作等方面表现优异,同时还具有低功耗性、强大的数据处理能力和高效的价格性能比。ARM Cortex-M0 可编程SOC原理及实现正是基于ARM Cortex-M0处理器核心的MCU核心,具有以下几个关键特征: 首先,ARM Cortex-M0可编程性是其最大的特点之一。SOC可编程性通常包括芯片基础可编程、可重构逻辑实现和可编程存储器等,ARM Cortex-M0采用的可编程方案是基于其流水线架构和编程模型。MCU核心芯片通过开放的软件编程接口(API)向外界提供可编程的开放式体系结构。这样,用户可以将其功能需求通过编程进行灵活的配置和扩展。 其次,ARM Cortex-M0可编程SOC依赖于外设和内核资源的完美协调。ARM Cortex-M0可编程SOC一般被设计成包括多个IO、通信、控制和运算等外设单元,同时还包括中央处理单元(CPU)、DMA控制器、定时器和触摸控制器等多种内核资源。这些内核资源和外设单元靠编程方式连接到一起,CPUCPU通过中断机制、DMA控制器与I/O设备直接交换数据,实现了数据在外设间的传输,提高系统运行效率。 最后,ARM Cortex-M0可编程SOC的实现依赖于设计工具和技术的支持。ARM Cortex-M0可编程SOC的实现需要用到各种先进的技术和设计工具,如芯片设计技术、加密算法和嵌入式软件开发技术等。此外,各种先进的设计工具如MATLAB、Cortex-M0开发板和仿真工具等可以帮助开发者轻松实现ARM Cortex-M0可编程SOC的各项功能,提高产品的研发速度和效率。 总之,ARM Cortex-M0可编程SOC是基于现有技术和芯片设计工具,依托ARM Cortex-M0处理器核心、外设和高效的软件编程接口(API)实现的一种可编程型微控制器(MCU)核心。其优势在于灵活的编程体验、高效的数据传输能力和图形化的编程工具支持,从而为设计者提供了更多的创意空间和产品实现方案。 ### 回答3: ARM Cortex-M0可编程SOC是一种低功耗的嵌入式处理器系统。该处理器系统包含了ARM的Cortex-M0内核,还包括了片上内存、外设、以及通信接口等。其实现方式可以分为两个方面:硬件实现和软件实现。 硬件实现方面,ARM Cortex-M0可编程SOC采用了先进的28纳米工艺,以及一些先进的设备。在系统中,ARM Cortex-M0内核与片上外设之间通过总线进行连接。而通信接口则是通过串口或者USB实现,在系统设计过程中可以根据需求选择适合的通信接口。此外,该系统还包含有SRAM,FLASH等片上内存组件。其中,SRAM是用于存储栈空间、寄存器和其他变量的,而FLASH则是用于存储应用程序和数据的。 软件实现方面,ARM Cortex-M0可编程SOC通过ARM的软件开发工具链进行开发。其中,主要的开发工具包括C/C++编译器、调试器、仿真器等。系统设计者可以使用这些工具进行应用程序的编译、调试和仿真等操作。此外,还可以使用ARM的软件库来加速应用程序的开发。这些软件库包括CMSIS(Cortex Microcontroller Software Interface Standard)、HAL(Hardware Abstraction Layer)等。这些库提供了许多已经被验证的软件组件,可以使系统设计者更加快速、简单地开发基于ARM Cortex-M0可编程SOC的应用程序。 总之,ARM Cortex-M0可编程SOC可以提供强大的处理性能、通信接口和片上外设,同时还可以基于ARM的开发工具链和软件库快速地开发应用程序。这使得它成为了众多嵌入式设备的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值