什么是嵌入式系统的软硬件协同设计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是嵌入式系统的软硬件协同设计相关的知识,希望对你有一定的参考价值。

1 协同设计与传统设计方法的比较

  嵌入式系统是由若干个功能模块组成的,这些功能模块按照其性质可以分为软件模块和硬件模块两类。在过去几十年内,系统的设计方法经历了很大的变化,有自上向下的设计方法,也有模块化设计方法,他们总体上都是硬件模块优先的设计方法,将其统称为传统的设计方法。

  这种设计方法将硬件和软件分为两个独立的部分。在整个设计过程中,通常采?quot;硬件优先的原则",即在粗略估计软件任务需求的情况下,首先进行硬件设计,然后在此硬件设计平台上进行软件设计。由于在硬件设计过程中缺乏对软件构架和实现机制的清晰了解,硬件设计工作带有一定的盲目性。他的系统优化由于设计空间的限制,只能改善硬件/软件各自的性能,不可能对系统做出较好的综合优化,得到的最终设计结果很难充分利用硬软件资源,难以适应现代复杂的、大规模的系统设计任务。

  而嵌人式系统软硬件协同设计是让软件设计和硬件设计作为一个整体并行设计,找到软硬件的最佳结合点,从而使系统高效工作。

  软硬件协同设计最主要的一个优点就是在设计过程中,硬件和软件设计是相互作用的,这种相互作用发生在设计过程的各个阶段和各个层次。

  设计过程充分体现了软硬件的协同性。在软硬件功能分配时就考虑到了现有的软硬件资源,在软硬件功能的设计和仿真评价过程中,软件和硬件是互相支持的。这就使得软硬件功能模块能够在设计开发的早期互相结合,从而及早发现问题及早解决,避免了(至少可以减少)在设计开发后期反复修改系统以及由此带来的一系列问题,而且有利于挖掘系统潜能、缩小产品的体积、降低系统成本、提高系统整体性能。

  
2 软硬件协同设计的过程

  总的来说,软硬件协同设计的系统设计过程可以分为系统描述、系统设计、仿真验证与综合实现4个阶段。

  系统描述是用一种或多种系统级描述语言对所要设计的嵌入式系统的功能和性能进行全面的描述,建立系统的软硬件模型的过程。系统建模可以由设计者用非正式语言,甚至是自然语言来手工完成,也可以借助EDA工具实现。手工完成容易导致系统描述不准确,在后续过程中需要修改系统模型,从而使系统设计复杂化等问题,而优秀的EDA工具可以克服这些弊端。

  对于嵌人式系统来说,系统设计可以分为软硬件功能分配和系统映射2个阶段。软硬件功能分配就是要确定哪些系统功能由硬件模块来实现,哪些系统功能由软件模块来实现。硬件一般能够提供更好的性能,而软件更容易开发和修改,成本相对较低。由于硬件模块的可配置性,可编程性以及某些软件功能的硬件化、固件化,某些功能既能用软件实现,又能用硬件实现,软硬件的界限已经不十分明显。此外在进行软硬件功能分配时,既要考虑市场可以提供的资源状况,又要考虑系统成本、开发时间等诸多因素。因此,软硬件的功能划分是一个复杂而艰苦的过程,是整个任务流程最重要的环节。

  系统映射是根据系统描述和软硬件任务划分的结果,分别选择系统的软硬件模块以及其接口的具体实现方法,并将其集成,最终确定系统的体系结构。具体地说,这一过程就是要确定系统将采用哪些硬件模块(如全定制芯片、MCU,DSP,FPGA、存储器、I/O接口部件等)、软件模块(嵌入式操作系统、驱动程序、功能模块等)和软硬件模块之间的通讯方法(如总线、共享存储器、数据通道等)以及这些模块的具体实现方法。

  仿真验证是检验系统设计正确性的过程。他对设计结果的正确性进行评估,以达到避免在系统实现过程中发现问题时再进行反复修改的目的。在系统仿真验证的过程中,模拟的工作环境和实际使用时差异很大,软硬件之间的相互作用方式及作用效果也就不同,这也使得难以保证系统在真实环境下工作的可靠性。因此,系统模拟的有效性是有限的。

  软硬件综合就是软件、硬件系统的具体制作。设计结果经过仿真验证后,可按系统设计的要求进行系统制作,即按照前述工作的要求设计硬件软件,并使他们能够协调一致地工作,制作完成后即可进行现场实验。

  
