SOC的软硬件协同设计方法和技术
SOC设计领域的核心技术——软硬件协同设计

芯片的可重配置性与多应用性
设计约束
人力资源与时间资源time to market
面积
功耗
性能
图1 时间资源” 。设计成本增加了,还要冒产品投入市场时间推迟带来的商业影响。 B. 如果为了要突出产品的竞争优势而重点考虑“设计约束”各方面(面积、功耗、性 能)的全面优化,那么,不但要耗费更多的“人力资源与时间资源” ,而且“芯片 的可重配置性与多应用性”必然下降。
3
列。 如果要在实际设计中强调某一款专用芯片的可重配置性与多应用性,一个最有效的方 法,就是尽可能考虑到各个应用的大体功能需求,即每个单应用的单任务流图形式,然 后将各个单任务流图看作一个彼此互斥的多分支总系统任务流图来进行系统架构规划。 简单举例: TD-SCDMA、GSM、可视电话 3 模合一应用下(下行链路)的多分支系统 任务流图粗框架如图 2 所示: 多分支系统任务流图软/硬件划分原则如下: A. 首先采用算法将不同分支间功能相似的子任务节点尽可能进行一一自动对应。 B. 各个分支间,完全对应相同的子任务节点由硬件完成。 (比如,假设如果 3 个应用模 式下的语音解码协议完全相同,则完全可将语音解码部分做成纯硬件。 ) C. 各个分支间任务有差别的相对应节点由软件完成。 (如:3 种应用下彼此不同的协议 栈处理工作) D. 各个分支间任务不同, 但不适宜由软件完成的工作, 由不同硬件各自单独完成。 (比 如: 对于芯片的 3 模应用, 架构中一定要有 TD-RFIO、 GSM-RFIO、 可视电话 UART 3 个各自独立的对外接口模块,这里暂不讨论软件无线电的可实现性。 ) E. 软件载体(MCU、DSP)的最大处理能力应该由已被划分为软件任务的、各个分支 间任务相似的相对应节点对软件性能需求的最大值来决定。 (如图: 假设可视电话和 TD 的信源解码都要求有语音及图象解码能力,而 GSM 的信源解码只要求有语音解 码能力。则芯片中 DSP 的性能必须具备语音及图象解码能力。 ) 根据研究,对多分支系统任务流图,由于不同分支间的互斥性与分时性,可以将各个分 支进行基于对应节点功能相似度的图形合并,由此生成一张复合任务流图[3,4]。复合 任务流图中的每一个复合节点子任务,由生成该复合节点的原各个分支间相对应节点的 功能集之合集组成。 例如,上述 TD-SCDMA、GSM、可视电话 3 模式应用下的多分支系统任务流图的复合 任务流图粗框架形式如图 2 右所示。也就是说,对于多分支系统任务流图,我们可以通 过图论的方法将各个分支进行任务合并生成一张复合任务流图,当且仅当系统架构能够 胜任复合任务流图的功能及性能需求时,芯片设计能够满足所预定的可重配置性与多应 用性的需要。 (关于“基于节点任务相似度的多图自动化合并算法”可参考[3,4]。 ) 六、并行系统任务流图的软/硬件协同设计方法: 多并行与多分支系统任务的最大区别是各单任务流图在时间上并行因此不能进行合并。 比如对于手机基带芯片的应用而言,通话过程的上行与下行任务之间就可视为并行任 务。而对于手机大多数的其它功能需求,如:发短信、记事本、打游戏、上网、MP3, 等等,它们通常不可能与通话过程同时进行,并且它们彼此之间并行的可能性也不高。 我们可将其相互之间视为多分支系统任务[1]。各个分支任务的多样性适宜由软件来完 成,而软件载体(MCU、DSP)的最大处理能力则由各个分支间相对应各节点对软件性 能需求的最大值来决定。
华为芯片的软硬件协同设计提升系统性能

