现代电子技术综合实验教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 现代数字系统设计

早期的数字系统设计过程主要针对中小规模集成电路。随着电子计算机技术、电子设计自动化(Electronic Design Automation,EDA)技术、MCU技术和深亚微米(Deep Sub Micron,DSM)技术的迅猛发展,电子系统的整个设计或大部分设计过程均可由计算机来完成,以此为基础的设计方法成为现代电子系统的设计方法,也成为数字系统设计的主流方向。其主要表现是采用可编程逻辑器件(Programmable Logic Device,PLD)或微控制器来实现数字系统。其具体系统设计过程有较大不同。

1.2.1 基于PLD的EDA设计

1.什么是基于PLD的设计

基于PLD的设计是将硬件描述语言作为主要的设计输入手段,利用EDA开发软件和编程工具对可编程逻辑器件进行开发的过程。如图1-2所示。

图1-2 基于EDA和PLD的设计流程

PLD是可以通过编程来对其硬件的结构和工作方式进行重构的数字逻辑器件。随着深亚微米技术的发展,PLD的规模、功能和速度有了长足的进步。当前占主导地位的器件有两类,一类是偏于逻辑资源的 CPLD(Complex Programmable Logic Device),另一类是偏于寄存器资源的 FPGA(Field Programmable Gate Array)。它们的广泛应用为数字系统的设计带来了极大的灵活性。

硬件描述语言作为一种程序语言接口(Programming Language Interface),提供了一个非常方便的设计入口(Design Entry),是电路设计者与各种计算机辅助设计工具之间沟通的桥梁。不过,若缺少了EDA工具,硬件描述语言就只不过是一种系统规划工具或技术文件格式而已。

2.设计特点

基于 EDA 技术的设计方法是由上而下的设计方式。它首先从系统设计入手,在顶层进行功能划分和结构设计,并在系统级采用仿真手段验证设计的正确性,然后再逐级设计低层的结构,实现设计、仿真和测试的一体化。

EDA 软件平台的另一特点是其强大的仿真(Simulate)和测试(Test)技术。所谓仿真,就是设计的输入、输出(或中间变量)之间的信号关系,由计算机根据设计者提供的设计方案,从各种不同层次的系统性能特点,完成一系列准确逻辑和时序验证。所谓测试,就是在完成实际系统的安装后,只需通过计算机就能对系统上的目标器件进行边界扫描测试。EDA仿真和测试技术极大地提高了大规模系统的电子设计自动化程度。

3.设计输入和设计流程

目前的EDA软件平台集成了多种设计输入方式,如电路图、HDL、波形、状态机和IP核(Intellectual Property Core)等,而且还提供了不同设计平台之间的信息交流接口和一定数量的功能模块库,设计者可以根据功能模块具体情况灵活选用。

基于EDA和PLD的现代数字系统设计流程包括设计准备、设计输入、设计处理和编程下载4个步骤,以及相应的功能仿真、时序仿真和硬件调试3个设计验证过程。

1.2.2 基于MCU的设计

1.什么是MCU

MCU是Micro Controller Unit(微控制器件)的简称,它的另一个名字是单片机。单片机是将中央处理器(Central Processing Unit,CPU)、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、定时器/计数器以及I/O(Input/Output)接口等部件集成在一起的微芯片。从产生至今,单片机从4位单片机发展到8位、16位乃至32位单片机,其性能越来越强,价格越来越低。目前,在市场上的各类产品中均能看到单片机的身影,小到报警器、玩具和智能充电器,大到冰箱、电视、空调以及数据采集系统和控制终端等。单片机有多种,表现为结构、功能、性能和价格的不同。当前,应用最为广泛的是Intel 51系列的单片机。

2.MCU的设计流程

单片机应用系统的设计主要包括外部电路设计和单片机控制程序设计,其中以单片机控制程序设计为核心。一般来说,一个完整的单片机应用系统设计过程如图1-3所示,包括系统分析、单片机选型、单片机程序设计、仿真测试和程序下载。

图1-3 单片机的设计流程

3.单片机的程序设计

在单片机程序设计中,一般可以选择单片机汇编语言和单片机C语言两种。

单片机汇编语言是采用助记符标识指令的程序设计语言。其中,助记符标识是二进制指令的形象标记。单片机汇编语言程序是单片机汇编指令的集合,其设计与汇编指令集和硬件结构等有密切关系。汇编语言以其简练的代码、快速的硬件操作能力而最先得到广泛使用。但是,汇编程序的可读性差,且对于不同类型的单片机,其汇编语言一般都有差异,不易移植。

单片机C语言是对标准C语言的扩展。C语言具有功能丰富的库函数,运算速度快,编译效率高,有良好的可移植性。C 语言程序本身结构清晰,不依赖于机器硬件系统,编程人员可以不要求了解单片机的指令系统。单片机C语言得到了越来越广泛的应用。

1.2.3 基于SOC和SOPC的设计

电子系统越来越复杂,一种新的设计趋势是软硬件协同设计,其典型代表是SOC和SOPC设计。SOPC技术以其灵活性为系统设计提供了一种更为方便有效的实现手段。

1.SOC和SOPC简介

20世纪90年代初,基于系统级的设计方法开始进入工程师的视野。随着半导体工艺技术的发展,特别是超深亚微米(Very Deep Sub Micron,VDSM,0.25μm)工艺技术的成熟,在一块硅芯片上集成不同功能模块(成为系统集成芯片)成为可能。这种将各功能模块集成于一块芯片上的完整系统,就是片上系统SOC。

