账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
高度整合之进阶IC设计工具
系统层级设计环境介绍

【作者: 黃忻】2002年12月05日 星期四

浏览人次:【7201】

电子设计自动化(EDA)近来成为炙手可热的产业,每年皆有达两位数的成长。随着技术的发展,单一芯片精密度、处理器速度及软件复杂度随之提升,连带而来的是面临市场要求性能表现之同时,还必须降低成本之挑战,再加上愈来愈短的上市时程(time-to-market)带来之压力,使得传统上设计时间分离、在各种不同工具间转换且一再重新改写的设计流程已不再适用。负责系统组件(component)开发工作之设计人员或公司主管,必须思考可以改善或加速其设计流程之各种方法及策略。


传统的设计流程

整体IC设计之流程可以大致分成三个主要阶段,从算法的开发(Algorithm Development)、设计与仿真(Design & Simulation)到最后的原型化及实现阶段(Prototyping & Link to Implementation)。传统上在进行设计工作时,每个阶段的工作往往是由不同部门、缺乏共同沟通接口的团队负责,每个阶段使用的设计工具环境也完全不同:一个系统开发者在设计算法时使用的开发工具,与工程师进行软件或硬件实现时使用的工具不同,这样的流程使得在不同的设计时间,必须使用不同的工具,而造成一再重复相同的工作,例如重新撰写程序代码。不但工作过程繁琐,且可能因各阶段开发团队的沟通整合困难,造成直到在进行设计最后阶段之工作时,才发现错误百出,而需要不断重复之前流程,并一再延后上市时程的结果。


《图一 传统的设计流程》
《图一 传统的设计流程》

如(图一)所示,从设计概念的产生,一直到最后产品的推出,之间各阶段的工作都由不同团队、甚至不同公司负责,但因为缺乏共同的设计环境和沟通接口,往往必须将程序代码及设计规格用文件方式传递,造成沟通的不便及整合的困难,就如同要跨越一道道的墙,才能达到设计流程的下一阶段般。


在90年代初期,ASIC设计者由以往仰赖schematic capture的CAE设计工具转向使用HDL Code的EDA开发工具,制程技术之提升使得在芯片上作复杂系统之设计更具成本效益。Verilog或VHDL满足了组件设计者在实现其设计时之需求,成功扮演了仿真(Simulation)与合成(Synthesis)工作之间的桥梁。虽然这两种工具之出现,便利了将高阶设计概念实现在芯片上之过程,但在整体流程之另一面向上,却无法达成相同的效率及便利性。更精确地说,以HDL为基础之仿真环境输出的0和1等数字讯号,无法正确地支持系统层级模型的整合性开发。HDL基础的仿真环境由于缺乏验证系统层级表现所需的分析工具,因此大部分负责架构开发(architecture development)的系统工程师并不使用这些传统的EDA工具。这种系统工程师与设计工程师使用不同发展环境的情形,对整个产品开发流程带来相当程度的潜在风险。


当制程技术的进步再一次地迫使整体开发流程发生改变的同时,上述提及之风险便浮现出来。这次的改变并非发生在实体的设计流程,而是在系统设计之流程方面。为了满足设计资源的重复使用(design reuse)及开发整合核心程序等需求,一个更为复杂的模型化环境-一个将系统层级模型和实体及验证模型整合成一个完整的系统设计环境-应运而生,即本文中介绍的「系统层级设计环境」(System-Level Design Environment)。


系统层级设计环境

系统层级设计环境指的是一个高度整合的设计环境,使传统上分离的设计流程和难以沟通的开发团队得以在一个紧密链接的流程中,共同合作以完成开发工作。不论是负责数据分析及算法概念开发、系统及组件仿真、实时原型化或是硬件测试软件实现等不同工作的工程师,皆可在此环境中完成工作,加速整个开发流程,并使设计之验证及重复使用更为容易。


利用提供这种整合环境之开发工具,设计者可以大幅省下花在撰写程序以及寻找并修正设计问题的时间,而将时间与精力投注在设计概念的开发、全新科技的发展,以及实时地将一流的产品设计上市等工作方面,有效地降低整体设计工作可能面临的风险,并满足今日市场对于更好的性能表现、更低的成本及更快的上市时程等方面之要求。



《图二 完整的设计流程 》
《图二 完整的设计流程 》

系统层级设计环境之优点