华为芯片的软硬件协同设计提升系统性能随着信息技术的快速发展,芯片作为计算机硬件中的核心组件,对于计算机系统的性能提升起着至关重要的作用。
为了满足现代计算需求的不断增加,华为公司在自主研发的芯片中,采用了软硬件协同设计的策略,通过软件和硬件的紧密结合,提升了芯片的系统性能。
软硬件协同设计是指将软件和硬件开发过程紧密结合起来,相互配合,以实现更高效、更优质的系统性能。
在芯片设计中,软硬件协同设计有以下几个方面的应用。
首先,华为芯片通过软硬件协同设计,实现了高度集成的硬件设计。
华为芯片大量采用了定制化的硬件设计,通过与软件的协同配合,充分发挥了硬件的性能优势。
同时,华为芯片中的硬件设计也能够根据软件的需求进行灵活调整,使得芯片能够更好地满足用户的应用需求。
其次,华为芯片在软硬件协同设计中,重点优化了软件编译器的设计。
编译器是将高级语言代码翻译成机器语言的关键工具,对于芯片的性能有着至关重要的影响。
华为芯片通过优化编译器的设计,使得软件代码能够更加高效地在芯片上运行,提升了芯片的性能表现。
此外,华为芯片还通过软硬件协同设计,实现了更高效的算法处理。
在芯片设计过程中,算法的设计和优化是至关重要的一环。
华为芯片通过软硬件协同设计,将算法的实现与硬件结构的设计相结合,充分发挥了算法在芯片上的优势。
这不仅提升了芯片的计算能力,还降低了功耗和资源消耗,提高了芯片的综合性能。
最后,华为芯片还通过软硬件协同设计,实现了更好的系统优化。
系统优化是指通过硬件和软件的协同设计,对整个系统进行优化,使得系统能够在各个方面达到最佳状态。
华为芯片通过软硬件协同设计,充分考虑了硬件和软件的配合,使得整个系统能够更高效地运行,提升了系统性能。
总结起来,华为芯片的软硬件协同设计是一种有效的策略,通过软件和硬件的密切结合,提升了芯片的系统性能。
华为芯片在设计过程中,充分考虑了软硬件的配合,优化了硬件设计、编译器设计、算法处理和系统优化,使得芯片能够更好地满足用户的需求。
SOC的软硬件协同设计方法和技术

SOC的软硬件协同设计方法和技术摘要:随着嵌入式系统与微电子技术的飞速发展,硬件的集成度越来越高,这使得将CPU、存储器和I/O设备集成到一个硅片上成为可能,SOC应运而生,并以其集成度高、可靠性好、产品问世周期短等特点逐步成为当前嵌入式系统设计技术的主流。
传统的嵌入式系统设计开发方法无法满足Soc设计的特殊要求,这给系统设计人员带来了巨大的挑战和机遇,因此针对Soc的设计方法学己经成为当前研究的热点课题。
论文首先分析了嵌入式系统设计的发展趋势,论述了传统设计开发方法和工具的局限性,针对Soc设计技术的特点探究了Soc软硬件协同设计方法的流程,并讨论了目前软硬件协同设计的现状。
关键词: 软硬件协同设计,可重用设计,SOC背景:计算机从1946年诞生以来,经历了一个快速发展的过程,现在的计算机没有变成科幻片电影中那样贪婪、庞大的怪物,而是变得小巧玲珑、无处不在,它们藏身在任何地方,又消失在所有地方,功能强大,却又无影无踪,这就是嵌入式系统。
嵌入式系统是以应用为中心、计算机技术为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统是将先进的计算机技术、微电子技术和现代电子系统技术与各个行业的具体应用相结合的产物,这一点决定了它必然是一个技术密集、高度分散、不断创新的知识集成系统。
嵌入式系纫‘泛应用于国民经济和国防建设的各个领域,发展非常迅速,调查数据表明,嵌入式系统的增长为每年18%,大约是整个信息技术产业平均增长的两倍[1],目前世界上大约有2亿台通用计算机,而嵌入式处理器大约60亿个,嵌入式系统产业是二十一世纪信息产业的重要增长点。
随着集成电路制造工艺的飞速发展,嵌入式系统硬件的集成度越来越高,这使得将嵌入式微处理器、存储器、I/O设备等硬件组成部件集成到单个芯片上成为可能,片上系统SoC (System on Chip)应运而生[2]。
SOC极大地缩小了系统体积;减少了板级系统SoB(System on Board)中芯片与芯片之间的互连延迟,从而提高了系统的性能; 强调设计重用思想,提高了设计效率,缩短了设计周期,减少了产品的上市时间。
计算机技术的软硬件协同配合方法

计算机技术的软硬件协同配合方法随着科技的不断进步,计算机技术已经成为了现代社会不可或缺的一部分。
在计算机技术的发展过程中,软硬件的协同配合方法起到了重要的作用。
本文将探讨计算机技术的软硬件协同配合方法,并分析其在不同领域的应用。
一、软硬件协同配合的基本原理软硬件协同配合是指计算机系统中软件和硬件之间的相互配合和协作。
软件是通过编程语言编写的,可以控制硬件执行特定的任务。
而硬件则是计算机的物理组成部分,包括处理器、内存、硬盘等。
软硬件协同配合的基本原理是软件通过编写指令,控制硬件执行相应的操作。
软件可以利用硬件的计算能力和存储能力,实现各种功能。
例如,操作系统是一种软件,它可以管理计算机的资源,为用户提供友好的界面。
而硬件则提供了计算和存储的能力,使得操作系统能够顺利运行。
二、软硬件协同配合的应用领域软硬件协同配合方法在各个领域都有广泛的应用。
以下将分别介绍在科学研究、医疗保健和智能交通领域的应用。
1. 科学研究在科学研究领域,软硬件协同配合方法可以帮助科学家处理大量的数据和进行复杂的计算。
例如,在天文学领域,科学家使用计算机软件分析天体数据,通过对数据的处理和计算,可以得出有关宇宙演化和星系形成的结论。
而硬件则提供了足够的计算能力和存储能力,使得科学家能够高效地进行数据处理和计算。
2. 医疗保健在医疗保健领域,软硬件协同配合方法可以帮助医生进行诊断和治疗。
例如,计算机辅助诊断系统可以通过分析患者的医学影像数据,提供辅助诊断的结果。
软件可以根据医学知识和算法,对影像数据进行分析和处理,从而帮助医生判断病情。
而硬件则提供了高性能的计算和图像处理能力,使得系统能够快速地进行分析和处理。
3. 智能交通在智能交通领域,软硬件协同配合方法可以帮助交通管理部门提高交通效率和安全性。
例如,交通信号灯控制系统可以根据交通流量和道路状况,智能地控制信号灯的时间和顺序。
软件可以根据实时的交通数据和算法,计算最优的信号灯控制策略。
软硬件协同设计平台构建与优化

软硬件协同设计平台构建与优化随着科技的快速发展和数字化信息技术的普及,软硬件协同设计逐渐成为一种趋势,成为提高企业产品设计效率和质量的重要手段。
软硬件协同设计平台作为软件和硬件设计协同工作的载体和工具,它的构建和优化可以直接影响其发挥的效能和价值。
本文将从软硬件协同设计的概念、平台构建和优化方面进行详细分析,以期为有需要的读者提供参考和启示。
一、软硬件协同设计的概念软硬件协同设计是指软件和硬件共同进行的产品设计,它不仅包括软件和硬件的集成设计,还包括软硬件交互的设计过程。
在软硬件协同设计中,软件和硬件应该具备强大的互操作性和交互性,以实现充分的协同。
软硬件协同设计的核心是数据共享与协同管理。
在软硬件协同设计中,软件、硬件和相关数据需要分别进行集成处理和管理,实现设计全流程的协同与管理,以提高产品的质量和效率。
二、软硬件协同设计平台构建软硬件协同设计平台是实现软硬件协同设计的重要基础,它贯穿全流程的设计与开发,包括设计协作、数据管理、可视化、仿真、测试、发布等环节,同时支持跨部门、跨地区、跨平台的协同设计和沟通。
平台构建包含以下关键要素:(一)软硬件协同设计工具选择和配置合适的软硬件协同设计工具是平台构建的首要任务。
选择的工具需要具备以下五个关键特性:一、具备全方位的软硬件协同设计功能;二、良好的易用性和可定制性;三、支持超大规模的数据协同和管理;四、具备高性能和可扩展性;五、具备完善的安全机制和保密措施,保障数据的安全性和私密性。
(二)协同设计流程管理平台需要定义和整理软硬件协同设计流程,并映射到相应的工具和功能上,使得设计人员能够清晰明确地掌握每一个设计环节的流程和工作要求,同时方便宏观管理和优化设计流程。
流程管理需要考虑到各种设计环节的依赖和交流,合理分配资源和任务,最大限度提高效率和效益。
(三)数据管理与可视化平台需要提供完整的数据管理体系和数据可视化支持,以实现全局协同、全程管理、全数据视角的管理与协同。
一种SOC软硬件协同验证方法的设计

