Download presentation
Presentation is loading. Please wait.
1
软硬件协同设计 HW/SW Co-design By yuhong_hao
2
Contents: Part one : 软硬件协同设计的引入; Part two : 软硬件协同设计所涉及到的内容:
1. HW-SW Co-design Flow 2. Contemporary Co-design Framework 3. HW-SW partition 4. HW-SW Co-synthesis 5. HW-SW co-simulation Part three : 目前支持软硬件协同设计的工具介绍。
3
Part One 软硬件协同设计的引入
4
1. 以软硬件协同设计(Software/Hardware Co-Design)
系统集成芯片设计方法学的内容 1. 以软硬件协同设计(Software/Hardware Co-Design) 2. 具有知识产权的内核(Intellectual Property Core简称IP核) 复用 3. 超深亚微米(Very Deep Sub-Micron,简称VDSM)技术为 支撑的系统集成芯片是国际超大规模集成电路的发 展趋势和新世纪集成电路的主流
5
Problems with Past Design Method
缺少统一的软硬件表示方法 划分依靠先验定义 不能够验证整个系统 通过 HW/SW 边界时很难发现不兼容问题 缺少成熟的设计流程 上市时间问题 描述更改变得困难 Need Hardware-Software Co-Design
6
软硬件协同设计理论体系 系统任务描述 (System Task Description )
软硬件划分 (Hardware/Software Partition) 软硬件协同综合 (Hardware/Software Co-synthesis ) 软硬件协同仿真 (Hardware/Software Co-simulation ) 与系统设计相关的低压低功耗设计,可测性设计等等。
7
1. HW/SW Co-design 发展过程: 软硬件协同设计早期
主要是针对一个特定的硬件如何进行软件开发或根据一个 已有 的软件实现具体的硬件结构。 前者是一个经典的软件开发问题 软件性能的好坏不仅仅取决于软件开发人员的技术水平,更有 赖于所使用的硬件平台; 后者是一个软件固化的问题 实现的途径可以是采用一个与原有软件平台相同的硬件处理器, 并将软件代码存储于存储器当中,也可以是在充分理解软件的 内在功能之后完全用硬件来实现软件的功能。
8
2. 了解 HW-SW Co-design? HW-SW Co-design目的是为hardware和software的协同描述,验证和综合提供一种集成环境。 How can this be achieved? 涉及以下技术 嵌入式系统设计, 实时系统设计, 硬件设计, 软件设计.
9
Concurrent design(并行设计)
Traditional design flow Concurrent (codesign) flow Start Start HW SW HW SW Designed by independent groups of experts Designed by Same group of experts with cooperation
10
3. Why co-design? 缩短开发周期 取得更好的设计效果 满足苛刻的设计限制
这种平台的推出将不仅包含芯片本身,还必须包含完整的开发系统和典型应用实例,而供应商提供的服务和技术支持也当然要成为产品不可分割的一部分。 可以充分根据每个描述的特点生成最优的软硬件划分方案和软件、硬件架构。 可再配置的系统集成芯片平台(Re-Configurable SOC Platform)将是一个可能的选择。 探索替代设计产品 好的设计一定是HW/SW平衡 功率, 大小, 时序, 和性能 安全性和可靠性 SOC设计方法学
11
4. Hardware/Software Co-Design Goals and Requirements
统一的设计方法 执行独立 设计/执行验证 自动生成Hardware and Software 综合 Facilitates system specification Easy HW-SW trade-off evaluation Flexible HW-SW partitioning Stress system design issues Allow different hardware and software styles Formal Verification Simulation
12
5. Co-design 环境: Commercial(商业)
Research(研究) CADLab, SIR/CASTLE (Germany), Chinook, COSMOS, COSYMA, CoWare, DICE, COMET, LYCOS (Denmark), POLIS, Ptolemy, Riley, TOSCA, AKKA, CODES, VIOOL, COOL… Commercial(商业) ArchGen (Synergy System Design, Inc.), Mentor Graphics, Synopsys, Synthesia->Cadence, Co-design Automation->Synopsys, Celoxica, CoWare, etc.
13
到目前为止,商业系统的限制: 1. 典型的手动划分 2. 固定应用领域(carefully very specialized)
3. 逐渐增长的评估需求支持很弱(no abstract models) 4. 主要强调性能 5. 模型的连贯性在设计重用中不被支持 商业系统更强调协同验证(co-verification)方面(more achievable goal)
14
Part two 软硬件协同设计所涉及到的内容: 1. HW-SW Co-design Flow
2. Contemporary Co-design Framework 3. HW-SW partition 4. HW-SW Co-synthesis 5. HW-SW co-simulation
15
引子 SW/HW开发模型: 数据/控制流思想在两个领域都很普遍。
16
面临的问题 SW 设计师 have to 懂得 HW 语义 HW设计师 have to 懂得 SW 语义
Break the wall today! SW 设计师 have to 懂得 HW 语义 HW设计师 have to 懂得 SW 语义
17
1. 软件硬件协同设计的设计流程 用HDL语言和C语言进行系统描述并进行模拟仿真和系统功能验证;
对软硬件实现进行功能划分,分别用语言进行设计并将其综合起来进行功能验证和性能预测等仿真确认(协调模拟仿真); 如无问题则进行软件和硬件详细设计; 最后进行系统测试。
18
典型的 co-design 流程: 划分: 手动/自动/半自动
19
2. Contemporary Co-design Framework
System Specification Validation Front end Compiler Behavior Description of Modules Performance Estimation Partitioning Synthesis S/W Common H/W For precise specification, we need to - think the system to be a collection of simpler subsystems - a method (rules) to compose these pieces Functions specify only a relation between two sets of variables (input and output) Computation describe how the output variables can be derived from the value of input variable Integration Co-Simulation Constraint Verification Implementation CPU ASIC Memory
20
3. 软硬件划分 (HW/SW Partition)
是SOC设计中的一个重要课题 其基本原则应该遵循高速、低功耗由硬件实现; 多品种、小批量由软件对应; 处理器和专用硬件并用以提高处理速度和降低功耗。
21
Partitioning(划分) 方法 面向SW : 从SW to HW 满足时序要求 面向HW: 从HW to SW 降低成本 规模大小
任务级 操作级, 基本模块级 系统级 焦点问题 固定目标体系结构和未知目标体系结构 IPC 高层考虑 带有时序安排的划分 流水线 and/or 并行
22
Hardware - Software Architecture
一个或多个微控制器 ASICs, DSPs.... Software: concurrent tasks 调度程序集合 定制操作系统 Interfaces: Hardware 模块 Software 程序(polling, interrupt handlers, ...)
23
开发领域 3.1 Hardware synthesis 商业工具 抽象等级: 行为级综合: algorithmic synthesis
RTL综合: VHDL, Verilog 逻辑级综合: netlist 值得考虑的问题: reuse of hardware (Core)
24
3.2 Software synthesis 估算困难 对于嵌入式系统来说,会有更多的限制: 简单的算法 协同任务描述
no swapping devices no stacks only polling and static variables 简单的算法 Translating FSMs to programs especially simple 协同任务描述 Problem: How do we find a linear execution order that satisfies the timing constraints? Use scheduling theory.
25
3.3 Interface synthesis processor and ASIC接口 synthesis of software
synthesis of “glue logic” 总线接口的自动生成 PCI, VME, …… sensors and actuators接口 挑战: SoC with many cores!
26
All Interfaces for HW/SW Co-Design
Company Name Member Product Connections Interface Cadence Products CoWare N2C Integrator HDLI Nc-Sim Mentor Graphics Detail in web station Synopsys
27
4. HW-SW co-simulation? 基本定义: 用软件控制硬件的仿真 目标:
把运行在一个可编程的处理器硬件上的虚弱的可 编程(or 固定)硬件子系统和仿真软件联结 In the Past: co-simulation was adopted late in the process, after hardware is deemed to be working and stable. Software developers were often left to develop code for months with severely limited ability to test. Painful integration process, design flaw and could re-spin the silicon Now: Behavioral model simulation has matured, and simulation tools in general have improved to allow better simulation throughout the development cycle Co-design tools provide project architects with a simulation environment at a very high level of abstraction.
28
4.1 Co-simulation Requirements
速度 在不同结构下能够快速测试输入的不同激励 交互式 快速改变结构参数 容易分析结果和调试 (graphical interface) 正确性 hardly compatible with speed and interactivity
29
5. 现有工具: 大学: 商业: --POLIS: U.C. --Arexys: SDL.VHDL.C
大学: 商业: --POLIS: U.C. --Arexys: SDL.VHDL.C Berkeley --Coware: C/C++ --PTOLEMY: U.C. --LavalLogic: Java to Berkeley Verilog --VULCAN: Stanford U. --Cynlib: C++ to Verilog (Hardware C) --Art, Algorithm to --CHINOOK:U. of RT: C++ to RTL Washington (VHDL) --SUPERLOG: System --COSYMA: U. of level description Braunschweig (C*)
30
Available tools Cadance (basic and VCC) INRIA CADP
Xtensa from Tensilica VxWorks, Montavista RTOS IBM PowerPC development platform Xilinx’s FPGA Express Ptolemy, Polis environment Code Composer from TI
31
6. Introduction to POLIS 高级语言翻译 形式验证 系统协同仿真 设计划分 硬件综合 软件综合 接口连接执行领域
32
Continued 描述: FSM-based languages (Esterel, ...)
内部表示法: CFSM network Validation: high-level co-simulation FSM-based formal verification 划分: by hand, based on co-simulation estimates 时序安排: classical RT algorithms 综合: S-graph-based code synthesis for software logic synthesis for hardware Main emphasis on unbiased verifiable specification
33
Part Three 目前支持软硬件协同设计的工具介绍
34
1. 什么是SystemC? SystemC是一个开发硬件的面向对象的新型建模方法,建立在C++基础上,是为了方便系统级设计和IP交换。
System C是一个开放的标准,由13家EDA和电子行业的公司共同控制。 包括: ARM Ltd. Cadence Design Systems, Inc. CoWare Fujitsu Mentor Graphics Motorola NEC Synopsys System C的源码可以从
35
Continued CoCentric System C Compiler (Synopsys®) 可以使用System C源码来综合硬件
可以把用System C写的硬件描综合成门级网表以便IC实现或综合成一个Verilog或VHDL的RTL描述以便FPGA综合。
36
硬件描述能力 Processes Ports Signals Rich set of port and signal types
Modules Processes Ports Signals Rich set of port and signal types Rich set of data types Clocks Cycle-based simulation Multiple abstraction levels Communication Protocols Debugging Supports Waveform Tracing
37
SystemC是由一些C++的类库组成
38
Continued 用System C开发的硬件模型可以用标准的C++编译器来编译: Unix/Solaris: bcc,gcc
Windows: MSVC 经编译后形成一个可执行的应用程序,设计人员可以通过console来观察系统的行为,验证系统功能和结构.
39
System C的建模方法 System C #include “systemc.h” SC_MODULE(dff) {
sc_in<bool> din; sc_in<bool> clock; sc_out<bool> dout; void doit(); // Member function SC_CTOR(dff) { SC_METHOD(doit); // Process sensitive_pos << clock; // Sensitize to } }; void dff::doit() { // Member function as Process body dout = din; VHDL entity dff is port ( din, clock : in bit; dout : out bit ); end dff; architecture dff of dff is begin doit : process(clock) – Sensitivity List if (clock’event and clock=‘1’) then dout <= din; end if; end process;
40
SystemC的建模实例
41
2. CADENCE VIRTUAL COMPONENT CO-DESIGN (VCC)
Cadence® Virtual Component Co-design (VCC) 是第一个为IP复用所设计的工业系统级 HW/SW co-design开发平台环境。 Cadence VCC使设计师在早期设计第一代产品和相关产品时,就可以确认 HW/SW划分的临界体系结构。 Cadence VCC 为 system houses and SOC providers,通过the electronic supply chain进行交流和交换设计信息,提供必要的框架。
42
Thanks The end!
Similar presentations