一个理想的系统设计环境需要涵盖完整的设计流程,亦即从算法开发、设计与仿真到最后的原型化及实现皆可在单一设计平台环境中完成;如(图二)所示。为了实现这样的概念,这样的设计环境需要具备能够整合不同组件,包括:模拟/混和信号(analog/mixed signal)、DSP、数字通讯(digital communications)、及控制逻辑(control logic)等组件的能力。一但将系统模型化后,开发团队即可开始检视系统的表现是否能够达成规格之要求,测试并决定设计之取舍(trade-offs)安排及参数之调校等工作,以达成性能表现优化。


上述种种工作都能在一个阶层式的模块图表(hierarchical block diagram)中设计呈现并进行仿真,使得负责各个不同设计时间工作的工程师,能够对整个设计有明白一致的概念,并且提供一个清楚、可执行的规格以为各个软、硬件工程师设计系统组件时之依据。此设计平台可应用在DSP、数字通讯、模拟/混和信号以及控制逻辑组件之设计,可以用来仿真单一或多频道数据,以及线性和非线性组件。这种能够在单一平台上仿真整个系统及系统中细部组件之情形,使得开发者得以测试整个系统。


利用事先建立好的模块(block)及函式库(library),加上简单的拖放(drag-and-drop)动作,开发者便可轻易地开始设计仿真一个规模巨大且复杂的系统,并借着直觉式的模型图表呈现及交互式的仿真、可视化能力,让复杂的系统简单易懂,且可轻易地修改系统中的组件。而这些模块及函式库在日后设计其他系统时,可以再次运用,省去了重新编写的时间,充分达到设计资源重新利用之需求。(图三)为一ADSL系统模型,用以仿真利用现有的电话线,将数据由网络接线生端(ATU-C)以高速传输送到客户端(ATU-R)之过程情形。



《图三 阶层式模块图表建构之系统范例图》
《图三 阶层式模块图表建构之系统范例图》

在系统层级设计环境中,各阶段开发团队不需要在设计流程的三个阶段中转换时反复重新编写程序代码,以配合传统上各阶段不同的设计工具。过去在重复进行编写动作的同时,错误往往也不断产生。在改用系统层级设计环境之同时,利用高阶(high-level)的模块以设计算法,低阶(low-level)的组件以建立精准的模型,最后链接到目标硬件的DSP进行实时的测试及除错等工作,能够在设计流程之初便除去因反复撰写程序代码而可能产生的错误。


在快速原型化和程序代码产生阶段,可以直接在同一设计环境中,将上一阶段的系统模块图表自动转换成C code,不但省去人工编码可能花费的大量时间,并且方便开发者将系统下载到各种目标硬件如:DSP、FPGA等,有效率且可靠地在实际目标硬件上测试设计,以方便在实际进入生产阶段前作最后的修改。



《图四 系统层级设计环境示意图》
《图四 系统层级设计环境示意图》

系统层级设计环境之工具范例

The Math Works.的MATLAB & Simulink环境即为系统层级设计环境之一种,且涵盖之应用领域亦十分广泛,包括无线通(wireless)、宽带通讯(broadband)、多媒体(multi-media)或半导体(semiconductor)等设计领域。在MATLAB & Simulink的开放架构下,设计者可以将自己编写的C code或M code包装起来,以建立自己的模块或函式库,实现设计资源重复使用的理想。


如(图四)所示,从研究阶段到最后的原型化测试及实现部分,MATLAB & Simulink设计环境不但涵盖完整的设计流程,还可以直接透过Real-Time Workshop,将Simulink模型转成C程序代码,并与TI、Xilinx及Altera等厂商之硬件链接,以进行硬件测试与实现。


DSP及数字通讯系统设计

以MATLAB搭配Signal Processing Toolbox,可以提供开放的架构帮助用户进行模拟及数字信号处理之设计,内建许多讯号或系统分析方法,如:滤波器设计(filter design)、滤波器分析(filter analysis)、频率响应(frequency response)、频谱估计(spectral estimation)及统计讯号处理(statistical signal processing)等。Fiter Design Toolbox协助开发者进行数字滤波器的设计及分析等工作,藉由此工具,用户可以达到许多实体设计方面所要求的规格、功率及速度方面的需求。Wavelet Toolbox提供直接点选(point-and-click)的图形化工具及指令列功能,以便利设计者对讯号及影像作1D或2D的分析、合成(synthesis)、去除噪声(denoising)及压缩等工作,提供一个实用且完整的管道以运用小波分析理论工具。