作者简介: 吴君钦(9 6 )男, 16 一 , 副教授, 主要从事宽带通信 、 信号与信 息处理 、 嵌入式计算机系统设计及应用等方面的研究,— i uu qn o . n E ma' jn i@tmc r L w o
江 西理 工 大学学报
法完成 功能 部件 的测 试工 作 , 以必须 软硬件 协 同 所 工作才 能完 成 S C的设计 和测试 验证. O
系统 内部微处理 器运 行 , 检测调试 芯 片内部各 种 并
器V D H L代 码 在测 试 中可 以重复 使 用 。协 同测试
的关 键 是测试 命 令 硬件 译 码执 行器 及 与之 配 套 的 测试 软件 的设计 . 根据 待测 部件 的 I / 0特性 .按测 试 软 件流 程控 制 待测 部件 行 为 . 试 P 测 C可根 据需
Ab t a t s r c :Th ro ma c fv rf i g a e tn t o n SOC d sg fe t h f ce c n aiy o e pef r n e o e i n nd t sig meh d i y e in a fc s t e e in y a d qu lt f i d sg ie ty e in d r c l .On s mmi p t e t e oo ys u ng u h e hn lg ,me h dsa d s il fh r wa e a d s fwa e c - e i c t n t o n k lso a d r n ot r o v rf a i ,a i o meh d f a d r a d o t r C v rfc to b s d n l n ua e n u r s ra p r i p o o e t o o h r wa e n s fwa e O- e i ai n a e o C a g g a d a t e il o t s r p s d. i Ex e i n ss o t a h t o sa lta s r n , i l nd e fce t p rme t h w h tt e me h d i l r n pa e t smp e a f i n .Th e tn o e c n b e us d a d i e tsi g c d a e r - e n a p i d t a o sk nd o OC sg . p le o v r u i fS i de i n Ke wor :S y ds OC e in;h r wa e a d s fwa e c - e i c to d sg a d r n o t r o v rf a in;s ra o ; a g a e;VHDL i e lp r C l n u g i t
浅谈SoC设计中的软硬件协同设计技术

I(ner e i ut即集 成 电路 ) 司从 系统 公 司 中 C I ga Cr i t t d c , 公
分 离 出来 ; 在 8 而 0年 代 开始 的第 二 次 变 革 中诞 生 了 A I ( p l a o pc c It rt i u , 专 用 集 SC A pi t n S ei ne a Cr i 即 ci i f g e d ct 成 电路 ) 使 门 阵 列 和 标 准单 元 设 计 技 术 成 熟 , 而 , 从
软 件 。 本 文 介 绍 了 针 对 于 系 统 级 芯 片 设计 的 软 硬 件 协 同 设 计 技 术 (ods  ̄ 的 概 念 和 设 计 流 程 , 时 借 鉴 实 际 设 c-ei ) g 同 计 经 验 讨 论 了软 硬 件 协 同设 计 中 所 需 注 意 的 技 术 问 题 。 关 键 词 : 上 系 统 (o ) 软 硬 件 协 同设 计 (ods n ;I(neeta Poet 片 SC ; c-ei ) P Itl ul rpr ) g lc y 中 图 分 类 号 :N 0 T 42 文献 标 识 码 : A 文章 编 号 :05—99 (02 0 —0 8 —0 10 40 20 )2 13 4
维普资讯
第2 5卷 第 2期 20 0 2年 6月
电 子
器
件
Vo . 5, 1 2 No. 2
介绍软硬件的协同