SOC的设计不再使用通用集成电路进行印刷电路板级的设计和调试,而是转向以FPGA或专用集成电路(Application Specific Integrated Circuit,ASIC)为物理载体的系统级芯片设计。其中,在使用FPGA作为物理载体进行芯片设计时,因其具有重复可编程性,称为可编程片上系统技术,即SOPC。

SOC的开发是指从整个系统的功能和性能出发,利用IP核(Intellectual Property Core)复用和深亚微米技术,采用软件和硬件协同的设计和验证方法,综合考虑软硬件资源的使用成本,设计出满足性能要求的高效率、低成本的软硬件体系结构,从而在一个芯片上实现复杂的应用。使用SOC技术设计的芯片,一般包括一个或多个微处理器和多个功能模块。各功能模块在微处理器的协调下,共同完成芯片的系统功能,为高性能、低成本、短开发周期的嵌入式系统设计提供了广阔前景。

SOPC 技术是现代计算机辅助设计技术、电子设计自动化技术和大规模集成电路技术高度发展的产物。SOPC技术的目标是将尽可能大且完整的电子系统在一块FPGA中实现,使得所设计的电路在规模、可靠性、体积、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。SOPC 的设计以IP 为基础,以硬件描述语言为主要设计手段,借助以计算机为平台的 EDA工具,自动化、智能化地自顶向下进行。

目前,基于SOPC的软硬件协同设计主要涉及的内容如表1-3所示。

表1-3 软硬件协同设计

2.基于SOPC的软硬件协同设计的设计流程

基于SOPC的软硬件协同设计流程是从目标系统构思开始的。对一个给定的目标系统,经过构思,完成其系统整体描述,然后交给软硬件协同设计的开发集成环境,由计算机自动完成剩余的全部工作。一般而言,还要经过模块的行为描述、对模块的有效性检查、软硬件划分、硬件综合、软件编译、软硬件集成、软硬件协同仿真与验证等各个阶段。软硬件协同设计流程如图1-4所示,其中,软硬件划分后产生硬件部分、软件部分和软硬件接口界面3个部分。硬件部分遵循硬件描述、硬件综合与配置,生成硬件组建和配置模块;软件部分遵循软件描述、软件生成和参数化的步骤,生成软件模块。最后把生成的软硬件模块和软硬件界面集成,并进行软硬件协同仿真,以进行系统评估与设计验证。

图1-4 软硬件协同设计流程

3.基于SOPC的软硬件协同设计工具

(1)Cadence Virtual Component Co-design(VCC)

第一个为IP复用所设计的工业系统级软硬件Co-design开发平台环境。在早期设计时就可以确认软硬件划分的临界体系结构。它通过电子供给链进行交流和交换设计信息,为系统库和SOC提供了必要的框架。

(2)System C

一种通过类对象扩展的基于C/C++的建模平台,支持系统级软硬件协同设计仿真和验证,是建立在C++基础上的新型建模方法,方便了系统级设计和IP交换。用System C开发的硬件模型经编译后形成一个可执行的应用程序,设计人员可通过控制台界面来观察系统的行为,验证系统功能和结构。在System C语言描述中,最基本的构造块是进程。一个完整的系统描述包含几个并发进程,进程之间通过信号互相联系,且可以通过外在时钟确定事件的顺序和进程同步。System C源码可用于综合硬件,以便IC实现或FPGA实现。

(3)其他商用软件

当前,各FPGA厂商都在其FPGA开发平台中集成了支持软硬件协同设计的功能和工具。Altera公司的Quartus II软件平台集成了作为系统生成工具的SOPC Builder。通过SOPC Builder,FPGA设计人员可以构建其特有的Nios II处理器核,配合面向SOPC Builder的IP核,如PCI接口和DDR/DDR2外部存储器等,设计人员可迅速生成SOPC系统,相应的设计工具可提高设计集成度和可重用性。

Xilinx公司的XPS(Xilinx Platform Studio)工具包用于开发基于该公司的FPGA嵌入式系统。该工具支持一般硬件逻辑和嵌入式软件的系统设计流程。其特点是 XPS 支持硬核 PowerPC 和软核Microblaze等多种处理器,并将设计的导入、创建和IP核定制进行了流水化的处理。XPS知道FPGA平台的属性和选项,能自动为其外设生成软件驱动、测试代码以及创建板级支持包BSP(Board Support Package)。此外,XPS 集成了软件和硬件调试工具,使它们之间可以相互触发,这使得嵌入式系统内部变为“可见”的,使嵌入式设计者能很快地找到问题。

4.基于SOPC的软硬件协同设计的特点

SOPC 技术在电子设计上给出了一种以人的基本能力为依据的软硬件综合解决方案,它同时涉及了底层的硬件系统设计和软件设计,在系统化方面有了广大的自由度。开发者在软硬件系统的综合与构建方面可以充分发挥创造性和想象力,使得多角度、多因素和多结构层面的大幅度优化设计成为可能。使用其可编程特性并与IP核相结合,可以快速、低廉地开发出不同的协处理器,从而真正实现硬件编程、升级和重构。随着FPGA制造工业的发展,这种优势将会更加明显。

软硬件协同设计作为系统级设计的支持技术,理论和技术还在不断地发展和完善中。在不久的将来,随着软硬件协同设计技术研究的深入,支持FPGA设计实现的功能强大的软硬件协同设计平台将会出现,并加速推进SOPC的设计开发进程。