3 协同设计.EDA工具简介

  软硬件协同设计比较有代表性的EDA工具有CORSAIR,COOL和POLIS。这几个系统都是从系统级的系统行为描述开始,经过成本的估计,软硬件划分、软硬件的协同综合、模拟,最后到板级的快速原型(除CO()L外)。原型板一般包含MCU以及ASIC或FPGA。软件部分在微处理器或者微控制器上运行,硬件部分在ASIC或FPGA上实现。

  CORSAIR的系统描述阶段用SDL和PMSC两者相结合对系统进行建模。SDL是一种基于有限状态机语义的面向对象的系统说明描述语言。CORSAIR用他来描述系统的行为功能。而系统的性能需求则由PMSC来描述。COOL使用VHDL语言作为系统的描述语言。在POLIS中,设计者使用某种具有扩展有限状态机语义的高级语言(比如VHDL的可综合的子集)进行系统描述。这几个系统的计算模型基本上都是限定在扩展的FSM。当前,在系统的设计中,使用UlMI。作为系统建模语言是很有前景的发展方向。

  软硬件划分方面,POLIS需要由手工实现,其他两种工具可以自动划分。CORSAIR的目标体系结构是多处理器多FPGA,COOL是多处理器,而POUS是单处理器。

  这几种系统协同综合阶段的目的就是生成硬件的硬件描述语言和软件的C代码,并对他们进行协同模拟。
参考技术A 嵌入式系统是由若干个功能模块组成的,这些功能模块按照其性质可以分为软件模块和硬件模块两类。在过去几十年内,系统的设计方法经历了很大的变化,有自上向下的设计方法,也有模块化设计方法,他们总体上都是硬件模块优先的设计方法,将其统称为传统的设计方法。

这种设计方法将硬件和软件分为两个独立的部分。在整个设计过程中,通常采?quot;硬件优先的原则",即在粗略估计软件任务需求的情况下,首先进行硬件设计,然后在此硬件设计平台上进行软件设计。由于在硬件设计过程中缺乏对软件构架和实现机制的清晰了解,硬件设计工作带有一定的盲目性。他的系统优化由于设计空间的限制,只能改善硬件/软件各自的性能,不可能对系统做出较好的综合优化,得到的最终设计结果很难充分利用硬软件资源,难以适应现代复杂的、大规模的系统设计任务。

[架构之路-20]:目标系统 - 硬件平台 - 嵌入式系统硬件电路基础:架构设计流程总线外设基本电路编码

目录

前言:

第1章 嵌入式系统软硬件架构概览

1.1 什么是嵌入式系统

 1.2 嵌入式系统发展历程

1.3 嵌入式系统软件+硬件架构

 1.4 嵌入式系统的模型

1.5 嵌入式系统的硬件设备树

1.6 嵌入式SOC芯片内部架构

第2章 硬件电路设计基础

2.1 嵌入式硬件电路设计流程

2.2 原理图设计

2.3 PCB设计

2.4 PCB生产与焊接

2.5 CPLD编程

2.6 FPGA编程

第3章 嵌入式系统硬件基础电路

3.1 逻辑电路

3.2 组合电路

3.3 时序电路:基本架构

3.4 时序电路:触发器电路

3.5 时序电路: RS触发器电路

3.6 时序电路:D触发器电路

3.7 三态门电路

3.8 PLD内部结构

3.9 PLA门阵列

3.10  CPLD内部结构

3.11 FPGA内部结构

第4章 嵌入式系统的硬件组成

 4.1 嵌入式处理器

(2)微处理器体系机构

(3)RISC处理器结构

(4)SOC 芯片内部架构

 4.2 并行总线

(1)Local bus

(2)PCI总线

4.3 地址空间

 4.4 内存架构

(1)存储器分类

(2)双端口RAM

(3)MMU内存处理单元

(4)存储器层次架构

4.5 低速传送总线设备

(1)Uart串口

 (2)SPI设备

(3)I2C设备

(4)SD设备

4.6 高速串行设备

(1)以太网

(2)PCIe总线

4.7 可编程设备

4.8 硬件测试工具

(1)芯片手册

(2)示波器

(3)逻辑分析仪

(4)仿真器

第5章 嵌入式系统信息表示与数据编码

5.1 基本数据类型

5.2 进制之间的转换 

5.3 正码与补码

5.4 实数数值编码

5.5 非数值数据编码

5.6 差错控制编码CRC

5.7 8B/10编码


前言:

本文对嵌入式系统硬件的基础知识进行快速概览,但并不深入硬件细节。

第1章 嵌入式系统软硬件架构概览

1.1 什么是嵌入式系统

 1.2 嵌入式系统发展历程

1.3 嵌入式系统软件+硬件架构

 

 1.4 嵌入式系统的模型

1.5 嵌入式系统的硬件设备树

1.6 嵌入式SOC芯片内部架构

第2章 硬件电路设计基础

2.1 嵌入式硬件电路设计流程

2.2 原理图设计

2.3 PCB设计

2.4 PCB生产与焊接

2.5 CPLD编程

2.6 FPGA编程

第3章 嵌入式系统硬件基础电路

3.1 逻辑电路

3.2 组合电路

3.3 时序电路:基本架构

3.4 时序电路:触发器电路

3.5 时序电路: RS触发器电路

3.6 时序电路:D触发器电路

3.7 三态门电路

3.8 PLD内部结构

 

3.9 PLA门阵列

3.10  CPLD内部结构

3.11 FPGA内部结构

第4章 嵌入式系统的硬件组成

 4.1 嵌入式处理器

(2)微处理器体系机构

(3)RISC处理器结构

(4)SOC 芯片内部架构

 4.2 并行总线

(1)Local bus

(2)PCI总线

4.3 地址空间

 4.4 内存架构

(1)存储器分类

(2)双端口RAM

(3)MMU内存处理单元

 

(4)存储器层次架构

4.5 低速传送总线设备

(1)Uart串口

 (2)SPI设备

 

(3)I2C设备

(4)SD设备

4.6 高速串行设备

(1)以太网

(2)PCIe总线

 PCIe总线规范总线频率编码的关系

PCIe总线规范总线频率单Lane的峰值带宽编码方式吞吐量
x1x4x8x16
1.x1.25GHz2.5GT/s8/10b编码250MB/s1GB/s2GB/s4GB/s
2.x2.5GHz5GT/s8/10b编码500MB/s2GB/s4GB/s8GB/s
3.x4GHz8GT/s128/130b编码984.6MB/s3.938GB/s7.877GB/s15.754GB/s
4.x8GHz16GT/s128/130b编码1.969GB/s7.877GB/s15.754GB/s31.508GB/s
5.x16GHz32 or 25GT/s128/130b编码3.9 or 3.08GB/s15.8 or 12.3GB/s31.5 or 24.6GB/s63.0 or 49.2GB/s

4.7 可编程设备

4.8 硬件测试工具

(1)芯片手册

(2)示波器

(3)逻辑分析仪

(4)仿真器

第5章 嵌入式系统信息表示与数据编码

5.1 基本数据类型

5.2 进制之间的转换 

5.3 正码与补码

5.4 实数数值编码

5.5 非数值数据编码

5.6 差错控制编码CRC

5.7 8B/10编码

以上是关于什么是嵌入式系统的软硬件协同设计的主要内容,如果未能解决你的问题,请参考以下文章

什么是嵌入式开发?嵌入式软件开发入门教程

嵌入式系统硬件设计与实践(开发过程)

《C嵌入式编程设计模式》

嵌入式系统硬件设计与实践(学习方法)

嵌入式系统的核心是什么?

FPGA软硬协同设计学习笔记及基础知识