介绍软硬件的协同
软硬件的协同是指软件和硬件之间相互配合,共同工作的过程。
这种协同可以在多个层面上实现,包括系统内部子系统之间的协作、跨平台的技术整合以及在设计阶段的统一规划等。
具体如下:
1. 子系统协作:在复杂的系统中,不同的硬件和软件子系统需要相互沟通和协作,以确保整个系统的高效运行。
这种协作可以是软件与软件之间、软件与硬件之间,或者硬件与硬件之间的。
2. 协同设计:软硬件协同设计是一种开发方法,它强调在设计过程中对软件和硬件部分使用统一的描述和工具进行集成开发。
这种方法可以完成全系统的设计验证,并跨越软硬件界面进行系统优化。
3. 系统优化:软硬件协同设计的本质在于将软件和硬件的设计及优化统一起来,以期在系统层面获得更高的性能收益。
这种优化通常涉及到算法到硬件架构的映射,以及如何在不同层面上实现最佳的性能平衡。
4. 技术整合:在实际应用中,软硬件协同还可能涉及到不同技术平台的整合,例如在云计算、人工智能等领域,软件算法需要与特定的硬件平台(如AI芯片)紧密结合,以发挥最大的效能。
总的来说,软硬件的协同是现代技术发展的一个关键趋势,它要求开发者在设计时考虑到软件和硬件的相互作用,以实现更高效、更强大的系统解决方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SOC的软硬件协同设计方法和技术摘要:随着嵌入式系统与微电子技术的飞速发展,硬件的集成度越来越高,这使得将CPU、存储器和I/O设备集成到一个硅片上成为可能,SOC应运而生,并以其集成度高、可靠性好、产品问世周期短等特点逐步成为当前嵌入式系统设计技术的主流。
传统的嵌入式系统设计开发方法无法满足Soc设计的特殊要求,这给系统设计人员带来了巨大的挑战和机遇,因此针对Soc的设计方法学己经成为当前研究的热点课题。
论文首先分析了嵌入式系统设计的发展趋势,论述了传统设计开发方法和工具的局限性,针对Soc设计技术的特点探究了Soc软硬件协同设计方法的流程,并讨论了目前软硬件协同设计的现状。
关键词: 软硬件协同设计,可重用设计,SOC背景:计算机从1946年诞生以来,经历了一个快速发展的过程,现在的计算机没有变成科幻片电影中那样贪婪、庞大的怪物,而是变得小巧玲珑、无处不在,它们藏身在任何地方,又消失在所有地方,功能强大,却又无影无踪,这就是嵌入式系统。
嵌入式系统是以应用为中心、计算机技术为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统是将先进的计算机技术、微电子技术和现代电子系统技术与各个行业的具体应用相结合的产物,这一点决定了它必然是一个技术密集、高度分散、不断创新的知识集成系统。
嵌入式系纫‘泛应用于国民经济和国防建设的各个领域,发展非常迅速,调查数据表明,嵌入式系统的增长为每年18%,大约是整个信息技术产业平均增长的两倍[1],目前世界上大约有2亿台通用计算机,而嵌入式处理器大约60亿个,嵌入式系统产业是二十一世纪信息产业的重要增长点。
随着集成电路制造工艺的飞速发展,嵌入式系统硬件的集成度越来越高,这使得将嵌入式微处理器、存储器、I/O设备等硬件组成部件集成到单个芯片上成为可能,片上系统SoC (System on Chip)应运而生[2]。
SOC极大地缩小了系统体积;减少了板级系统SoB(System on Board)中芯片与芯片之间的互连延迟,从而提高了系统的性能; 强调设计重用思想,提高了设计效率,缩短了设计周期,减少了产品的上市时间。
因此SOC以其集成度高、体积小、功耗少、可靠性好、产品问世周期短等优点得到了越来越广泛地应用,并且正在逐渐成为当前嵌入式系统设计的主流技术[3]。
但Soc设计不同于传统嵌入式系统的开发,如何快速、有效地开发和设计Soc产品是当前嵌入式设计开发方法学的一个十分重要的研究领域。
传统设计方法的局限性:图1-1 传统的嵌入式系统设计流程过去的嵌入式系统硬件部分设计相对于软件部分来说更容易,系统开发主要是在目标电路板上进行编程和交叉调试,所以那时的嵌入式系统开发很大精力都放在软件上,通常认为只要软件开发质量能够很好地保证,就可以很好地满足整个系统的功能和性能需求。
传统的嵌入式系统设计流程如图1-1所示。
系统软件和硬件划分完成以后,首先进行硬件子系统的设计与实现,再进行软件子系统的设计与实现,因此整个系统的设计与实现过程基本上是一个串行过程。
随着微电子技术的飞速发展,硬件的集成度越来越高,嵌入式产品大量采用soc 技术,使得传统的嵌入式系统开发方法逐渐暴露出很多不足之处:软件和硬件的开发过程割裂、缺乏沟通;设计自动化层次低;设计过程串行化增加了设计周期;缺乏设计重用支持。
图1-2 设计复杂度和设计生产率的增长趋势 系统需求描述 划分软件和硬件 硬件设计与实现 软件设计与实现 硬件设计错误 软件硬件划分错误图1-2显示了设计复杂性和设计生产率的增长趋势,由此可知目前设计生产率的提高速度赶不上设计复杂度增加的速度,设计方法和工具成为制约嵌入式系统发展的瓶颈,soc技术给嵌入式系统设计带来了巨大的挑战,嵌入式系统设计方法学期待革新。
软硬件协同设计技术:根据目前计算机和IC设计技术的发展来看,系统软件的研制要落后于硬件,如果在芯片设计过程中,没有相应的软件支持,那么对芯片的验证和模拟仿真都将遇到极大的障碍[4]。
针对嵌入式系统Soc设计面临的问题与挑战,研究者们开始探索新的设计方法学——软硬件协同设计(Hardware/Software Co-Design)方法学。
软硬件协同设计方法学的研究始于90年代初期,第一届International Workshop onHardware/Software Codesign会议于1993年召开[5],它标志着软硬件协同设计方法学的研究正式展开,软硬件协同设计领域正式确立。
软硬件协同设计不仅是一种设计技术,同时也是种新的设计方法学,其核心问题是协调软件子系统和硬件子系统。
与传统的嵌入式系统设计方法不同,软硬件协同设计强调软件和硬件设计开发的并行性和相互反馈,如图1-3所示,克服了传统方法中把软件和硬件分开设计所带来的种种弊端,协调软件和硬件之间的制约关系,达到系统高效工作的目的,软硬件协同设计提高了设计抽象的层次,拓展了设计覆盖的范围。
与此同时,软硬件协同设计强调利用现有资源(已经过验证的IP核和软件构件),缩短系统开发周期,降低系统成本,提高系统性能,保证系统开发质量,适应Soc设计。
Soc软硬件协同设计研究目前还处于发展阶段,许多技术仍未成熟和实用化,但是该技术将给嵌入式系统设计带来革命性的变化,能够极大地提高设计生产力,研究意义重大。
SOC软硬件协同设计流程:图1-3 软硬件协同设计流程传统芯片的设计都是专注于某个特定功能模块的设计,比如CPU、存储器、I/O接口等,即使是这样的一些芯片在以往的设计中己经是很复杂的问题了,需要很多高级设计人员花费大量的时间和精力,然而soc要完成的功能通常包括了多个传统芯片的功能,甚至还要复杂,因此设计片上系统soc是一个极为复杂的问题,一方面要满足复杂的功能和较高的性能,另一方面又要尽可能降低系统开发的成本,缩短产品问世周期,这给设计和开发soc带来了挑战。
对于如此复杂的soc,如果芯片的每个部分都重新设计,那么其工作量之巨大是可想而知的,因此片上系统soc一般采用基于核的设计,软件部分采用构件重用,硬件部分采用IP核重用[6],即将一个系统按功能划分成若干个模块,然后直接利用设计好的软件构件和IP核搭建一个具有特定功能的芯片。
soc的设计重用使系统设计者可以更多地考虑系统结构,而不必深陷于模块实现,从而达到降低系统设计复杂性的目的。
但是IP核和软件构件重用决不等同于集成电路设计中的单元库的使用,不是一些IP核和软件构件的简单堆砌,还包含着很多有待解决的问题,如软硬件划分、验证、测试等,这也给soc设计方法学带来了巨大的挑战。
软硬件协同设计的目的就是找到一种最优化的软硬件比例结构以实现系统规范,同时满足系统速度、面积、功耗、灵活性等要求。
软硬件协同设计是一种自顶向下、自底向上的设计方法。
具体流程如图1-4所示,在系统行为描述阶段,系统将被以最直接的方式描述出来。
此时不涉及任何有关系统如何实现的问题,指描述系统外在的行为表现,更不涉及哪些是硬件、哪些是软件。
在这个阶段,需要对整个系统的行为进行验证,以期在设计的开始阶段就发现系统行为要求中的错误。
之后,要对系统行为描述进行功能划分。
将系统划分为互连的模块,每个模块都执行功能相对独立的特定行为,并确定模块的互连关系和接口标准,完成系统的结构模型描述。
同样在完成系统的结构描述后,也需要进行验证,以确认结构描述与行为描述的一致。
软硬件划分在结构描述完成后进行,以确定各个部分由软件或硬件实现。
更重要的是,在进行完软硬件划分后,要对系统的性能、灵活性等参数进行预测,以评估软硬件划分,甚至功能划分的合理性。
如果划分不合理,就需要重新进行软硬件划分或功能划分,再进行评估。
如此反复,直至获得最优的解决方案。
在完成软硬件划分之后,就可以对各个模块进行细化、综合(Synthesis),直至虚拟器件原型(包括软件)。
在整个细化过程中,应多次进行软硬件的协同验证(∞—Verification)[7],以及时发现细化中的错误。
在到达器件原型级后,需要对各硬件原型进行映射(mapping),完成最终的实现。
对已经由厂商提供IP的器件,可直接进行例化;对自己设计的器件,还要进一步进行综合、布图等工作。
值得注意的是有些厂商提供较高层次的IP,这样,在较高的层次上就可以用IP替代原型。
在整个设计完毕之前还要对设计进行底层的软硬件协同验证和仿真。
最终确认设计是否满足功能要求和条件约束。
如果需要,还应对系统的性能、灵活性再次进行评估,以确定前面的先验估计是否准确。
如果后验评估与先验评估相差太大,可能还需要重新进行结构划分和软硬件划分。
图1-4 SOC 软硬件协同设计流程与传统方法不同,此Soc 软硬件协同设计流程具有以下特点:● 充分考虑到片上系统Soc 的可重用设计特点,建立了一个IP 核和软件构件库,将可重用设计思想融入Soc 的软硬件协同划分、物硬件协同验证、系统开发实现和测试阶段;● 允许系统在开发实现以前评价和验证设计结构的功能要求和各项性能指标,避免了因系 统设计不当而导致的错误,达到了尽早纠错、排错的目的; ● 充分体现了基于soc 技术开发的特点,明确了设计开发过程中各个阶段的任务和目的,有效地缩短了产品设计开发周期,增加了产品的市场竞争能力,适N N应当前嵌入式电子产品的要求,易于实现,对soc的设计实践有指导意义。
软硬件协同设计的复杂度是相当之高的。
因此,设计的重用(reuse)就显得尤为重要。
软硬件协同设计的模块化特性为重用的实现创造了良好的条件。
在任意一个层次上,目标模块都可以由一个已经实现的具有知识产权的模块(称为IP核)代替。
由于重用可以从任意一层开始,这对产品的升级和改型是极为有利的。
虚拟元件的制造商所提供的虚元件描述通常也是多层次的。
从行为描述,到结构描述,甚至到版图描述。
这为软硬件协同设计提供了很大的便利,同时它也是缩短面市周期的一个重要因素。
软硬件协同设计的现状:关于目前SOC软硬件协同设计的现状和研究热点主要有以下四个方面:(1)系统行为和结构的描述问题。
按照现有的软硬件协同设计方法,在确定系统结构并完成软硬件的划分之后,用行为模型和HDL语言描述和数据路径综合的方法来完成硬件设计,用汇编语言或者C语言和编译器来实现软件,系统参数的确定就通过对软硬件协同划分的模拟获得,因此系统结构的确定非常关键。
单纯的面向较低抽象层次的硬件描述语言已经不能适应SoC设计的要求,必须尽快提出具有很强系统设计能力的语言。
把现有的C或者C++语言进行扩展使之发展成为SoC包括嵌入式系统最主要的系统规范描述语言是一种思路,所以就出现了研制C到VHDL和Verilog语言转化的工具[8]。