对于从事DSP设计的工程师来说,Simulink及DSP Blockset提供所有标准的DSP组件。Simulink是一个功能强大的模块图表仿真环境,用户仅需利用拖放及链接等的简单动作,配合上预先内建的各种模块,便可建构复杂的系统模型,为整个MATLAB&Simulink系统层级设计环境之基础。DSP Blockset预建的模块库中包括可运用来作滤波、频谱估计、向量及矩阵数学及统计等模块。模块可以在多种速率(multiple rates)下执行,支持快速讯框基础(frame-based)仿真使得大量数据数据可在每段时间下处理,使得仿真可以更快速地进行,另外支持多频道内建矩阵基础仿真亦为其功能之一。Fixed-Point Blockset让用户能够有效率地设计定点的系统和数字滤波器,并且进行bit-true仿真以观察在有限的精准度下的仿真结果。


对于数字通讯系统的设计工作者来说,其工作往往牵涉到频道、调变、error-coding以及inter-leaving schemes的设计,并需管理不同采样率(sample rates)下的位、符号及讯框等。此外,系统的性能表现也要分析,通常是以bit error rate(BER)测试来进行检验。MATLAB的Communication Toolbox提供函式以建构ISO 物理层(physical layer)的组件模型,用来分析及开发如:手机、基地台、无线电话、DSL、缆线及拨接调制解调器、局域网络及卫星系统等,并且可用来作为通讯系统工程研究及教学方面的基础工具。Communication Blockset包括来源(source)及频道编码(channel coding)、误差编码(error coding)、频道模型化及调变等应用模块。另外,CDMA Reference Blocksets包含用来建立及仿真CDMA IS-95A无线通信标准的模块,开发者可以藉此建立一个完整、end-to-end的无线通信系统模型。


模拟/混合信号及控制逻辑系统设计

传统上利用电路仿真器(circuit simulators)设计的模拟/混合信号及控制逻辑系统组件,如:锁相循环(phase-locked loop)及模拟/数字转换器(A/D converters),现在可在Simulink单一平台上设计并仿真。过去使用的电路仿真器如:SPICE等工具,往往存在着仿真速度慢、仅提供针对模拟行为(analog behavior)的非连续时间近似(discrete-time approximation)。但由于在模拟及混合信号仿真方面,时间的正确性至关重要,因此传统的做法往往在正确性方面受到一定的限制。


利用Simulink的系统层级设计环境,开发者可以在单一仿真中同时建立模拟及数字组件之模型。真实世界中混合信号的组件,如:转换器,可以用Simulink中的混合信号模块来表示,并以高速在极短的时间间隔下进行仿真,以避免受制于一个过度取样(over-sampled)模拟信号有限的正确性。至于控制逻辑设计方面,如:初始化(initialization)、协议(protocols)以及用户接口(user interfaces)等,通常具有事件驱动(event-driven)或响应的特性,一般往往都以有限的状态机器(finite state machines)来建立这类的模型。Stateflow使开发者得以利用建构可视化的状态图表来设计这些事件驱动的控制逻辑,一个状态图表就如同Simulink模型中的一个模块一样,可以被Simulink的信号驱动,并且可以依据Simulink送的讯号决定要如何反应,呼叫MATLAB程序代码和C程序代码,并输出数据或事件,以控制整个模型的其他部分。这些事件状态的转换都可以用可视化的方式呈现,并可以清楚地检视这些状态与系统讯号间的关系。


原型化及实现

测试及验证阶段的工作过去可能占了整个设计流程三分之二以上的时间,而人工编码(hand-coding)时的繁琐工作及过程中产生的错误往往更延长了这些原本就花去许多时间的过程。Simulink利用实时快速原型化的工具、co-simulation的能力以及与不同厂商DSP、FPGA软件或硬件间的紧密链接,协助开发者减少错误、有效利用所有程序开发资源、节省项目开发之时间并降低设计成本。


藉由Simulink系统层级设计环境中的Real-Time Workshop-一个程序代码产生及快速原型化工具-可直接将Simulink模型转成有效率、可自由运用的程序代码。Real-Time Workshop可产生ANSI C程序代码,供开发者下载到DSP或嵌入式系统等芯片硬件。利用简单的点选动作,Real-Time Workshop可将编译(compiling)、链接(linking)及下载(downloading)等动作全部自动完成,藉此与目标硬件之间建立快速且简易的链接,在实时环境中提供一个有效率且可靠的方式来测试、评估及实现开发者之设计。开发者可以利用Real-Time Workshop中内建的Target Language Compiler来产生适用于不同平台的程序代码。此编译程序利用可供检视并修改的ASCII档案,以控制每个特定Simulink模块的程序代码产生方式。同时,利用Stateflow搭配Stateflow Coder,开发者也可以直接由Stateflow的状态图模型产生相对应的C程序代码,并可与Real Time Workshop产生的Simulink模型的C程序代码整合,产生代表整个模型的C程序代码,这使得Simulink和Stateflow环境成为发展汽车、航天及电信产业设计应用之嵌入式系统的理想平台。


最后,藉由硬件链接功能,开发者可轻易地将系统下载至目标硬件DSP,如:TI的C2000、C6000系列DSP、Motorola MPC555,或FPGA,如:Xilinx及Altera的FPGA等,便利开发者在硬件上进行测试及实现。下面便以一实例来说明整体系统层级设计环境。


实例说明

以往我们在设计一个系统模型时,前置作业都需经过繁琐的程序,包括研究阶段之复杂polynomials推导、设计时间的软、硬件结合/除错等,常常都消耗大量时间成本及研发时间,若能改以一系统层级设计环境,从头到尾的涵盖此研发到量产阶段之设计流程,可大大地降低研发时间及人力成本。下例我们以一FIR response在DSP/FPGA实现的模型来说明整个系统层级发展环境的开发流程。


1.算法开发

此例中开发团队希望建构一FIR滤波器,做一个改变音频分辨率(audio resolution)的处理器。首先,利用(图五)中蓝色部分的MATLAB&Simulink,可以顺利帮助开发者完成算法开发的过程。而建立好的Simulink模型,即成为各阶段开发团队间易于上手应用的规格模型。


《图五 算法开发的工作通常在MATLAB&Simulink环境下进行。》
《图五 算法开发的工作通常在MATLAB&Simulink环境下进行。》

2.测试与仿真

当算法开发完成后,整个系统模型便已经清楚地呈现,如(图六)所示。在此例中由于目标硬件是Xilinx的FPGA,因此在建构模型时,利用到Xilinx所提供的模块组。而图中在输入部份是以Simulink中内建的模块去产生一个音频,此例中我们以最简单的一个Sine波为讯号来源;在输出部分同样是以Simulink内建的模块Scope供开发团队在作测试时可以清楚地观察结果。模型的中央则是由加拿大的LSP公司提供,针对Xilinx FPGA作软件仿真的模块,而MCBSP Gateway in、out,是负责Simulink及Xilinx模块间的沟通媒介,正中央则为开发团队所建构的FIR核心设计部份。由于之前研发阶段已完成,接下来就进入了内部参数设定,即相当于软件、硬件团队在作链接及算法设计流程。而在软、硬件仿真部份,我们一样以此相同环境及模型以进行除错或修改等步骤。



《图六 在相同的环境下进行测试、仿真、除错及修改等步骤。》
《图六 在相同的环境下进行测试、仿真、除错及修改等步骤。》

3.原型化及实现

当在软件环境下之测试仿真都完成之后,我们接下来便要在实际的目标硬件上测试所设计的系统,即原型化测试。(图七)中央的SMC6XX MCBSP模块代表即将下载至目标硬件-此例中为Xilinx的FPGA-实现的系统模型,而输入、输出讯号已经改成实际日常应用的音效源(如:麦克风)及喇叭。在下载过程中,只要设计者想要改变内部参数去测试不同状况,便可在模块中实时去修改参数,而系统也会实时地去调整参数。在完成原型化测试,确定系统在硬件上面之运作无误后,便可直接进行产品量产阶段。



《图七 在同一环境下将相同模型下载到目标硬件上直接进行原型化测试》
《图七 在同一环境下将相同模型下载到目标硬件上直接进行原型化测试》

结语

系统层级设计之概念与环境已成为EDA产业不可避免的趋势,在产品上市时程不断提前之压力下,如何以最快速、最有效率的方法完成系统的观念产生、设计、测试、仿真到产品上市的一连串过程,成为电子产品研发成败的重要关键。因此一个涵盖整体设计流程、应用范围广泛,且能有效提高IP再使用率的开放性设计工具,实是抢占市场先机所不可或缺之因素。


(作者任职于钛思科技)


相关文章
聚焦数位x绿色双轴转型
资料导向永续经营的3大关键要素
人工智慧引动CNC数控技术新趋势
高频宽电源模组消除高压线路纹波抑制干扰
当磨床制造采用Flexium+CNC技术
comments powered by Disqus
相关讨论
  相关新闻
» 美光针对用户端和资料中心等市场 推出232层QLC NAND
» 摩尔斯微电子在台湾设立新办公室 为进军亚太写下新里程碑
» 爱德万测试与东丽签订Micro LED显示屏制造战略夥伴关系
» 格斯科技携手生态系夥伴产学合作 推出油电转纯电示范车
» Arm:因应AI永无止尽的能源需求 推动AI资料中心工作负载


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84SDWD35YSTACUKY
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw