首页资源分类FPGA/CPLD其他 > 8位MCU架构研究及基于FPGA的IP验证平台实现

8位MCU架构研究及基于FPGA的IP验证平台实现

已有 445148个资源

下载专区

文档信息举报收藏

标    签:8位MCU架构研究及基于FPGA的IP验证平台实现

分    享:

文档简介

本文首先介绍了主流8位MCU(微控制器)的通用架构,通过比较分析主流国际MCU半导体供应商的MCU产品,结合作者在德国英飞凌公司的项目实践,分析了英飞凌XC866系列8位MCU的架构特点和功能特性。在此基础上,介绍了该MCU芯片的系统集成方法,以及组成模块的架构和功能。 LlN协议是当前广泛应用的车载局部互连协议,作为英飞凌XC866MCU上很关键的一个外围IP,本论文在介绍了MCU架构基础上,设计实现了LlN控制器。LIN协议是UART在数据链路层上的扩展,其关键是LlN协议数据链路层的检测实现。本文给出了一种可靠,高效的协议检测机制,从而使软件和硬件更好配合工作完成协议检测。在完成LlN控制器设计后,本文结合了XC866ADC的架构,介绍了ADC模拟和系统的数字接口概念和实现要点,介绍了如何考虑分析选择合理的数字接口方案。论文最后以XC866的系统架构为基础,提出了一种高效的基于FPGA的IP原型验证平台方案,并以LlN控制器作为验证这一平台的IP,在FPGA上成功的实现了验证方案。论文同时介绍了从SOC设计向FPGA原型验证转换时的处理方法及工程经验,介绍了MCU及验证平台的测试平台思想,以及基于FPGA原型和逻辑分析仪实时测试的MCU固件代码覆盖率测试方法。 目前8位MCU在中低端的应用越来越广泛,特别是目前发展迅速的汽车电子和消费电子领域。因此对MCU架构的不断研究和提高,对更多面向应用领域的IP的研究和设计,以及如何更快速的实现芯片验证将极大的推动MCU在各个领域的应用和推广,将产生极大的经济和应用价值。

文档预览

西北工业大学 硕士学位论文 8位MCU架构研究及基于FPGA的IP验证平台实现 姓名:黄锐 申请学位级别:硕士 专业:软件工程 指导教师:樊晓桠 20070301 摘要 本文首先介绍了主流8位MCU(微控制器)的通用架构,通过比较分析主流国 际MCU半导体供应商的MCU产品,结合作者在德国英飞凌公司的项目实践, 分析了英飞凌XC866系列8位MCU的架构特点和功能特性。在此基础上,介绍 了该MCU芯片的系统集成方法,以及组成模块的架构和功能。 LIN协议是当前广泛应用的车载局部互连协议,作为英飞凌XC866MCU上 很关键的一个外围IP,本论文在介绍了MCU架构基础上,设计实现了LIN控制 器。LIN协议是UART在数掘链路层上的扩展,其关键是LIN协议数据链路层的 检测实现。本文给出了一种可靠,高效的协议检测机制,从而使软件和硬件更好 配合工作完成协议检测。在完成LIN控制器设计后,本文结合了XC866ADC的 架构,介绍了ADC模拟和系统的数字接口概念和实现要点,介绍了如何考虑分 析选择合理的数字接口方案。论文最后以XC866的系统架构为基础,提出了一 种高效的基于FPGA的IP原型验证平台方案,并以LIN控制器作为验证这一平 台的IP,在FPGA上成功的实现了验证方案。论文同时介绍了从SOC设计向 FPGA原型验证转换时的处理方法及工程经验,介绍了MCU及验证平台的测试 平台思想,以及基于FPGA原型和逻辑分析仪实时测试的MCU固件代码覆盖率 测试方法。 目前8位MCU在中低端的应用越来越广泛,特别是目前发展迅速的汽车电子 和消费电子领域。因此对MCU架构的不断研究和提高,对更多面向应用领域的 lP的研究和设计,以及如何更快速的实现芯片验证将极大的推动MCU在各个领 域的应用和推广,将产生极大的经济和应用价值。 关键词:微控制器,系统架构,LIN协议,原型验证,测试平台,覆盖率 ABSTRACT This thesis firstly introduce the common architecture of the classcal MCU, by analysising the chief semiconductor provider for MCU,and the design project in Infineon,the MCU architecture of Infineon is be analyzed in devil based on its characteristic architecture and function compared with its competitor.Based on this architecture,the thesis introduce the methodologies of the module integtation and the function of the composed modules. LIN protocol is widely used in automobile for local interconnect network application.As an important IP in XC866 MCU,the thesis introduced the design of LIN controller.LIN protocol is the extendtion of UAF玎protocol in datalink layer.The key point of implementing this protocol detection is to make the driver software and digital hardware work corporately.So the thesis presents an efficient and credible mechanism to,fu嘲I this feature.After completing the LIN controller design,the thesis introduced the concept design of ADC digital interface,based the XC866 architecture,how to selecting the reasonable interface for AD has been analyzed. At the end of the thesis,a high efficient IP verification platform is proposed based on FPGA and MCU architecture.By using the LIN controller as example, this platform successfully works and validates the LIN controller.At the same time,the thesis also introduced the associated engineenng experience when making transformation from the SOC to FPGA,and the concE}pt of testbench in MCU verification.At last,based on the FPGA venfication platform and the logical analyzer,an efficient method of covering rate calculation for firmware is proposed. At present,the 8 bit MCU is widely used in low end application,especially in automobile electricity and consumer electricity.With more and more research in MCU architecture and the verification methodologies,The 8 bit MCU will be used in more application fields,and will produce enormous economical values Keywords:Microcontroller,System Architecture,LIN protocol,Prototype Verification,Testbench,Code Coverage 1绪论 1.1课题背景和意义 单片机(SCM)的发展起源于微型计算机时代,由于各种应用领域的智能化 发展需要,单片机走上了一条与通用微处理器不同的通路。在此发展过程中, Intel公司做出了开创性的工作,它按照嵌入式应用要求,全新设计了微处理器的 体系结构,指令系统,总线协议,管理模式等,如:MCS一51就是这样的一款最 典型的单片微型计算机。随着嵌入式应用的发展和需求,更多的半导体厂商加入 到单片微型机的研究和推广的行列,各自推出了有代表性的单片微型机,继续扩 大和推动单片机的应用市场,如Philips,Motorola等公司。微控制器(MCU- Microcontmller)是在SCM的基础上,随着嵌入式应用需求不断的深化,以及应 用对象对于智能化控制能力越来越高的要求而出现的更高级的单片处理系统。它 的发展方向越来越紧密的与应用对象联系在一起,表现在不断以丰富的适合对象 的外围lP来满足特定应用领域的智能化要求。随着工艺技术,lC设计方法, EDA工具的发展,寻求应用系统在单芯片上的系统整体解决方案SOC(system on chip)已成为今后的发展目标。 目|j{『8位MCU仍占据主流中低端市场,从工业控制,汽车电子,通讯网络到 各种消费终端产品都适合8位MCU应用,相对于16位和32位的高端产品,随 着8位MCU性能的不断提高,更丰富的外围IP的出现,以及单片成本的降低, 8位MCU开始越来越多的挤占16位MCU的市场。未来的8位MCU将集成更 多的外围lP,以更低的成本,以及诸如性能,存储容量,功耗方面的优化来满足 各种领域的智能化要求。 英飞凌XC866系列是面向工业控制和汽车电子的新型高级8位MCU,采用 0.22¨rnCMOS工艺,具有高性能8051内核,强大的片上外围设备,24K片内 FLASH及各种静态存储器等资源;它有3.3V到5.0V的宽电压供电范围,片内 电压调节器(EVR)提供2.5V内核电压;此外片内还集成晶振和PLL供系统生 成时钟。该系列还有替代FLASH的ROM方案,提供了进一步节约成本的选择 性。XC866系列的主要外围特性包括LIN(本地互联网)和CAN总线控制器, 用于产生PWM的CCU单元以及带有配置扩展功能(例如,比较器模式)的新 型10位ADC。具备强大外围设备的XC866具有广阔的应用领域,某些型号已 经应用于许多著名的汽车制造商,如BMW,Volkswagen等汽车的电子系统中。 与XC866处于同一竞争位冒的MCU产品都是国际上知名的半导体供应商, 如飞思卡尔的8位系列产品,microchip公司的系列,NEC公司的系列等。从工 艺的角度来说NEC最新系列采用了90nm的先进工艺,microchip总的出货量最 高,位居市场第一的位置。对于在汽车电子领域的MCU来说,由于其恶劣的工 作环境,其可靠性要求更高,一般需要专门的生成线来生产,在这个领域目前飞 思卡尔排在第一,英飞凌位列第二。英飞凌的MCU其最大特点在于高可靠性以 及方便的调试手段。调试手段有以JTAG为基础的,也有以LIN为通讯手段的。 XC866另一个特点是芯片面积很小,非常有利于PCB布局。 本课题来源于在英飞凌科技公司的工程实践,具体项目来源是XC866系列中 的某款MCU芯片的研发,它涉及MCU架构及测试平台的研究,部分关键IP如 LIN,ADC数字接口的设计,各抽象层次的验证以及基于FPGA的原型验证和在 此基础之上基于FPGA的lP验证平台研究,这些工作将保证MCU从系统概念到 成功的原型芯片流片,缩短产品上市的周期。 当今的MCU以更低的功耗,更高的性价比,更多的外围IP,更快的上市时 间为特点,并逐渐向完整的系统解决方案即SOC转变,高集成度,高复杂度已 成为当今及以后MCU设计的主流形式。本文将探讨研究MCU的系统架构及其 集成方法,介绍构成MCU架构的主要模块。同时我们知道,这种MCU的发展 趋势也为设计和验证带来巨大的挑战,它将系统概念设计,系统建模与架构设 计,RTL设计,物理设计等诸多层次的问题集中在一起,所有环节都必须经过严 格缜密的仿真和验证。因此当今MCU设计的70%左右的工作量都在验证,MCU 验证要求验证过程完整和高效。完整一般通过严格的覆盖率测试来保证,而高效 则要求验证周期快速有效。因此,一个良好的SOC验证平台的建立将奠定整个 设计验证工作的基础,保证后续各阶段详细的验证计划的实施,它包括 Testbench的建立,部分特殊总线功能模块的实现,各种环境配置,系统初始化 脚本的编写。对于XC866这种面向汽车电子领域以及工控领域的8位微控制器 2 来说,由于其具有丰富的外设资源和内嵌的固件系统,能在单片上完成某些应用 系统的功能,因此在实际意义上也是SOC,对于这种MCU的验证,需要仔细研 究测试平台(testbench)实现,考虑软硬件协同验证的思想及实现方法。 LIN控制器是目前车载总线领域应用最为广泛的低端总线,其关键的地方不 是其协议实现上的难点,而是在于控制器与系统固件间的协同工作,论文介绍了 LIN控制器的这部分实现方法,介绍软硬件是如何协调工作的。ADC即数模转换 数字接口设计基于英飞凌特有的接口标准,论文将从应用角度来介绍ADC数字 接口的概念设计,其接口设计思想对于这类数模混合接口设计也具有普遍的意 义。 基于FPGA的lP验证平台的快速原型的建立,将极大提高验证的效率和质 量,同时还可以提供用户早期的软件开发平台,加速复杂设计对象的原型仿真。 FPGA的IP原型验证流程的思想是,快速地把待验证IP映射到实际的FPGA上 加以验证,提高IP验证的效率和可信度,使IP模块的开发可以领先于系统集 成,从而加速设计的周期。实现这一思想的关键是建立在二定范围内通用的 FPGA平台,使得验证人员不需要花费很大力气就可以将一个新的lP嵌入到这个 平台并进行系统级的软硬协同验证。这一平台的建立将完善公司在这一验证手段 的空白,对于以后相关IP的快速验证有极大意义。 。 1.2研究内容及思路 1.2-1 MCU系统架构分析及关键技术分析 分析8位微控制器XC866的系统架构,分析该微控制器的关键技术,技术竞 争点以及以后的发展方向。充分介绍了微控制器的设计思路,技术难点,以及 SOC设计的系统集成方法。 1.2.2 LIN控制器,ADC数字接口设计 遵照行业内对IP软核设计规范的要求,设计并提供满足LIN协议的软核。本 文介绍了LIN控制器架构设计,关键技术要点的实现以及它的综合,并在lP验证 平台上进行原型验证。 3 另一个关键技术模块是ADC模块的数字接13设计,根据英飞凌公司自定义的 标准设计ADC数字接口,本文将从概念设计角度介绍ADC数字接13的设计思 想,架构特点等。 1-2.3基于FPGA的IP验证平台构造及设计 基于FPGA的IP原型验证平台设计,包括平台的集成,验证环境的建立,IP 仿真模型的创建,平台的FPGA实现等,该平台必须具备验证用于大多数工业控 制,汽车电子领域的lP的能力,例如电机驱动,汽车总线等。 具体研究内容包括: ·剪裁并建立一个通用强壮的基本MCU系统,使它灵活地适合不同的IP验 证。基本的MCU系统往往包括下面的几个部分:CPU核(代表性的有 M8051,AVR,PIC等),SCU单元(系统外围控制单元),MCU(存 储器接口控制单元),OCDS(在系统调试支持)等,这些基本模块构成 了MCU验证平台。一般情况下,SOC的FPGA原型验证面对的是ASIC 设计风格的代码,大部分设计模型无法在FPGA中完全等效,例如 Analog,Memory,Pad等,需要在作FPGA原型验证流程时做适当的修 改。 ·开放IP验证的总线接口,IP接13首先必须满足8位片内总线的协议,其 次考虑各种特殊情况下接口的扩展能力和适应能力,使其能适应大多数lP 的集成需要。XC866系列的MCU,其片上总线采用同步,集中式仲裁方 式,所有同系列的型号在片上总线上是兼容的,除了16(or 20)位地址 线,8位数据线,以及一些常用控制线外,。还必须考虑提高总线可扩展 性,使它适合具有某些特殊控制接口的lP。例如,用于电机驱动的CCU 单元,CAN控制器等。 ·增加并配置待验证IP硬件资源,从而使该平台具备通用性和开放性。研 究如何使平台具备可扩展性和开放性,使平台尽可能适应各种各样的IP。 例如SCU单元管理所有外围IP事务,包括时钟控制,地址分配,中断控 4 制,复位控制等。对于待验证IP,SCU必须提供充足的中断资源和地址 空『日J及某些特殊的控制信号接口。 ·增量方法学应用于FPGA的lP验证平台研究。为了使这一平台在lP验证 中保持一定稳定性和继承性,将采用增量设计的方法学,利用综合工具和 实现工具提供的增量手段使平台成为一个可方便更新IP的高效的FPGA 原型验证平台。 ·编写集成IP的调试软件。XC866具有系统单芯片的特点,它有内嵌的固 件及大量外围lP,因此复杂度高,验证难度较大,需要相关的调试工具配 合。XC866系统具备在线调试功能,可以被通用的KEIL软件工具支持, 相关IP功能的测试主要通过编写汇编程序并下载到目标FPGA来验证。 ·系统固件的覆盖率测试。SOC原形验证不同于ASIC之处在于其具有内嵌 固件,需要软硬件协同验证,在以前对固件的测试中,由于固件的复杂 性,很难对测试的质量给出一个可量化的评估。因此,这里将给出一种结 合逻辑分析仪实时测量的行覆盖率的覆盖率测试方法。 1.2.4论文内容安排 第二章分析一般通用MCU的系统架构,对目前MCU领域的知名产品的架 构作一分析,并就MCU架构的一些共性特别是XC866的架构,介绍其关键的技 术及特性模块。 第三章结合英飞凌科技公司XC866芯片介绍MCU的关键IP。结合项目实 践,介绍LIN总线控制器设计以及ADC数字接13设计。 第四章介绍验证平台结构,TESTBENCH中关键部件的设计。提出了基于 FPGA的IP验证平台的系统架构,以及基于SOC的验证环境建立研究。研究从 SOC转换到基于FPGA的验证环境的方法。介绍验证平台的FPGA实现流程, 相关测试用例的开发调试及基于逻辑分析仪的固件程序覆盖率测试。 5 2 MCU系统架构 MCU在CPU核上根据不同厂家有所差异,一般分为兼容主流的8051核以及 非8051核。除此之外主流的MCU不外乎基于这样的架构:在8位片内总线上 挂载用于外围lP控制的系统控制单元(SCU),用于用户调试的在线调试支持 系统,用于存储器控制的控制单元以及各种外围应用功能IP等。本章将重点介绍 构成MCU系统架构的这些主要模块的功能及架构设计。 2.1常见MCU系统架构 MCU广泛应用于汽车电子,工业控制及消费电子等诸多领域,在汽车电子的 应用上,应用于诸如门窗控制,灯具控制,引擎管理,刹车控制、安全气囊,温 度控制等方面。同时MCU在一般的嵌入式设计中也有广泛的应用,如马达控 制,位置伺服等。随着MCU在低功耗及性能方面的进一步优化,在消费电子领 域也获得越来越多的应用。目Ij{『有很多的知名MCU半导体提供商提供MCU产 品,如Microchip,Freescale,Infineon,RENESAS.NEC等。尽管这些厂家提供 的MCU在内核,性能,应用领域各有不同和侧重,但它们的系统架构却大同小 异。MCU的CPU核一般根据每个公司有所不同,MICROCHIP 图2-1 常见Mcu系统架构图 6 公司MCU系列中的PIC系列MCU采用RISC架构,是目前最为畅销的一款 MCU。Freescale公司8位MCU采用自己的RS核,在汽车电子和一般嵌入式 应用领域有很大的市场,另外很多公司的8.位MCU保持与传统的MCS一51核兼 容,如Infineon公司的MCU。尽管这些MCU有内核上的差异,一般来说,他们 都具有如图2—1所示的典型系统架构。具有用于控制外设的系统控制单元 (SCU),实现诸如时钟管理,电源管理,复位控制,中断管理,地址译码等功 能;内建、PLL系统,提供系统时钟生成;片上调试单元(OCDS),提供用户在 线灵活调试的接口:片上外围模块总线(BRIDGE),实现片上总线的管理和桥 接功能;模拟数字转换(ADC);存储系统,如FLASH,SRAM等;以及用于 DFT的内建辅助测试模块,这种模块用于模拟单元,存储器,以及某些特殊功能 模块的芯片测试。除了这些共同的不可或缺的系统模块外,外围功能模块根据每 个公司每款型号各有不同,关键看针对那些客户市场。如CCU针对马达控制; LIN,CAN等针对车载网络或工业网络的应用等;USB针对消费领域设计应用 等。以Infineon的MCU为例,CPU核采用的是8051E-wARP,自定义的PD8 片上总线,系统控制单元(SCU),在片调试系统(OCDS),以及存储器及其 接口MCU(Memory Control Unite);其外围IP根据其定位的客户市场,从复 杂度和数量上皆有所不同,如针对高端汽车网络应用的MUTICAN模块,针对低 端嵌入式应用而采取的小容量,低成本的EPROM存储方案等。总的来说,尽管 目前MCU市场竞争激烈,各个厂家不断推出功能强大,性能优良的产品,但在 很长一段时问内,8位MCU在系统架构上的共性将不会变化太大。 随着集成电路工艺的提升以及来自日益增长的各种应用市场的需求,MCU的 发展目标更多体现在以下方面:更低的功耗以及更高的频率,更高容量的灵活的 非易失性存储器,更丰富的面向应用领域的外围IP等。 2.2详细MCU架构分析 . 2.2.1系统控制单元(SCU)架构及功能分析 SCU单元支持所有外围模块的控制,辅助CPU实现对系统的整体管理,它 是整个MCU的控制核心。其主要的功能如下:同步复位生成,系统时钟生成, 7 功率管理,中断控制,外围模块地址译码等。参考图2-1,CPU通过总线桥与 SCU和各外围模块连接,并通过SCU生成相应的系统和外围控制信号,同时收 集外围反馈的各种信息,现对SCU中的某些关键技术加以分析。 ‘ 2.2.1.1系统复位处理 目Iji『的ASlC设计中,为了减小设计面积,部分设计采用了异步复位的办法, 异步复位的最大缺点是复位释放时无法预测时钟的状态,如果它刚好在时钟的边 沿处释放,就有引发触发器进入亚稳态的可能,这种情况下ASlC是不能工作 的。再有如果异步复位源被系统板级噪声干扰,就有可能在复位树上引发虚假复 位脉冲。但是异步复位的优点也很明显,除了能减小面积外,它还能使系统快速 回到确定的状态。另外,针对手动复位这种异步的复位形式,还需要同步电路进 行消抖和同步,图2—2是系统复位生成电路: 图2-2系统复位生成 复位时序关系到芯片能否正常工作,必须综合考虑各种因素,如系统电源的 建立情况,锁相环PLL的时钟是否建立,CHIP在那种低功耗模式等。复位的时 候必须能区分当前CHIP处于那种状态,从而采取正确的复位策略。图2.3的状 态机显示了复位的转换过程。 8 复 图2-3 复位状态转换图 上电,手动复位或者看门狗复位请求信号都可以使芯片进入复位状态,在此 状态下,系统处于复位状态。在复位期间,如果检测到PLL锁定,或者相应的设 置是进入测试模式方式2,系统将进入释放读控制状态,释放FLASH的复位信 号。此后进入激活读控制状态,系统固件将根据相关外围管脚设置,跳转进入相 应的工作模式,系统进入正常的无复位状态。从复位状态转换图可以看到,从复 位到无复位之间还有另外一种测试模式下3的途径,在测试模式3下,系统将激 活测试模式下的读控制并同样进入无复位模式。 在无复位模式下,有两种方式进入复位状态,一种是看门狗的请求复位,在 系统或者用户软件没有刷新看门狗定时器的情况下,看门狗定时器将生成复位请 求信号,使系统进入复位状态。另一种情况是在低功耗模式请求下,系统进入低 功耗模式,等待被唤醒,在这种状态下,通过手动复位可以唤醒系统重新回到正 常状态,反之也能进入复位状态。 9 由于不同模式下的复位撤除顺序是不同的,这罩以上电和硬件复位为例,复 位撤除时序如图2_4所示。低电平是复位有效。 EVR_RESEL SCU N_I PLL—LOCK O FX rst n o FpdWn state i Fread_ctrl_o Fread stat Gen——rst—n..o Cpu_rst d 图2-4 系统复位时序图 EVR模块是片内电源管理单元,复位信号的产生必须在系统的工作电压已经 正常之后,EVR—reset—scu-nj是该模块的输出,表明CHIP的工作电压达到工 作的要求,开始正常的系统复位。Fx—rst—n—o是对FLASH的复位,用于复位 FLASH的状态机进入掉电状态,该信号撤消后,SCU将监控FLASH的状态以 决定何时撤消CPU核复位信号,从而使CPU可以控制FLASH。 2.2.1.2系统时钟处理 系统时钟规划是整个SOC设计的核心,MCU系统由于有丰富的外部IP,所 以对时钟的要求就比较复杂,如图2—5是XC866时钟系统方案,CPU核, SCU,OCDS,以及外围(如图所式Peripherals)IP模块如CCU,SSC等使用 降速的三分频时钟,存储系统如FLASH等模块使用多时钟。系统都采用时钟边 沿触发,系统时钟产生使用普通计数器分频。 10 图2-5 系统时钟分配图 在低功耗因素己成为VLSI设计必须考虑的今天,各种各样的降低功耗的技术 在工程实践中大量应用,门控时钟技术就是其中一项重要而且得到普遍应用的方 法,而门控时钟技术的实施又需要工程师特别谨慎,往往要采用全定制的办法才 能达到要求。值得关注的是门控时钟的生成,其技术难点在于怎样样避免时钟产 生毛刺。从原理上说,必须保证生成的时钟使能信号跨越在时钟低电平上,而这 一般是与电路工艺相关的,门控时钟的使能信号,需要专门精心设计。如图2·6 所示为门控时钟生成的原理及如何消除门控的毛刺。 cLOCK 乱懈厂]厂]厂]厂] c黑]厂]厂]厂]厂 2.2.1.3功耗管理 圈2"6 门控时钟原理及毛刺处理 车载电子设备或者便携式的娱乐产品对功耗比较敏感,特别要求电子设备具 备低功耗管理能力以节约电能,延长待机时间。 功耗管理系统允许通过软件来配置相应的控制寄存器从而自动实现最小的功 耗开销。如图2—7所示为典型的功耗管理迁移的状态图。总共有四种功耗模式: 激活模式,降速模式,空闲模式,和掉电模式,这些模式的转换在SCU中用状 态机自动实现。 空闲模式:内核时钟被关闭,watch-dog定时器关闭,外围模块仍然工作。 软件请求将触发进入该模式,当唤醒中断信号被检测到,开启内核时钟,返回激 活模式或者根据设置进入降速模式。 12 降速模式:该模式下,CPU和外围时钟以较低的频率运行,从而降低功耗。 通过设置寄存器控制位来进入该模式,或进一步进入别的模式,通过清除相应控 制位返回激活模式。 掉电模式:关闭PLL,关闭电压调节器(保留低功耗电压调节器为部分存储 器供电),除了外部唤醒检测电路外(纯组合逻辑),所有微控制器功能全部停 止。通过设置控制位进入该模式,通过复位或外部唤醒信号返回激活模式。 激活模式:系统正常运行,没有采取降低功耗的管理模式。 图2-7 低功耗模式转换 2.2.2总线桥(Bridge)架构与功能分析 总线桥连接CPU核,系统管理单元SCU及各种外围lP模块,支持数据,地 址及各种控制信号的中转,传输。由于8位MCU内核及应用模块对于总线带宽 没有做过高要求,因此总线桥与很多真正意义上的片上总线,如ARM的AMBA 不一样,它不用支持复杂的传输模式以及仲裁处理,不支持多主控制,总线也没 13 有延时等待功能。总的说其主要功能可描述为数掘地址分离,数掘双向分离,控 制独立的总线。 2.2.3存储管理单元(MCU)架构与功能分析 存储管理单元是CPU和存储器之间的接口单元,主要完成三大功能,一是负 责BOOT ROM地址空间在地址映射0和地址映射1之『丑J的激活切换。二是它还 提供一种机制使得既可以访问XRAM中的程序又可以同时访问数据。三是它的存 储器保护功能。根据CPU对存储器的访问时序要求(两个系统时钟周期构成一 个机器周期),在机器周期的某个阶段,CPU会从存储器中取出下一个数据或指 令,就有可能对上一阶段取出的需要处理的数据造成覆盖,因此在存储器MCU 功能单元中需要设詈保护机制来缓冲这种覆盖。一般可以采用增加缓冲寄存器来 解决,同时增加相应的判断逻辑。 2.2.4在线调试支持(OCDS)架构与功能分析 当前很多半导体公司的8位MCU都支持片上调试功能,这样可以极大的方便 用户的应用程序调试,加速嵌入式设计的开发进程。以XC866的在片调试系统 OCDS为例,它利用CPU内核提供的调试接口,在外围提供硬件支持模块,提 供软件开发者在线调试的手段。构造OCDS的主要原理如下: 使用CPU核内建的调试功能。 ·在硬件上支持断点,单步,支持对固件firmware的访问,软件上支持软件断 点。 ·有监控程序支持的调试命令,方便用户在命令行下直接对硬件进行访问。 ·使用标准串行接口或JTAG与PC主机通讯 如图2-8所示是XC866的OCDS的原理架构图: 14 丰调 试接 口 图2-8XC8660CDS架构图 0 C D S最核心的单元是监控模式控制模块(MMC),MMC通过调试接 口与XC866核进行通讯,并且接受复位和时钟信号。MM C支持的调试接口主要 有两种,J TAG和uART。调试系统的所有操作都是通过O C D S硬件系统 和专门的监控程序来实现。首先0 C D S必须能识别调试事件,这些调试事件有 下面的来源:来自硬件断点,这些断点由设置在用户程序中的断点产生;来自软 件断点,C P U核支持专门的调试指令T R A P,当代码中出现该指令,C P U 将进入调试模式;外部事件,如特定端口电平,J T A G命令等都可以使C P U ’ 进入调试模式。 在进入监控模式时,0 C D S将进行一些特殊的设置,如保存当前指令指针, C P U状态,以便退出监控模式后可以正确执行正常模式的程序。 一旦监控程序运行后,它可以读,写访问系统任何资源并与调试接口进行通 讯。把读写结果反馈回调试的主机,在用户主机调试软件的控制下,系统还可以 接受用户的程序直接运行。 15 当需要退出OCDS模式并返回用户程序时,监控程序设置核心寄存器,包括保 存的指令指针,并跳转到指令指针所指示的位置,以便CPU核执行正常状态下 的用户程序。 2.2.5固件(Firmware)系统架构分析与设计 Fdmwam是由芯片提供商在芯片出厂时就固化或配置在芯片中的程序,这些 程序完成最基本,最底层的任务,一般来说用户只能调用不能更改这些程序。以 XC866为例,它的Firmware固化在BootRom中,根据型号有从8K字节到 24K字节不等的容量,它包括系统启动程序,引导程序,在片调试支持的监控程 序以及为工厂测试所用的芯片测试程序等。 启动程序是FIRMWARE的主要控制程序,在复位后自动执行,它初始化芯 片并检测所有的配置可能性,并管理引导程序。这些初始化包括对BootROM映 射地址的切换,嵌入式电压调节器的标度,在片振荡器配置,Flash保护模式0/1 以及根据外部输入脚的状态切换到不同的模式等。以如图2.9 Firmware架构所 示,有5种可能的操作模式进入:用户模式,引导装载的BSL模式,OCDS模 式,测试模式,以及LIN模式。对于用户模式,Firmware将只执行启动程序并跳 转到地址0000H处执行FLASH的程序。BSL引导装载模式支持通过UART从 PC装载代码和数据到XRAM或FLASH。LIN模式主要用于多芯片模式(同一封 装多个核)的引导装载。OCDS模式支持Firmware中的监控程序与外部调试器 交互。测试模式下的程序用于支持在测试模式下的芯片测试。 在上电后系统将捕获特定的管脚状态并把这些状态值保存到TSCON寄存器 中的相应位,FIRMWARE在执行启动程序时根掘这些特定的值决定进入何种模 式,如果TSCON.MBC=0而且TSCON.TMS=I则进入OCDS模式。如果 TSCON.MBC=I而且TSCON.TMS=0则进入BSL模式。如果TSCON.MBC=I 而且MCM=1,则进入 16 图2-9 FIRMWARE架构 用户模式,相反MCM=0则进入LIN模式。如果TSCON.TMS=I并且P0.0 =1,在加上如图所示的条件,则芯片将进入测试模式。 2.3小结 本章首先介绍了最常见的MCU的架构,接着结合作者参与XC866微控制器 研发的工作,介绍了这一典型MCU架构的关键模块,如系统控制单元SCU,存 储器接口控制单元MCU,桥Bridge连接部件,在线调试支持单元OCDS等。由 于XC866在本质上也是一款SOC芯片,本章还介绍了系统固件firmware的软 件架构。尽管MCU的品牌和型号各异,但其基本架构也不外乎由这些基本的模 块构成,因此对这一架构的介绍和分析将具有普遍的意义。 17 3 MCU关键外围I P分析和研究 本章结合XC866的项目实践,介绍作者参与设计的两个关键外围IP—LlN控 制器和ADCDIG,在现在汽车总线应用领域,LIN控制器作为一种控制灵活,成 本低廉的互连总线得到广泛应用。在这章里,介绍了LIN控制器的应用背景以及 协议,同时介绍了LIN控制器的架构,关键实现技术以及综合实现。ADCDIG是 ADC的数字接口,结合XC866芯片上ADC的接口特点,从概念设计角度介绍了 ADCDIG的架构和设计思想。 3.1 LIN总线控制器设计 总线技术已经普遍应用于当前的汽车网络领域,在汽车动力总成,车身控 制,舒适调节等方面广泛应用。随着车载网络上控制节点的增加,汽车电子对控 制的复杂性和控制的灵活性要求越来越高,另外还有来自成本的考虑,因此迫切 要求一种分层的汽车网络解决方案,可以既解决控制的复杂性又可以降低成本。 目前应用最为广泛的CAN是一种高速但比较复杂的总线技术,LIN的出现恰好弥 WT CAN的缺点,如图3-1所示的网络方案融合了这两种总线优点,且前各大 汽车厂商普遍采用这种分层的网络解决方案。 LIN协议即局部互连网络协议是单个主节点多个从节点的网络,其物理层单线 传输(包括电源和地,其实际是UART的扩展),它可以连接独立的控制对象如 传感器,驱动器等并可以与更高级的CAN网络互连。 · CAN嘲络 图3-1 LIN网络拓扑图 18 凸』E l些厶堂亟±堂笪途塞 筮§重丛昼型苤毽处囝!巳坌蚯塑!婴基 3.1.1 LIN总线协议介绍 LIN总线协议m1包括物理层和数据链路层的定义,物理层和部分数据链路层 协议与UART协议十分接近,这罩将重点介绍其与UART在链路层的差异部分。 如图3-2所示为LIN的协议帧。 帧头包括连续13个低电平的Break域和55H的Synch域,随后是保护标识 符域。保护标识符域包括5位的标识符和2位奇偶校验位。 数据部分从一个字节到8个字节不等。每个字节串行发送,按照little—endian 原则,有起始位,有停止位。 校验和部分支持经典的校验和(校验和计算只针对数据部分)和增强校验和 (校验和计算包括数据部分和标识部分)。 帧时隙(SLOTS)必须足够长以便在最坏的情况下也能在LIN总线上完成一 次帧传输。 帧类型包括无条件帧,事件触发帧,突发帧,诊断帧和用户自定义帧,总线 节点并不需要完全支持所有这些帧类型。 时间表是LIN协议的关键特性,它保证总线不会有冲突。它是由主节点来维 护的。 负沿设 定时器 定时器 捕获值(8位) 19 3.1.2节点行为描述 图3-2 LIN协议帧结构图 LIN网络是单主多从的网络,其主节点行为如图3.3所示,在发送条件满足的 情况下,发起一次传输过程,先与从节点同步,接着完成主从通讯任务,返回等 待下一次发送任务。 满 黎分甲\\.e分 蘑 图3-3 LIN主节点行为 从节点响应主节点的发送任务。其任务为断点和同步检测,帧处理,执行主 节点命令等,如图3-4所示为从节点行为流程。 图3-4 LIN从节点行为 3.1.3 LIN总线控制器总体结构 LIN控制器分为总线接口逻辑和核心逻辑,LIN帧检测模块。总线接口逻辑负 责地址的译码和总线接口。核心逻辑负责串行接收数据,发送数据,采样时钟生 成等。LIN帧检测模块用于检测LIN帧的报文头,从而重新确定波特率,这个功 能的实现还需要具备捕获功能的定时器配合。 21 韭些!些厶望:亟!:鲎位迨塞 蓥当童凹鱼坐苤毽盐囤!£盐蚯垂!盟宣 围3-5 I.IN控制器总体结构图 如图3-5所示为LIN控制器总体结构图,UART BPI是LIN控制器的接口部 分,该部分是与MCU系统的集成接13,对于PD8总线接口标准,LIN控制器通 过UART_BPI悬挂在该总线上,另外还有来自系统控制单元SCU的控制信号, 如时钟信号,复位信号,门控时钟控制信号,外围IP片选信号,以及一些特殊的 握手信号等。LIN控制器作为外围lP,必然具有中断产生能力,因此与系统控制 单元SCU之间还有中断联络信号,如中断请求产生,中断释放等。值得关注的 是在XC866中,PD8总线的数据总线采用的是双向数据分离的方案,这减轻了 总线控制的复杂度。在UART—BPI这部分,还必须完成对内部寄存器的进一步译 码,以及对LIN控制器数据通道的控制等。协议检测部分LIN_detect主要负责 LIN的数掘链路部分的检测,实现波特率的自动检测和配置,关键部分是一个协 议检测状态机,。以及相关辅助检测逻辑等。LIN核心单元UART—kernel部分执行 串口通讯,负责数掘收发,转换,以及相应的波特率生成等任务。 3.1.4详细模快设计· 3.1.4.1 BPI接口设计 该模块负责LIN控制器与MCU的接口。有下面两个功能:地址译码;数据通 路控制。图3.6是LIN总线BPI模块接口示意图,它产生LIN控制器的每个寄存 器的读写地址,生成寄存器的输入输出数据通道。 per_rcsct_in_i Wlk_i pd_ai pd wr..i pd_cs._sfr i pd_cs—est'r——i N_acc_i bDi_data_i pd rd_i BPl Ixl_d_rd..o srr wr【15.O】 sfr rd【15:0】 bpi_dam_o f15.o】 图3-8 LIN总线外围接El单元 地址译码部分负责生成对LIN内每一个SFR的读写信号,片选信号等。数据 通道的作用就是把内部核心模块中SFR的值通过bpi data_i送到pd_d_rd_o端 El,再把从外部总线通过pd_d wr i送来的数据传到bpi_data_o,在这里有个最 关键的设计技巧是需要设置一个缓冲的数据寄存,专门针对8051核中的读一修改一 写指令,以及在这种情况下的写保护。数据缓冲寄存器保留读数据时的寄存值, 由于在该指令执行其间,外部的硬件有可能改写目标寄存器的值,为了保护这些 被硬件修改的值,该指令在写期间不能覆盖掉这些位,因此根据缓冲器保留的状 态,生成一个只对CPU修改的位进行覆盖的机制,即把原来的缓冲值和当前 cPu写回的值进行异或操作,生成新的值再被用于和目标寄存器进行或逻辑操 作。 3.1.4.2核心模块设计’ 该模块功能为:内部控制寄存器和内部状态寄存器生成和读写,波特率生成, 收发模式控制,接口逻辑等。LIN总线有三种收发模式,工作模式0下,串行端 CIT作为一个8位的串行移位寄存器,数掘从RXD端13输入,从RXDO输出, TXD被用于提供串行移位时钟。在模式1下,端口工作为UART方式,一位启动 位,8位数据位和一位停止位。发送数据通过TXD,接受数据通过RXD,波特率 可以通过设置来改变。模式2,3有一位启动位,8为数据位和一位可编程位,一 位停止位。模式2,3用于多机通讯,模式2和3区别是模式2的波特率是固定 的,模式3的波特率是可配置的。图3.7,图3.8是LIN总线的模式1发送和接 收时序,图3-9是模式2的发送时序。发送周期通过写发送缓冲寄存器触发。 模式1下发送 帅16_s砸匝匝断艘碰溉强吲硇匝匝艘域0回6涸明团匝哦田圃∈j嘲姗 帅—-r———————————————————————————————————————一 Pdkj JUUUU【『【|【『【|UUUUUl『【f哪舢哪nn『lf|nnnnnnnnnnnn『lfln『lnnn『}flnnnn『I『|nnnnnnnnn『IJlnnnnnn』lIl呷鲫nnnnnn…圳1『IJl『【『l『【『l『【『u叫狮 呶tx_Idk岫 _s,Lsn—八——————一L——————————————————————j1—————————————————!——!Jp竺…-n—!———————一 督回QD<二互二二><二二正二×3QD h-b唧n-s—_J———]—————————————————————————一 txdo————————]广————————————]…~厂———一 图3-7 LIN总线模式1发送时序图 模式1下接收 i—』—————————————————————————————————————————一 Pdk nn衄n『If|肌n呷nnnnnnnn衄“n『If|『【『|n『I『|『I『|n『【『|nnnnn呻『l『|衄nnn『Ifln『【『|H『111nn『I』I『【『|『【『|『lJln『l『|衄『}『|Ⅲ珊叽胂…·J【|l『【『【『|JI『I『u1『I几『【『1 Ibr tx_dⅣ16_s 吼I吣————————』L————————————_rL———————————jL…-.JL———一 署采的岛lt 哪哆(二匠二×二二j[二)x<二二二互二)伍● X三KD 。。。。。。——————‘。。。。——‘。。’。1’’。。。。。。—— s000‘ Ⅸbeg.s——J L—————————————————————————————————————————————————————————————————————————————————————一 f山]广—————!…一厂—一 图3-8 LIN总线模式1接收时序图 24 凸』E!些厶堂亟±翌位迨塞 蔓3童丛鱼世苤毽处虽!巳坌堑墨!婴嚣 模式2下发送 P∞舢姗m删哪岫栅眦咖删唧肌眦『l』I眦删uu删uuuuu删uuuuuuu删删删帅…删删删唧 tx_Swl6_s 州 4—曲咖 【-ns川L————m———————————』L—————————!—!—婴m…—叮L——一 缸-sll船a@X]匠)<二二j[二二><二二二玉二二二><三)<j[) 』108] h删脚s-—o—』——————]_————]—厂———————————————————————]—…—-·——厂—————一一 图3-9 LIN总线模式2发送时序图 ·SFR(特殊功能寄存器)的读写 对于SFR的读写,主要是通过软件访问和硬件访问等方式。如SCON的 BIT0一BIT3是硬件置位,软件访问清除,而BIT4~引T7则是软件访问。这些寄存 器的读写在前面所述的自动硬件保护机制下进行。 ·接口电路设计 采样寄存器rx_sample_s(3 downto O),对于串行输入位值的采样,每位采样 三次,跟据三次采样值比较,取两次采样值相同的作为最终采样结果。下面是三 位表决电路的逻辑表达式: 3位表决电路:majority_s=rx_sample_s(0)and rx_sample_s(1))or (rx_sample_s(0) and rx_sample_s(2)) or (rx_sample_s(1) and rx_sample_s(2)); 接收电路的工作是在接受状态机控制下完成。如图3-10是接收数据电路状态 机,接收数据电路有三个状态,空闲状态,启动,接受状态。在复位后,状态机 进入空闲状态,LIN控制器完全处于等待工作状态。接收输入端口上的信号下降 沿触发状态机,接收移位寄存器初始化为0FFH,当接收到最后一位时,状态机 返回空闲模式并等待下一个接受任务。如图3.10为接收状态机转换图, 曲』E!些厶!:亟±芏位迨塞 蓥3童丛£坐苤鳇处围!£坌蚯垂!丛窒 连续接收 一个字节 图3-10 LIN接收状态机 发送数据电路状态机如图3-11所示,往缓冲寄存器写数据即触发发送状态 机,在完成一次发送任务后又返回等待下次写缓冲事件。 Tx_sendlng—s 2‘0 写发送缓冲 发送完毕 Conbnue sed Jng 图3-11 LIN发送状态机 3.1.4.3 LIN总线波特率检测电路及波特率重配置 从LIN的协议我们知道,它实际上是UART的扩展,因此LIN总线协议区别 于普通UART就是它的数据链路层定义不同。利用LIN协议中报文帧的断点域和 26 同步域,可以让LIN总线上的从节点自动建立与主节点的波特率同步,即波特率 自动检测机制。下面就这种自动波特率检测机制介绍如下的解决方案:针对LIN 协议的中断域(break filed)的定义,可以利用它连续13个低电平来检测LIN帧 的到来。然后启动定时器的捕获模式来捕获同步域的值,当同步域字节接收结 束,定时器停止,从节点软件系统计算实际的波特率值,再配置从节点LIN控制 器为这个实际的波特率,即达到从节点和主节点同步的目的。如图3-2,在中断 域的第一个负边沿,启动定时器捕获使能,在确认LIN帧到来后,在同步域 (syn field)字节的第一个负边沿启动定时器的捕获功能,在最后一个负边沿捕 获结束,捕获值被用来计算当前的波特率。 波特宰十龟铡关闭或低功 图3·t2 UN波特率检测状态机 图3—12详细描述了LIN控制器的这种波特率自动检测机制,在波特率检测关 闭或者低功耗模式下,系统进入空闲模式状态,等待波特率检测启动使能,一旦 检测到使能信号,马上进入下~个检测启动状态。在该状态下检测首个负边延, .凸』E』些厶堂亟±堂垃迨塞 蓥§童丛曼堕苤壁处围!£筮伍垂!蜒塞 这是LIN帧的丌始。一旦检测到负边沿,状态机即进入计数状态。这罩有两种方 式进行计数,一是通过启动计数器A来计数,另一种是启动计数器B来计数,在 检测到上升沿有效的情况下,计数器停止计数。这两种方式下的计数结果如果大 于12,则说明break filed检测的有效性,说明有效的LIN帧已被检测到。于是 状态机进入下一状态,启动定时器2的捕获功能,在捕获模式下,定时器2捕获 同步域的下降沿,再配合系统软件将能正确获取接收的数据流的波特率。至此, 状态机完成了波特率的检测并回到最初的空闲模式。 通过定时器的捕获功能所得到的捕获值与波特率的关系用下式计算: baud=辱2。M,五 ~~(1) 巧:一定时器时钟频率,B:=%,8 Ⅳ。一接收的位数 已——-定时器捕获值 如图3-13所示,波特率生成器一般由预定标器,分频触发器,定时器重装载组 成。 Fclk 图3-13 波特率生成电路示意图 波特率生成器通过3位的预定标器,分频器而获得。预定标器值pre通过设 置相应寄存器预值位获得,bg是波特率定时器重装载值,n由分频器定义,因此波 特率表达式为 咖拈1而6+朋高+(坛鲁+1丽)+25一6 _(2—) 由式(1)和式(2),可得到bg和pre两值的关系表达式,从而可实现波 特率重配晋。 3.1.4.4寄存器定义及映射 LIN SCON 7 6 5 4 3 2 1 0 SMl SM2 REN SMO TB8 RB8 Tl RI n^, nⅣ IIN n^, nⅣ Rl——接收中断标志 rwh nvh rwh 发送中断标志 RB8-———————~接收的第9位 SM2一一使能多机模式 REN——接收使能 TB8.———————一发送的第9位 SMO~SMl——操作模式选 L|N--SBUF(0CgH卜一发送寄存器 UN—BCON(0CAH卜一波特率控制寄存器 LIN_BG(0CBH卜—一波特率寄存器 LIN—FDCON(0CCH卜一分数分频寄存器 下面是波特率生成器相关寄存器 波特率控制寄存器 7 6 5 4 3 2 1 0 . BGSEL O BRDlS BRPRE R M r M nⅣ rw 0一保留 BGSEL【7:6】——波特率检测范围选择 BRDIS【4】——B怕ak,Synch检测使能, ‘1’使能。 BRPRE f3:仆——预定标位,选择对输入时钟的分频系数 000 fdiv=fpclk 001 fdiv---'fpclld2 010 fdiv--fpclk/4 01 1 fdiv--fpclkJ8 R——波特率生成使能位, 100 fdiv=fpclk/16 101 fdiv=fpclk/32 ‘1’使能。 保留 FDCON分数分频控制寄存器 7 6 5 4 3 2 1 0 BGS SYNEN ERRSYN EOFSYN BRK NDOV FDM FOEN nⅣ 13N rwh rwh rwh rwh rw nⅣ FDEN——分数分频使能位, ‘1’使能。 FDM——分数分频模式选择。 ‘1’普通分频模式; ‘O’分数分频模式 NDOV——普通分频模式溢出标志 BRK——Bmak域标志 EOFSYN--SYN结束标志,‘1’结束标志已检测。 ERRSYN—SYN错误标志,‘1’错误标志已检测。 SYNEN——SYN结束和错误中断使能, ‘1’使能。 BGS——波特率生成器选择位, ‘1’选择timerl生成波特率, ‘0’选择波特率生成 器。 BG波特率定时,重装载寄存器 I7 6 5 4 3 2 1 0 l BR —VALUE I 凸』E!些厶堂亟±堂位迨塞 蓥§童丛g坐苤壁处囝!£筮堑塑!丛壅 读寄存器返同的是波特卒定时器值。 写寄存器写入波特率寄存器装载值。 FDSTEP分数分频器重装载值 在普通的模式-卜该值为FSRES寄存器重装载值。 在分数分频模式F,该值在每个输入时钟边沿时,加上FSRES的值。 FDRES分数分频器结果寄存器 在普通的分频模式r,该值是重装载值。 在分频模式F,该值是为RESULT+STEP值。 3.1.5 LIN总线控制器仿真示意 LIN控制器的仿真,使用了软硬协同仿真SOC验证平台,在系统级使用汇编 编写符合LIN协议的测试用例来生成激励,仿真工具使用CANDANCE的 NCSIM,操作系统为Solaris。图3-14所示为LIN的普通主从模式。信号RxcLi 是总线串行输入数据,包括报文头和数掘,t2_edge_i是timer2边沿检测脉冲, 有效的脉冲在capture_mode为true时被系统捕获,Sync_detected表示同步检 测是否成功。timer2con寄存器记录了当前捕获状态下计数值,软件根据该值可 以计算出波特率并重配置从节点,从RX CLK在重配置前后的波形可以看出波特 率的变化情况。 31 曲』E!些厶望亟£坐位迨塞 蔓3童丛昼堕苤壁处围!£筮蚯塑!迎荭 Rxd_l q 几r]厂]厂]r]几厂]n n t2._edge l l l l 0 0 0』 0 1 0 q跃><二二二二>(Ⅺ∈×X3 Capture._mode _mr2con[7 Sync_detected RX_CLK删姗眦嗍唧m00咖600000000舢唧唧舢嗍衄』0 0 1 0 1 0 图3-14 LIN主从通讯模式下波特率检测仿真示意图 3.1.6 LIN总线控制器综合 综合的概念根据电路的抽象层次有所不同,一般分为三个层次:系统层次的 综合,逻辑综合和舨图级的综合【25】.。这早的综合指的是把寄存器传输级的描述转 换到逻辑门的结构实现。在Inflneon的标准单元IC设计流程中,采用了一种整 合了EDA设计工具流程脚本,版本管理系统软件,以及makefile脚本的设计方 法,称为inway流程,所有的设计流程都用makefile控制,设计工程师只要把主 要精力放到代码编写和相关的约束脚本的编写上。 在做综合准备时,需要编写综合的约束文件,这些约束包括设计环境约束 (工作条件,线负载模型,驱动及扇出,以及设计规则等);时问约束(如时钟 网络,时序路径,时序例外等);以及面积约束。还有就是为DFT设计的约束脚 本文件,定义诸如扫描链方式,扫描链数量,以及扫描相关端口的定义等。 LIN总线控制器作为MCU的外围IP,综合的意义更多在于对面积的估计以便 于SOC的集成,其综合策略采用的是TOP.DOWN,综合的流程完全由 MAKEFILE控制。首先是利用dcmake工具生成makefile文件,执行“Dcmake makefiles”后将自动生成这些需要的makeflle文件。执行“Dcmake compile” 命令,系统将自动调用Design Compiler工具,读入综合约束对设计进行综合, 执行“Dcmake insert._scan”,synopsys的DFT工具将被自动调用并根据DFT 约束设置插入扫描链。对于后端需要的所有接口文件如网表,综合统计信息等, 只需要执行“Dcmake write_backend_info”命令即可生成所有相关的文件。 最后面积,时序的报告为: Report:area Design:xc8_lin Version:2003.03.1 Date:Tue May 23 10:04:19 2006 ●●●★●★●●●Ⅲ●●★●●●●●●●¨●●●●★●★●●●●★●●★● Library(s)Used: stadib Ivarlvoblxc800Ifpgalvoblresourceslstarlib/synopsyslmax/starlib.db) (File Number of ports:48 Number of nets: 93 Number of cells: 3 Number of references: 3 CombinationaI area: 2588544.000000 NoncombinationaI area:4223232.000000 Net Interconnect area: undefined(Wire load has zero net area) TotaI cell area TotaI area: 1 681 1 776.000000 undefined 3.1.7 LIN总线控制器设计总结 LIN总线控制器将在下一章所述的SOC的平台环境中经过仿真并在基于 FPGA的IP仿真平台中进行原型验证,它完全达到了定义的功能和性能要求。 3.2 ADCDIG概念及架构设计 图3-15是ADC的架构图,模拟部分采用的是全定制设计,因此这罩只关注 数字部分的设计,ADCDIG就是AD数字接13的简称。数字接13部分主要包括控 制逻辑单元和仲裁逻辑单元,以及相关辅助逻辑。 图3-15 ADC架构图 3.2.1 ADCDIG请求转换源概念设计 从应用角度出发,考虑到ADC的请求转换来源有如下可能:有应用软件触发 的转换请求,有外部输入的实时转换请求,有ADCDIG在空闲模式下的自动扫描 方式,还有来自定时器的等间隔采样要求等等,在高端的ADCDIG设计中都必须 考虑这些可能的应用。由于这种请求转换来源的复杂性,就需要ADCDIG本身具 备仲裁能力以裁决不同来源的请求转换。因此,在系统设计时定义了两级中断优 先级,规定不同的转换源的优先级别。下面是对转换源的分类,它同时也决定了 这个中断源的优先级别。 凸』E!些厶堂亟±堂位迨塞 笙§童丛垡坐苤焦丛囝!£筮堑塑!丛宜 ——硬件请求转换,来自片内别的lP的转换请求,如负责电机控制的单元, 在进行伺服控制时需要对反馈的电压或者电流进行采样,这需要片内的ADC配 合才能完成。该请求转换应当具有最高级别。 一一来自外部实时系统的转换请求,来自CHIP外部的要求,从提请转换请 求开始到转换结束,完全由硬件完成。这一请求的来源可能是另外一个系统或者 芯片。 ——软件请求转换,来自用户的应用程序,在用户认为合适的时刻启动采样 过程。该请求转换具有较低级别。 一一自动扫描,在已选择的通道上进行连续的或者单次的转换,这种方式可 以在软件零开销情况下对通道实现自动的转换扫描。 这些不同的转换请求源应当具有不同的触发方式,如软件请求的转换一般使 用队列的方式提请仲裁,来自硬件或者外部的请求一般以并行方式提请。这种触 发方式上的差异也部分决定了仲裁的方式。 3.2.2 ADCDIG模拟数字接口设计概念 ADC的模拟部分与数字部分的同步方式采用异步握手信号,模拟部分转换如 果结束,通过设置的EOC(end of conversion)信号通知数字部分,数字部分发 出启动信号启动模拟部分开始转换。在这一过程中,根据ADC本身的特点,从 下面几个方面考虑接1:3的定义问题。首先,用于配置模拟部分的初始参数,这些 参数由系统通过数字接13进行。如模拟部分具备多种转换精度,那么系统必须能 够控制选择那种转换精度,因此必须具有转换精度模式选择的接口,如定义 Mode 不同采样时间指标的AD是必要的;由于采样通道比较多,因此系统应该可以选 择具体采样通道。在这些相关的参数配置好后,系统即可启动AD进行转换。其 次,对于对系统启动AD转换的响应,模拟部分在转换中应该提供当前转换工作 状态的标志,指示当前模拟输入是否被采样,当前转换是否正在进行,转换是否 结束等标志。在系统查询到转换结束标志后,将读取AD转换结果数据。此外, 信号来完成这一任务:系统还必须能够配置采样时间,这用于选择具有_i 凸』E!些厶:兰亟±堂垃迨塞 筮§童丛堡坐苤丝处围!巳坌堑垂!丛塞 在考虑上述各种因素后,系统还要通过接口为AD部分提供专门的时钟和参考电 压支持。下面将总结这些关键的接口信息: 数字接口输入到AD模拟部分的信号: Mode i ADC模式选择如转换精度选择。 Stc i 采样时间控制 Chnr j 采样通道选择 Start adc i启动转换 CIk ADC系统时钟 Vref i 参考电压选择 模拟部分_输出到数字接口的信号: busy_o 正在转换指示信号 eoc_o 指示转换结束标志 result_o 转换结果输出 sample_o 指示模拟输入是否被采样 3.2.3 ADCDIG关键技术 3.2.3.1 ARBITER状态机设计 ARBITER的设计目的是裁决不同优先级的转换请求最终谁将获取AD转换。 一次裁决周期将根据输入的转换请求的数量不同而不同。在每个裁决时隙(slot), 仲裁器会裁决出当前时隙的请求通道,并与上一时隙的转换优胜者比较以决定当 前的优胜者,在一个完整的裁决周期后将最终决定出那一路转换请求通道将获得 AD转换的权利。 在XC866架构下,日lj{『设计的转换请求源有两个,一个是软件请求的转换通 道,一个是来自外部的请求转换通道。如图3.16是请求转换仲裁状态图。 图3-16 请求转换仲裁状态机 在转换请求悬挂以前,仲裁器处于等待状态,一旦有外部请求源触发转换, 将生成仲裁使能,启动仲裁的一个仲裁周期,仲裁采用时间片方式来采样相应的 请求源,在slot0,仲裁器比较定义的转换源0的优先级别后,将生成当前时隙的 请求转换源,在当前时隙的仲裁结束后进入下一个仲裁时隙slotl,同上一个时隙 一样,同样的比较操作也将进行,并且上个时隙的裁决结果将参与该时隙的仲裁 以决定当前最新的仲裁结果。以此类推,在slot3将进行同样的分析,在对所有 的请求转换尽行处理后,仲裁器将决出最后的转换源并启动AD进行转换。 3.2.3.2同步对列设计 . 队列是一种抽象的数据结构,完成先入先出这样的数据操作。对于转换请求 源为软件操作这种顺序申请的转换请求,适合采用队列的方式来处理。这里的队 列用硬件实现,其设计思路是,先决定队列的深度和宽度,在XC866的AD中, 采用2级深度,8位宽度的队列。队列的数掘输出方式从队列顶端输出,数据的 写入从队列底端输入。在数据输出后,队列将自动移动数据,使得底端可以再写 入数据。如图3.17是队列设计示意图。下面对队列设计的关键点做一总结: 队列的再填充——在某些应用情况下,应用程序可能临时取消当前正在运行的转 换,在这种情况下,硬件应该具有自动从备份的寄存器把请求转换源重装载到队 列的能力。 队列的清洗——在启动转换后,一般情况是当前请求转换任务应该清除,清除 当前队列的控制位。 37 队列的装载…一如果当前队列写入地址处数掘为空。则系统通过软件写入队列 新的内容。 队列的输出…一~队列输出数据,提供仲裁器进行裁决。 队列内容设计…在队列的高位设置有效标志位,标志位有效表示当的数据有 效,标志位数据无效,表示当前数据可以丢弃。当软件写入队列时,标志自动生 成。当队列被读出时当Ij{『数据被设置为无效。在队列数据无效的情况下,队列自 动移位覆盖无效的数据。 图3-17 请求队列设计示意 3.3小结 本章结合作者的工作,介绍了在XC866微控制器中比较关键和重要的外围 IP,LIN作为当前在汽车电子中广泛应用的总线技术,具有巨大的市场。本章介 绍了LIN控制器的总体架构以及各部件的设计要点,以及灵活的数据链路协议检 测技术。ADCDIG是ADC的数字接口部分,本章结合XC866从应用角度出发, 介绍了ADCDIG的接口概念设计以及部分关键技术。 4基于FPGA的IP验证平台实现 验证工作在MCU设计流程中有着举足轻重的地位,由于其SOC设计的特 点,需要软硬件协同验证来完成验证任务。因此对验证方法,验证工具的要求相 当高。例如要求测试平台(TESTBENCH)能满足系统协同验证需要,同时验证 平台高效并可重用。本章结合了XC866研发的背景,介绍了MCU的验证平台设 计思想和验证平台结构。在此基础上,结合作者的工作,重点介绍了基于FPGA 的lP验证平台思想,相关FPGA平台设计实现的过程和总结,这些工作具有相 当强的工程应用意义,可以加速IP的原型验证,加速MCU系统集成和产品上市 时间。 4.1验证平台设计思想 验证平台(TESTBENCH)用于提供被验证对象的激励,并选择性的观测其 输出并判断输出是否达到预期的结果,从而确定被验证对象功能的正确性。 Testbench经常用硬件描述语言如VHDL,VERILOG来创建,也可以用更高级 的验证语言如e语言,VERA以及C语言等。Testbench和设计对象DUV (design under verification)交互,共同完成设计对象的验证计划。如图4·1所 示说明了Testbench的基本概念㈣。 T§stbench DUV 图‘1 基本的验证平台结构 随着微电子技术发展,越来越多的器件被集成到同一硅片,这进一步推进了 芯片系统功能的高度集成化和复杂化,统计显示,越来越大的工作时间和成本花 凸』E!、业厶‘羔熊!:竺垃丝皇 墨璺塞基工E£鱼垒的I巳鳖延垩鱼塞堡 费在设计验证上,目酊很多的方法都旨在提高验证效率,如提高验证的并行性, 提高验证的抽象层次,使验证更加自动化等。因此要求验证平台有更高效率,有 更高的重复使用等。对于SOC的验证平台来说,更注重系统化的思想,使验证 平台可以从系统的角度对整个芯片提供验证。XC866的验证平台充分的考虑了验 证平台的高效性和可重用性,建立了基于软硬件协同验证的验证平台,验证工程 师呵以在系统级编程对任意一个模块进行验证,这种测试用例可以};|j汇编也可以 用高级编程语言。 4.2 XC866验证平台结构 从本质上,验证平台建立的过程就是验证环境建立的过程,MCU的验证实际 是软硬协同工作的过程,同时也是设计对象和验证环境交互的过程。对仿真工具 来观,在同一时刻只能执行对一个主控对象的仿真,因此对于设计对象和验证环 境的并行交互的模拟就必须采用一种同步方式,在XC866验证过程中,采用异 步握手的方式来同步CHIP和验证主控器(MASTER CONTROLLER)的交互。 如图4—2显示了验证平台结构,DUV是被验证对象,也就是设计对象;IOC驱动 DUV的IO脚,提供各种各样的驱动信号,它可以通过配置文件灵活连接端口。 JTAG是专门的符合JTAG协议的仿真模块,模拟符合JTAG协议的行为。 MASTER CONTROLLER是MCU验证平台的核心,它在测试平台中扮演着另外 一个CPU的功能,模拟了CPU的自主控制能力,它具备专门用于验证的相关命 令译码,并执行相关命令。它通过verifier完成与CPU的握手,在适当的时机悬 挂或激活IOC,它通过虚拟端口和设计对象通讯,这些虚拟端口由MASTER CONTROLLER驱动并与设计对象相连。一些主要的仿真模块介绍如下: ·IOC 输入输出连接器,用于连接DUV和测试平台之『日J的端口,由于验证 激励和DUT的复杂多样性,IOC的IO端口具备灵活的可配置扩展能力。 ·JTAG 该模块模拟JTAG协议,仿真DUV的JTAG接口模块功能以及与 测试相关的功能。 ·TBBUS 测试平台总线,提供Master Controller对verifier的访问,如数 据,地址及控制等总线。 ·RSTGEN 复位激励生成,用于对DUV复位。 ·CLKGEN生成DUV需要的系统时钟。 ·Verifier 完成DUV和Master Controller通讯,Verifier中的寄存器可以被 CPU和Reflective Master访问。其起始地址是E000H,总共有1 1个8位寄存 器,这些寄存器完成握手联络,数值比较,信息打印等功能。这些寄存器占用 CPU外部存储器地址空间,CPU通过MOVX指令来访问这些虚拟的寄存器。其 中最重要的是握手信号寄存器,这里命名其为VER_HANDSHAKE, CPU和 Reftective Master Controller通过它握手。该寄存器中有两位用来进行仿真主控 的切换握手信号。 B_t0一VER_MASTER_RTBE writes‘1’to wake up IOC Bitl一VER MASTER writes ‘1’ to wake uD CPU_CPU 41 曲』E!些厶望亟±主位迨塞 蔓垒童堇£E£鱼垒的!巳熊迪壬鱼塞趣 图4-2 Reflective Master Controller示意图 4.3基于IP验证的FPGA平台结构思想 以前IP的原型验证效率很低,主要是从RTL代码到FPGA的实现时,需要 准备大量复杂的测试激励及检测,并且需要把IP集成到MCU系统后才能进行验 证,当IP的开发和系统的集成不同步时,就会造成互相等待的情况,极大影响了 验证的效率。针对这种情况,本文提出了一种更高效的IP验证方法,.使IP的验 证和系统的原型验证分离,从而更快的获得对IP的验证结果。由于MCU内核及 42 凸些!些厶堂亟±堂位迨塞 蔓垒室基£E£堡垒丝!£熊丝垩鱼塞观 基本架构的相对稳定性,使得我们可以利用这种基本架构构造一个最小系统的IP 验证平台。这种平台在FPGA上实现后, 将会极大的加速lP的验证和提高验证 的质量。因此,如果把IP的验证平台环境放到FPGA中,并保留IP的接口,那 么在IP的FPGA验证时,只需要把IP“插入”接口,即可快速地实现IP的验 证,这使得IP验证可以从系统的层次进行,而验证工程师仅仅需要把验证的 pattem稍作修改即可在平台上复用。这样一来,就要求在做这个平台集成时,把 lP的接口尽量固定,不需要IP验证工程师对接口作修改。但是,由于lP的千差 万别,往往某些IP需要一些特殊的接口信号,而这些往往具有不可预见性,因此 尽量的把接口IP作丰富,以便于扩展就显得很关键。如图4—3显示了基于lP验 证的FPGA平台结构思想。 图4-3 基于咿验证的FPGA平台架构 本平台在调试时选择了LIN总线控制器作为待验证的IP,经过各种模式下的 测试运行,这种平台验证lP在验证速度,验证灵活性方面显示了极大的优越性。 43 通过对这个最小验证系统综合实现后门数量的初步估计,大约在100力f门左 右。另外考虑该系统的复杂资源,我们选用了VIRTEX2系列中的XC2V2000这 种型号,它有等效门约200力.,具有16个专用时钟通道,有8个数字时钟管理 模块,大约1008Kbits的块RAM,完全可以满足平台对资源的实现要求,而且可 以便于以后进一步扩展。 4.4基于FPGA的IP验证平台的裁减 平台裁减的目的是减小平台的规模,提供更大的IP可用的FPGA资源空间。 从系统架构的角度,需要从下面这些方面来考虑裁减平台。首先外围的应用IP, 如CCU,CAN,CORDIC等与系统的耦合程度不高,不用集成到平台中;模拟 模块的ADC无法用FPGA实现,应该去掉,但可以保留数字接口ADCDIG部 分。平台的基本构成模块是:8051核,系统控制单元(SCU),在线调试单元 (OCDS),存储管理模块(MCU),与部分调试相关的测试单元(TCU)模 块,连接片内总线的桥模块(BRIDGE),系统存储器模块。通过这些模块可以 组成一个最小平台系统,使系统可以完成运行用户程序的基本功能,因此它能满 足IP验证的需要。如图4.3所示平台的最小系统部分,值得注意的是,在裁减平 台的过程中,最关键的是lP接口的设计。首先基于XC866片内PD8总线接口, 并在此接口基础上考虑接13的可扩展性和可适应性。PD8总线包括基本的16位 地址总线,双向分离的16位数据线,以及相关的控制总线等,如IP片选信号, 系统时钟,系统复位,CPU读使能,写使能等。由于待验证IP的复杂行和多样 性,必须提供IP足够的中断资源,因此对IP接13来说,设计了15个中断请求输 出接13以及1个中断清除端口。另外由于MCU内部的IP之间可能有一些特殊接 口,比如电机控制单元与ADC数字式之问有部分异步接口,象这种情况应该考 虑到接口的定义中去。最后要考虑的接口是IP与片外的接1:3,作为XC866的架 构来说,必须把这部分与外部的接13从底层引到pad上,考虑到片外接口的多样 性,这里设计了16个输入接口,16个输出接口,8个双向接13,基本上可以满 足普通IP的外部接口要求,如下表所示就是IP的接口定义。 I I外网读写控制pd_rd_i,pd_wr_i; l SFR及扫。展SFR片选pd_cs sfr i,pd_cs_esfr i; 总线逻辑接u 复位接u; 时钟接u及时钟使能 准备信号 扫’展中断接u 中断请求信号,定义为15个中断源; 中断心答 片外接U 16个输入接u;16个输出接u;8个双向接u 片内务’展非标 8个输入片内接u;8个输出片内接u 准接口 4.4。1系统控制单元(SCU)的修改 根据上节所述的IP接口,由于考虑扩展性,增加了不少lP和SCU或其它外围 模块之间的接口,因此SCU在接口及内部特别是中断管理上必须进行扩展。对 于XC866的m8051-ewarp内核来说,它的中断相量是固定的,包括NMI在内总 共有15个中断相量。其中有4个中断相量分配给外围中断源,每个中断源有四 个优先级并可编程修改。因此外围中断源的增加,只能是采用共享这四个中断相 量的方式,再结合软件来进行中断源的判断。在对SCU的修改中,主要考虑以 下几个方面,中断控制寄存器的地址扩展及其读写接口逻辑的设计,如中断使能 寄存器,中断状态寄存器,中断请求寄存器等:外围中断源检测电路,这里是指 检测外围中断请求跳变;中断请求生成逻辑的设计等。这些中断结构的扩展将满 足待验证IP的多个中断源的潜在需要。如图4-4所示为中断结构图。 中断事件 应答 到c0RE 图4-4 XC866中断结构图 4.5从ASIC到FPGA的迁移 FPGA的平台实现中,ASIC的模拟模块必须去掉,并以合适的可以在FPGA 中实现的资源模块取代,因此需要对这些模块做适当修改。例如:PLL模块; ADC模块;EVR模块;Memory模块;PAD模块;CLOCK GATING模块等。 这些模块在ASIC中是全定制的设计,因此需要向FPGA转换。下表列出了他们 的转换处理办法。 ASIC处理 PLL ADC EVR(模拟) PAD(库单冗) Memory Clock gating(hbrary) FPGA处理 DCM 保留数字处理接u . 模拟EVR行为的可综合RTL 模拟PAD行为的可综合RTL BLOCK RAM Clock enable or FPGA macro 每注 lP Generator工具 匹』E!:些厶堂亟±堂位迨塞 苤!重基王E£鱼垒曲!£箜让垩垒塞堡 4.5.1 ASIC设计和FPGA原型验证的异同 ASIC设计和FPGA原型设计的异同主要体现在下面: ·实现技术不同。ASIC面向的技术库与FPGA是不同的。前者将根据技术 库中的基本单元来构造实现门级电路,而FPGA主要基于查找表结构及片 内的触发器资源,逻辑的实现将靠片内的这些基本单元级连来实现,其优 化程度当然不能与ASIC相比。因此在编码的时候考虑到这种实现的差 异,就会产生不同的编码风格。一般说来按照ASIC编码风格的RTL综合 成目标FPGA后,并不能达到最优化的结构。在充分考虑FPGA架构上的 编码可以获得面积和性能上的最大优化,如充分利用FPGA中MACRO, 原语等来例化设计对象。 ·实现速度不同。在从ASlC到FPGA转移时,关注的是功能上能否实现, 对速度上并没有过高要求,因此,尽量不作更多的性能上的优化。但这并 不意味着一层不变,某些应用必须要求一定的数据吞吐量,如视频应用, 网络应用等。这要求设计者考虑一些在FPGA上可以实现的优化方法来提 高设计的速度。 ·不能完全在功能实现细节上相同。FPGA不能完全实现ASIC的功能,比 如某些模拟模块,全定制模块,如ADC,PAD,MEMORY,PLL等。因 此这些模块不能实现FPGA的原型,在FPGA上也不能获得验证。 4.5.2迁移一致性评估 这种从ASIC转到FPGA的行为,有多大程度与原来的设计保持一致,或者 说FPGA的验证能多大程度的反映ASIC的设计,这是需要考虑和研究的问题。 一般说来,对于ASIC纯数字部分的功能是可以得到比较好的验证的,另外 FPGA的验证可以使得系统软件的调试得以提前进行,这大大增强了流片的信 心。 如图4.5反应了ASIC和FPGA设计的这种差异性。 47 曲』E!些厶堂亟士:i:位逭塞 ASIC -( 刍 兰 蔓§重基£E巳鱼垒的!巳墅延垩龟塞埋 FPGA 图4-5 FPGA和ASlC差异示意 4.5.3 ASIC到FPGA流程的详细迁移实现 下面将详细的介绍如何把基于SOC流程的设计转换到基于FPGA的流程上 来,在这样的转换过程中,将对一些模拟,全定制的模块做适当修改。 4.5.3.1 PLL使用DcM替换 PLL是数字锁相环的缩写,它具有时钟反馈的机制,能够通过相位的差异把 时钟的频率锁定在某一给定值,因此它能提供整个芯片的可靠时钟。PLL的设计 是全定制的,并且大部分是模拟电路,因此它的验证和测试需要专门的电路来实 现。对于FPGA原型验证来说,可以利用FPGA中的数字时钟管理单元 (DCM)来生成系统需要时钟。 DCM即数字时钟管理单元,主要完成时钟的同步,移相,分频,倍频,去抖 等,它是XILINX为某些产品提供的高性能时钟解决方案。它具有内部锁相功 能,用户可以根据自己需要的时钟频率配置所需的分频系数。DCM的应用直接 在RTL中例化XILINX提供的DCM原语,推荐的DCM使用方法是很有讲究 的,首先注意输入的震荡频率必须满足DCM手册所要求的范围,其次它的比例 系数的选择也要符合手册的要求。DCM的对复位的信号是有要求的,必须保持 一定的长度,否则时钟是不会产生的,图4.6所示是DCM的常用使用方案。 图4-6 FPGA的DCM使用方案 PLL有很多控制输入和状态检测,它必须在系统工作前就运作,因此它包含 了特殊的逻辑来处理上电和复位操作。在用FPGA的DCM替换时,可以选择最 主要的几个功能信号就可以提供系统所需要的主时钟,但同时又减少了PLL的很 多控制功能。DCM这些信号包括基本的复位输入信号,振荡器输入信号,生成 时钟输出,时钟锁定输出等。如下表所列是用DCM替换后外部接口。 Res_lockdet_i foSC I fpll_o Iock o 复位输入信号 震荡器输入 时钟输出 时钟锁定输出 4.5.3.2嵌入式电压调节单元EvR的功能替换 EVR(Embedded Voltage Regulator)嵌入式电压调节器被用来减小PCB和 微控制器之间的接口电压。大多数MCU的内核电压源VDDC和接口电压VDDP 是分离的,对这两个不同电压的处理使得板级应用复杂化,而且对于芯片的 EMC不是很理想,因此,使用片上电压调节器是非常有利的,既减小了接口设计 的复杂性又增强了芯片的EMC能力,同时还减少了整个芯片的功耗。在工艺上 EVR是模拟全定制设计,在功能上,除了提供内部电压源外,还直接与复位信号 的生成相关。在用FPGA替换时,不再考虑EVR在低功耗时的电压切换,并对 于接口信号采用赋值的方法替换,由于EVR的正常工作需要一定时间,因此可 以使用数字设计来模拟这些接口信号的时序延迟。这罩有两个关键的端口信号, 49 一个是显示EVR工作是否萨常的信号EVR—ok—o,另一个是用于释放复位的信 号EVR reset SCU n o。替换后的EVR模块能J下确模拟这种接口行为,能在适 当的时机给出这些重要的信号。 4.5.3.3MEMORY功能替换 BROM替换.SOC中BROM接口由于可测试性的要求,需要MBIST接口, 如下表是BROM在ASlC中的接口,在向FPGA转换时,不考虑这部分可测试 性的要求,只要留下与BROM功能相关的接口即可,参考下表中保留的阴影部 分,FPGA的接口实现将大大简化。 MBIST接口 存储器时钟 存储器片选 存档器地址 存储器数据输i土l misr_dataouLO mist_scan out—.O mbist_done_o mbisLcontroU mbist clk mbist nrst mbist debug scan_bypass_enable misr——hold—.n。,O mem CLK mem CSB mem A DO O BROM的特性是只读的,同步的ROM,故在用XlLINX的lP生成工具生成 MEMORY时,需要注意这个特点,XlLINX实际上使用物理的BLOCK RAM来 模拟BROM的只读行为。另外BROM中有系统firmware,在用IP generator 时,要把firmware的HEX文件转换为COE格式的文件,读入生成的IP中。对 于HEX到COE的转换,可以用脚本语言编写成转换脚本,有利于以后复用。 FLASH的特点之一是可读可写的,时钟同步的,因此它需要读写两个端口, 以及时钟接口。在用FPGA中F认M来实现FLASH时,要根据ASIC中的容量大 小,选择合适的地址宽度和数掘大小。对于XC866的FLASH阵列来说,它由两 部分组成,一部分是Configure FLASH,第二部分是Data FLASH,因此在用 FPGA实现时,分开分别实现这两个部分,并分别在RTL代码中例化实现。这里 值得注意的是用块RAM代替的FLASH的读写方式在速度上更快,在读写方式上 是相同的,只是少了FLASH的擦除和烧写这个步骤。FLASH的接口设计中,擦 除和烧写逻辑还是保留的,只是在转换为FPGA的BLAOCK RAM后这种操作是 没有意义的空操作。下表是FLASH存储器用BLAOCK IRAM替换后的接口。 addr clk din 地址输入 时钟输入 数据输入 dout 数据输出 en 读使能 we 写使能 IMEM的FPGA替换,模拟IMEM的双端口功能,读写操作都跟FLASH接 口是一样的。下表是IMEM经过FPGA BLOCK RAM替换后的接口表 addra 地址A addrb 地址B clka 时钟a clkb 时钟b dina 输入数据a dinb 输入数据b douta 输山数据a doutb 输出数据b 51 ena enb wea 使能a 使能b 写使能a web 写使能b 4.5.3.4 PAD功能替换 PAD功能在ASIC中是由库单元实现的,具有很多模拟的功能,如输入放 大,输出上拉等,因此在向FPGA转换时,用可综合的RTL代码来综合实现其 大部份功能,但某些特殊的逻辑状态无法用FPGA束实现。例如,某些信号的强 弱,高阻状态等没有必要在FPGA中实现。 4.6 FPGA验证及实现流程 4.6.1 ASIC和FPGA验证环境差异 FPGA和ASIC的验证环境差异从本质上说没有什么不同,值得注意的是测试 用例(pattem)的修改,某些用例可以用来在ASIC环境中运行却不能移植到 FPGA的环境。除了由于硬件上某些ASIC功能被FPGA替代因而某些用例不能 使用外,还有一类与接口密切相关的用例也不能移植,例如某些自检程序需要测 试PAD或者某些模拟模块如时钟系统,AD等的状态,而这些信息在FPGA中往 往不能提供或者说完全等效于ASIC。 4.6.2验证流程 XC866使用仿真工具为NCSIM,操作系统是SOLARIS8。基于英飞凌自己 开发的可视化集成界面,使所有的仿真流程可以在同一界面运行或调用,这个 GUI仿真界面被称为AGENTX,它在GUI中调用了后台相应的仿真运行脚本或 者命令。如图4.7所示是AGENTX仿真界面。 图4—7 Agentx仿真环境界面 Run Crvmake介绍:该命令调用了后台脚本,自动根据当|j{『的仿真工具,生 成有依赖关系的所有RTL文件列表,该列表供后续流程仿真编译或者综合工具使 用。 Smake介绍:该命令根据Crvmake结果所生成的文件列表,调用仿真工 具,如NCSIM或MODELSlM来编译所有的RTL源程序。 Compile介绍:该命令编译CPU core运行所需的汇编程序或C程序,以便 软硬件协同仿真。 Simulate命令介绍:该命令启动NCSIM工具,以运行仿真。带有-cover的 命令选项可以统计当前的行覆盖率。 丛』E!些厶:羔亟±翌位鲶塞 箜!重基王E£鱼垒的!巳熊地王鱼塞狃 在RUN REGRESSION菜单中几个命令的介绍: PREPARE准备REGRESSION所需的PATTERN目录。 COMPILE命令用于批量编译所有测试程序。 START启动REGRESSION仿真。 4.6.2.1前仿 所谓前仿是指不加入时序信息,只仿真设计的功能是否正确。在做前仿前, 首先编译所有的RTL,以及技术库(基于FPGA仿真还需要XILINX库的支 持),系统验证平台(TESTBENCH),这是基于仿真工具的编译,对于用汇编 编写的测试用例要用相应的编译器编译。 在仿真丌始后,MCU要从存储器读取用户编写的测试用例,这要求在仿真开 始前就能把程序装到相应的存储器,这罩有两种办法把程序填充到存储器,一是 采用仿真工具提供的命令直接把程序填入存储器,这需要编写存储器初试化脚 本。如下面所示的语句可以把特定路径下的测试文件填充到存储器: Deposit¥{path to xmem}:readcontents=frRUE}; Deposit¥{path垫一imem}:readcontents=gRUE}; 第二种办法是在FPGA的实现中,采用VHDL提供的库函数把程序读到存储 器。但是这种方法不能在后仿真中使用,因为这些函数无法被综合。下面的语句 显示如何使用第二种方法。 c_yydisable_warnings=>1, c_mem-injt_file=>。spram51 2xSjn.txt_fpga“, c_default_data=>”0“ 4.6.2.2后仿 所谓后仿是指加入时序信息的仿真,在该项目的流程里,时序信息是在布 局,布线后生成的SDF(标准延迟格式)文件反标到设计的网表中,进行仿真的过 程。后仿能比较真实的反映设计的时序情况,但仿真过程耗时,仿真的规模有 限,定位错误不是很直观。下面的例子是表明NC SIM如何读入SDF文件用于 反标的。 凸』b!些厶堂亟±堂位迨塞 蓥生童基王E£鱼垒的!巳叁让壬鱼塞理 SDF annotate initiaI ¥sdf_annotate("lvarlvoblxc800Ifpga/vob/testbench_1 1 29/bromsim/xc866-fpga_ chip_timesim.sdf)= 后仿真时存储器的初试化值最好采用编写脚本的方法,把用户的测试程序填充到 存储器中,对于FPGA的后仿来说,这罩的复杂点在于必须对实现存储器的 FPGA块RAM结构有清楚了解,即了解FPGA实现工具如何把块RAM (BLOCK RAM)组织起来构成更大容量的存储器的,在获取这些信息后,就能 把测试程序按照地址顺序放到合适的块RAM中。 4.6.2.3静态时序分析 对于FPGA设计采用静态时序分析并不是一个标准的流程,有的设计并不需 要,这要看设计对象的复杂程度以及设计者的经验。XILINX提供的Timing Analyze是用于FPGA设计的静态时序分析工具,但对于从事FPGA原型验证的 工程师而言,或许更熟悉ASIC设计的时序分析工具,如SYNOPSYS的 Pdmetime工具。这里将重点总结基于Primetime的FPGA静态时序分析流程。 静态时序分析流程总结如下: 分析准备: ·把simprim库编译成simprim.db库文件,simprim库是xilinx提供的技术 库,可用于静态时序分析,在进行静态时序分析前,要把他编译成PT的库文件 格式。 ·设置编译好的library的搜索路径 ·准备好SDF文件,该文件由FPGA布局布线后生成。SDF文件包含标准延 迟格式信息,及单元延迟,布线延迟等。 ·读入Vedlog格式的design文件并与library建立连接。建立设计与库文件的 连接,设计单元才能被库解析。 分析检查: 凸』£!些厶:羔亟±堂位迨塞 蕴§重基工E巳鱼垒的!巳熊址王鱼塞堡 ·约束完整性检查,分析时钟设置,时序例外设置,时序路径约束等,以保证 约束的完整性。 ·SDF完整性检查,库timing arc完整性。 ·环境变量的正确设置,用户变量的正确性等,这些变量用来控制PT工具的 分析行为。 报告生成: ·检查分析覆盖率,报告时序例外情况,报告时序的violation等。工程师可以 通过自己的设置来生成响应的报告并了解时序情况。 Violation的修复: 根掘时序violation的情况进行修复。本设计中有很多的时序例外情况,只有 充分考虑并正确设置了时序例外的情况爿。可以消除许多不必要的violation,从而 找到真正的时序违背的路径。 4.6.3综合 FPGA的综合的概念和ASIC是一样的,包含两个步骤,首先是translate, 然后是MAP。第一个步骤做源程序的语法检查,转换为基本的门级网表,第二个 步骤把通用的门级网表映射到特定的技术库中。综合输出是网表形式存在的文 件,可以是EDIF也可以是verilog。 4.6.3.1综合环境及综合脚本建立 Synplify是一款性能良好的FPGA综合工具,目前在XC866项目中采用的是 8.1的版本。SynpJify综合环境建立包括:设置所有的RTL输入的详细路径,设 置目标器件类型,设置顶层模块名,设置编译控制选项,设置时序约束文件路径 等。 综合运行脚本文件后缀为。.prj,它同时也是项目文件。该项目文件中包含所有 RTL源程序的按依赖关系的路径列表:FPGA器件名称;一些工具综合参数,如 compile option和map optiom以及还有上面提到的约束文件的路径等。在做综 合时,只需要在command命令方式下,运行这个脚本即可。 凸』E』些厶堂亟±堂垃迨塞 蓥垒童基工E£鱼垒丝!巳焦逛±鱼塞丑 由于该平台是基于SOC的,因此可以从ASIC设计流程的综合环境中复用时序 约束文件,SOC综合工具是Design Compiler,它的时序约束文件格式是SDC 格式。在把SDC格式的约束脚本用于Synplify时需要作相应语法的转化和检 查,特别注意在DC中的某些约束命令是无法在FPGA中使用的。这些约束的差 异性表现在下面: a.对于不同时钟域之间的时序例外这种情况,如false path,DC会明确定义 这种时序例外,但是Synpllify是不需要定义,综合工具将自动忽略这两个 时钟域之间所有时序路径的检查。 b.DC在综合时一般设置理想时钟,以便于在后端插入时钟树。但是FPGA 的时钟树是已有的资源,设计者不用考虑,只需要关注他的周期和占空比 即可。 ’ C.Synplify不需要用户提供建立时间和保持时间这种在SOC静态时序分析中 必要的参数,Synplify工具自己内部会选择合适的参数。 d.DC对于TCL的支持很丰富,有较强的对设计对象操作的能力,如查找 (find),过滤,分组等,以便把约束准确的加在对象上。而Synplify-pro 没有如此丰富的功能,而且目前8.1版本不支持这种嵌套的查找后再加约 束的功能。 4.6.3.2增量设计方法的应用 XILINX的FPGA设计工具ISE提供了增量设计的方法:应用设计相当大 时,为了更好保证每次作FPGA实现时结果的一致性,减少工具运行时间,就考 虑运用增量的综合和布局步线。增量设计方法可以减少大型复杂设计的FPGA实 现可重复性较差的问题,可以更好的继承历史实现的优良结果。 增量设计的步骤:首先是综合阶段的增量设计,其次是FPGA实现阶段的增 量设计,这两个步骤是连贯的,有联系的。 ·综合阶段的增量设计—一对整个设计的每个底层模块进行划分并分别综合, 在项层的RTL中对底层的这些模块进行黑盒声明。这样可以产生一个顶层的 EDIF文件和底层的各个单独的模块的EDIF文件。 57 曲』§!些厶望:塑士:差i空丝塞 笠!重蕉I E£鱼垒啦!巳熊迤垩台塞埋 ·实现阶段的增量设计…首先需要使用ISE中集成的工具PACE来对每个 底层的文件进行布局,注意如果设计中插入了CHIPSCOPE的lP核,也要把这 两个模块进行白局,最后把布局文件保存用于指导后端布局布线。增量设计首先 要求生成一个比较好的版本,及第一遍的流程跟普通设计流程一样,在这个基础 上,再使用增量方法。设冒ISE实现属性中的INCREMENTAL ENABLE选项, 选择上一次成功的布局,确线文件为这次增量设计的指导文件,设置后即可采用 增量实现流程。增量设计流程会自动检测每个模块是否改动,如果没有改动,它 就继承上次的布局御线,只对改动的模块重新布线。因此,他的实现速度是比较 快的,而且继承性很好。 增量设计方法优点:节省综合和布局布线时|’日J,可以很好的继承上次的设计 结果,保证设计的一次通过性。 增量设计方法缺点:布局时需要靠经验,精心布局,反复多次,并尽量考虑 模块之问的相对关系。这个步骤存在不确定性,如果模块的划分不是很合理,就 会给布局造成很大问题,导致整个CHIP时序不收敛。另外,如果在布局时模块 的面积太小,那么以后模块更新需要更大面积时就不能再使用这个伟局,导致增 量设计失败。 , 4.6.3.3增量设计方法的实现 下面将详细的介绍增量方法的实现,它渗透从综合到实现的全部过程。 a.增量综合 增量综合前,把整个设计模块按一定的规则如功能等分成子模块,并在顶层 的文件中声明子模块为BLACKBOX(如下所示为黑盒声明的方法),再分别对 每个子模块进行综合。如果需要实现增量设计时,可以只对那些要修改的子模块 使用增量综合的方法。 如:component xc8_ssc Port( pd_rd_. :in std_ulogic: per sel n o :out std_ulogic ); End component; Affdbute syn_black_box:Booleam A_t【ribute syn_black_.box of xc8 ssc=component is true= b.综合设置 脚本化的综合设置是比较关键的工作,它可以很大程度上影响综合的结构。 SynpUfy的综合设置包括下面的几个部分:RTL源程序列表:时序约束文件;器 件设置;编译设置;映射设置;输出设置等。 RTL源程序列表: 根据源程序之『日j的层次依赖关系,列出所有的RTL源程序, 以便综合工具读入。 时序约束文件:定义整个CHIP的时钟周期,输入输出以及时序例外的情况,以 便指导综合器进行综合。 器件设置:设置目标器件类型,封装,速度等。 编译设置:结合特定的综合工具略有不同,一般来说会涉及编码方式的选择,是 否需要共享硬件资源,FSM提取等。 映射设置:映射(MAP)设置参数较多。对Synplify来说,有如下的参数比较关 键,如综合频率设置,扇出设置系数,是否需要进行流水化处理以提高系统性 能,是否需要retiming(时序优化),是否让综合工具自动插入IO。扇出的设置可 以控制综合器对部分电路的结构优化。流水化以及retiming将影响设计的结构, 对某些形式验证工具无法支持,在某些公司的流程中一般不支持使用。IO的插入 对采用黑盒形式模块的增量设计方法是不支持的,因此在这种情况下要关闭这个 参数。 C.布局规划 选择PACE程序,打开设计文件进行布局设计。这一步在整个增量设计流程 中最为总要,需要精心考虑,反复布局以达到最优。如图4—8所示为验证平台的 布局图。 59 图4-8 验证平台设计布局图 d.增量实现设置 在ISE的Process Properties设置中,可以选择是否使能增量设计流程, 增量设计需要选择用于指导增量处理的指导文件,即Guide File。增量实现过程 从MAP开始到P&R,因此指导文件就包含这两个步骤的两个中间文件,用于指 导MAP的文件*_map.ncd和指导P&R的文件*.ncd。 e.增量设计报告文件 在报告文件中会有详细的关于增量设计的结果分析。如果设计没有任何更 改,就会显示设计100%被指导(guided)。 60 4.6.4 FPGA的实现 该流程采用EDIF流程,EDIF是综合后输出的网表文件。在ISE中设置如 下,在建立ISE项目文件后,拷贝相应的EDIF文件和IP GENERATOR生成的 存储器模型文件到项目文件中,这些模型文件是EDN格式的文件,如果采用增 量流程,还有相关的子模块的EDIF文件,然后建立项目文件后即可进行FPGA 实现。如图4—9所示为FPGA设计流程示意图 设计输入 致讨综合 设tf骑iiF 功能聆hF 回设计实现 圜 反标 IN"rF9每由【 位流文件生成 I-"载{目 扔、板 电路调试 图4-9 FPGA设计流程示意 4.6.4.1 FPGA实现流程 实现流程包括下面的步骤: Translate(转换) 该步骤调用NGDBuild程序,它的作用是读入综合后的EDIF或者NGC文件 并生成NGD文件。NGD文件是用XILINX的原语描述的逻辑设计文件,该文件 可以被映射到特定的器件中,如图4—10所示为NGDBuild设计流程。 61 嗍表读入 l NG0通用数据库 NDGBui ld程序 图4-10 NGDBuild设计流程 Map(映射) MAP程序把逻辑设计映射到XILINX的FPGA。MAP的输入文件是NGD文 件,NGD文件它既包括设计的层次化描述也包括底层的XILINX原语,宏单元 等。MAP程序首先做设计规则检查,然后把逻辑设计映射到目标器件的 component上,如logic cells,IOcell等。输出的NCD文件(Native Cirduit Description)可以被用于布局布线,如图4-11为MAP的设计流程。 图4-11 MAP设计流程 P&R(布局布线) 在MAP流程的NCD文件生成后,PAR程序把NCD文件作为输入,输出的 NCD文件被BitGen程序用于生成Bitstream文件。PAR程序基于两种策略,一 是资源花费优化,在项目中无时序文件的情况下,PAR将自动采取这种策略,它 基于各种资源花费列表来靠虑优化却局和步线。二是时序驱动,PAR发现项目中 有时序约束文件,将自动调用timing_driven来进行布局,如图4—12是P&R的设 计流程。 图4-12 PAR设计流程 配置文件生成 BitGen程序产生XLINX器件配置的二进制数据流文件。BitGen程序把经过 完全却线的NCD文件作为输入,生成可配置的二进制文件。二进制位流文件定 义了FPGA器件内部逻辑和互连,以及一些特殊的信息,如图4—13所示。 图4.13 BitGen设计流程 基于FPGA的IP验证平台在FPGA中实现后资源使用情况报表: 丛』t!些厶:芏熊±堂位迨塞 篓!重基王E£鱼垒笪!£叁址王鱼塞堡 XC800 FPGA_PLATFORM』,3 Project Status Project File xc6003pga platform_v3.ise Current state Programming file generated Module name Xc866_.fpga_chip Errom NoErrom Target Device Xc2v2000-4f9676 warnings 104 Product Version Ise.8.1.03i . Updated Mon Jun 12 11:00:23 2006 Logic Utilization Total Numbers Slice Registers Number used as FlipFlop Number used ad Latches Number of input LUTs Logic DiStdbution Number of occupied Slice Number of Slices containing only related logic Number of Slices Device Utilization Summary used Available Utilization 3,622 3.610 12 9,882 21.504 21.504 16% 45% 6.500 6.500 10.752 6,500 60% 100% 0 6。500 0% Note(s) containing only related logic TataI Number 4 input LUTs Number used aslogic Number used as a reut-thru Number of bonded 10Bs 9,924 9。882 42 54 21.504 456 46% 11% lOB Flip Flop 2 IOB Latches 1 Number of 22 56 Block RAMs Number of 11 16 GCLKs Number of 1 8 DCM Total equivalent gate count for design 1,543.125 AdditionaI JTAG gate count for IOBs 2,592 39% 68% 12% 4.6.4.2 ChipScope在FPGA调试中的应用 ChipScope工具介绍 随着FPGA器件密度的提高,传统的外部加探针的方式已不能满足调试的需 要。ChipScopeTM Pro工具把逻辑分析仪集成到目标芯片中,如Xilinx VirtexTM,Virtex-E Virtex-ll,Virtex-II pro'ra,Virtex4TM,SpartanTM-II,Spartan-liE and Spartan.3等器件。利用ChipScope Pro工具与这些目标器件中的逻辑分析 仪器件进行通讯,从而对目标器件中的设计进行逻辑分析,使得FPGA的调试手 段更加强大和轻松。如图4.14介绍了Chipscope的概念。 Chipscope包括三个工具,第一个是ChipScope Pro Core Generator;它是 ChipScope核生成工具,为各种核提供网表和例化模板,如集成控制器核 (ICON),集成逻辑分析仪核(ILA),Agilent的跟踪核等。第二个是 ChipScope Pro Core Inserter,这个是ChipScope核插入工具,它自动插入 ICON,lLA。ILA/ATC,and ATC2这些核到用户的综合网表中。第三个是 ChipScope Pro Analyzer,这个是ChipScope的分析工具,为实现到FPGA上 的信号分析模块,如lU舱TC,¨A/ATC等提供配置,触发设置,跟踪显示等功 能。ChipScope提供的IP核提供了触发,控制和捕获的能力,下面将介绍这些 IP核的功能: ILA—ILA核是一个定制的逻辑分析核,可以被用来分析用户设计的内部信 号,ILA核和设计是全同步的,因此用.户的设计约束也对ILA核产生影响。ILA有 三个主要器件,触发输入逻辑;数掘捕获逻辑,控制和状态逻辑。注意,ILA把 捕获的数掘存储在片上的block RAM中。 ICON一所有的ChipScope Pro核使用JTAG边界扫描端口和主机通讯。 ICON核提供了在FPGA上J-『_AG边界扫描端口和ILA,ILA,ATC等各种捕获模 块之间的通讯通道。 另外还有lWATC等逻辑由于本项目未用,就不在此详述。详细请参考 ChipScope Pro的用户手册。 笋 马 呈多 凸』E!:些厶堂亟±堂鱼迨塞 笠垒童基王E旦鱼垒丝!£鉴延王鱼塞毽 图4-14 ChipSeope概念 ChipScope设计流程如图4-1 5所示 核生成 图4-15 Chipscope设计流程 本设计采用了图4.15右边第二种流程,在综合后的网表中插入相关分析核 后,再一起做FPGA的实现。 ChipScope pro是PC上的Analyzer工具。通过该工具软件以及JTAG电缆 可以让PC建立与目标系统的通讯联系。下载设计目标文件(+.BIT)后,主机与 目标系统建立通讯联系,片内捕获的信号波形可以实时显示在终端上。 4.7 FPGA调试 FPGA调试基于原型验证开发系统,它的核心器件是一个可配置xc2v2000或 xc2v3000的器件。通过模式配置板(也称为daughter card)来选择MCU不同 的工作模式。通过JTAG或UART接13,用户可以通过PC界面的开发工具来控 制验证对象程序的运行并监控其结果。图4.16就是基于PC的调试工具,该工具 具备下载,波特率设置,执行程序等简单命令的功能。结合LIN控制器的设计, 在该验证平台上实现了对LIN控制器的验证,LIN测试程序用汇编实现,根据验 证的计划,对各种功能逐~检验,例如SFR的读写,各种收发模式的检测,波 特率自检测并重配置等。 曲』g!:些厶:羔亟±堂位迨塞 箍垒重蕉王E£鱼垒的!£墅近垩鱼塞逸 图4-16 UART测试程序界面 4.8基于逻辑分析仪的FIRMWARE覆盖率测试 4.8.1思想及意义 FIRMWARE即固件,是一种嵌入到芯片中的软件,一般它需要用非易失性的 存储器来存储并可以方便的更新。FIRMWARE实现对底层硬件的直接控制,驱 动,以及提供用户一些最常用功能软件。XC866的固件设计的大体框架参考图2- 9,在实际的实现时将更加复杂。以前的FIRMWARE测试者在FPGA原型上验 证时很难获得一个对软件整体的覆盖率评估,现在借助FPGA的原型验证平台以 及逻辑分析仪可以方便的实现对FlRMWARE行覆盖率的评估。 这种思想是,在把设计对象在FPGA实现前,把关键的信号如程序地址信号 (program address),操作码(opcode),取指信号(op_fetch),存储器切 换控制信号(amsel)等引到pad上,在运行相关的测试程序同时,通过逻辑分 析仪来记录这些信号的变化,然后与标准的firmware的汇编list文件对比,从而 统计测试程序对firmware的行覆盖率。这里需要设计脚本来自动完成这种分析, 这种方法对于检验firmware的行覆盖率将得到比较满意的结果。 4.8.2测试方法及流程 这种基于逻辑分析仪的流程分为下面几个步骤: 连接逻辑分析仪端口与FPGA原形验证板上相关的信号,配置逻辑分析仪为 信号捕获模式。 运行每个测试程序的同时用LA记录每个抓取的波形文本文件。若有多个测试 程序则重复上面的过程。 全部测试程序运行结束,综合所有的波形文本文件为一个文件。运行覆盖率 分析脚本程序,即可生成覆盖率报告。 4.9小结 本章介绍了作者在基于lP验证的FPGA平台实现中的工作,包括了MCU验 证平台的研究,基于IP验证的FPGA平台架构的研究以及实现。介绍了SOC到 FPGA的转换策略,验证平台的FPGA实现流程,以及基于逻辑分析仪的 FIRMWARE覆盖率测试。目前该lP验证平台已经在FPGA上获得成功应用,有 多个IP获得成功的验证。 69 5结束语 5.1本文工作总结 随着半导体工艺技术的日益提高,集成电路设计已向更小的线宽工艺挺进, 单片硅片上集成越来越多的晶体管,系统芯片已经出现并成为今后这个领域的目 标。作为当下及今后都有巨大市场的MCU来说,同样具有更高的工艺,更复杂 的集成度这个特点。作者有机会在英飞凌参与了充满挑战的MCU设计工作,结 合作者的项目实践,主要的工作总结如下: a.8位MCU体系结构研究。结合英飞凌XC866系列MCU,介绍了 MCU的体系结构,系统集成,以及相应的重要模块的功能。 b.LIN总线控制器的设计和验证。LIN总线控制器被广泛应用于汽车总线 领域,结合LIN总线控制器的开发,本文介绍了LIN控制器的协议, 架构设计,关键技术点实现以及LIN控制器的综合。 £ c. ADC数字接口的设计和仿真。从概念设计的角度,参考英飞凌ADC 的架构特点,介绍了如何实现这种数模接口,并介绍了实现ADCDIG 的关键技术要点。 d. 提出了基于FPGA的IP仿真验证平台架构,实现了从SOC环境向 FPGA的转换,完成了概念设计,系统集成和相关重要lP的修改,并 最后在FPGA上实现。在实现时,以作者参与设计实现的LIN控制器 以及ADC数字接口在该IP验证平台验证,该平台快速地实现了这几 个lP的验证计划。最后还介绍了基于逻辑分析仪的Firmware行覆盖 率测试思想。 5.2今后的展望 MCU的发展及将来就是SOC,即集成更多的IP,使用更高的工艺。因此 它对系统集成技术,系统架构,软硬件协同验证的要求越来越高,今后的工 作将集中在这方面,研究实现MCU更优良的架构,更有效率的验证手段,更 先进的工艺,更高的集成度,更低的功耗。 70 些』E l些厶堂亟±堂垃迨塞 叁耋塞丛 6参考文献 【1】Prakash Rashinkar.。系统芯片(SOC)验证方法与技术”【M】.电子工业出 版社,2005. 【21 Michael Keating,Pierre Bdcaud.“片上系统一可重用设计方法学(第三 版)”【M1.电子工业出版社,2004. 【3】Mohammed Hawana,Rindest Schuten。“Testbench Design,A Systematic Approach."is].Synopsys Professional Services. 【4】Bart Vanthoumout,Serge Goossens,Tim Transaction-level Models in SystemC”.CoWare。Inc. Kogel.“Developing 【515 Synopsys.“Verification Intellectual Property(IP)Modeling Architecture- Guide to Structured Development Using OpenVera”.Version 1.1.May 2002. 【6】Etienne Lantreibecq,Bernard Rarnanadin,Pierre Coulomb.Francois Pogodalla.“Fast Prototyping:a system design flow applied to a complex System—On—Chip multiprocessor design” 【7】Brian Bailey.。适合数百力』门级SoC设计的可扩展验证方法。.Mentor Graphics. [8]李刚炎.于翔鹏。“CAN总线技术及在其在汽车中的应用”.中国科技 论文在线. 【9】CAN Specification 2.0,Part A,Part B. 【101 Http://www.1in-subbus.de/linpdf.“LIN Specification Package Revision 2.0”. 【1 1】Jan M.Rabaey,Anantha Chandrakasan,Borivoje Nikolic.“Digital Integrated Circuits A design Perspective(Second Edition)”,清华大学出版社,北 京. 【12]Pre“minary e Language Refence Draft. 【1 31 Wolfgang Klingauf.。Systematic Transaction Level Modeling of Embedded Systems with SystemC”.Proc.IEEE. 71 【14】Stuart Swan。“An Introduction to System Level Modeling in SystemcC 2.0”.Cadence Design Systems.Inc May 2001. 【1 5]L.Cai and D.Gajski.Transaction Level Modeling:An Overview.Proc. coDES+ISSS,October 2003. 【1 6]“Function Specification for SystemC 2.04,Version 2.O—Q,April 5仇 2002 available at www.systemc.orq 【1 7]Deshanand P.Singh.。Techniques FOR TIMING CLOSURE ON HIGH- SPEED FILED PROGRAMMABLE GATE ARRAY”.University of Toronto. 【181邬旭永,凌魏,张克亮.“利用IP Workbench结合SystemC构建复杂芯 Documentation.—www.xili—nx.com。 片系统验证平台”.华为技术有限公司固网逻辑部. 【19】XILINX Online [20l https://solvnet.synopsys.com/。 [211 Janick Bergeron."Writing Testbenches Functional Verification of HDL models”.Kluwer Academic Publishers. 【22】Infineon Technologies.。XC866 8-Bit Single Chip Microcontroller。。 Internal Target Specification,V2.1” f23]荆元利.“DSP微处理器结构研究”。西北工业大学硕士学位论文, 2002年,3月 [24】农英雄,“基于FPGA的8051SOC设计”,东北大学硕士学位论文, 2006 【25】牛风举,刘元成,朱明程.“基于IP复用的数字lC设计技术”,电子工 业出版社,2003. 凸jt!些厶:兰亟±堂位迨塞 蕴盘迨塞塑!叁地型丛鱼猩选塑 攻读硕士学位期间发表的论文 【1】黄锐,宋强.LIN总线控制器的关键技术研究与实现,航空计算技术, ‘ 2007(1). 73 7致谢 在论文工作结束之际,回首这两年多的研究生生活,我觉得要感谢很多师 长,朋友和同学的帮助和支持。 感谢西工大航空微电子中心的樊晓桠老师,中国航空计算所的宋强老师的 帮助,在论文的写作过程中积极的指导,支持与鼓励。 感谢西工大航空微电子中心张盛兵等老师认真负责的教学指导。 该课题是结合在德国英飞凌西安研发中心的工作项目展开的,该课题的开 展。进行得到了英飞凌汽车电子事业部领导的支持,在英飞凌优良的工作环 境和培训机制下,使得项目得以顺利完成,使我真正得以进入集成电路设计 这一充满挑战的领域。因此我要感谢英飞凌汽车电子部门高级经理付辉, MCU设计组经理张雷给我提供了这个有挑战性的工作机会。同时感谢设计组 的其他同事,在我在工作上遇到困难时无私的帮助。 最后我要感谢我的家人,始终支持和鼓励我,使我能够安心学习和工作。 74 西北工业大学业 学位论文知识产权声明书 本人完全了解:学校有关保护知识产权的规定,即:研究生在校攻读学位期间论文I作的 知识产权单位属于两北l:业人学。学校有权保留并向国家有关部f J或机构送交论文的复印件 利电子版。本人允许论文被查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时本人 保证,毕业后结合学位论文研究课题再撰写的文章一律注明作者单位为硝北T业人学。 保密论文待解密后适用本声明。 张Ⅲ 学伉论文作者签 一叶7年 ‰,4 指导教师签名 砂。七 一¨7年4月三日 西北工业大学 学位论文原创性声明 秉承学校严谨的学风和优良的科学道德.本人郑重卢明:所早交的学位论文,是本 人在导师的指导下进行研究T作所取得的成果。尽我所知,除文中已经注明引用的内容 和致谢的地方外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成 果,不包含本人或其他己申请学位或其他用途使用过的成果。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式表明。 本人学位论文与资料若有不实,愿意承担一切相关的法律责任。 75 8位MCU架构研究及基于FPGA的IP验证平台实现 作者: 学位授予单位: 黄锐 西北工业大学 参考文献(25条) 1.Prakash Rashinkar 系统芯片 (SOC) 验证方法与技术 2005 2.Michael Keating.Pierre Bricaud 片上系统-可重用设计方法学 2004 3.Mohammed Hawana Rindest Schuten o "Testbench Design,A Systematic Approach." 4.Bart Vanthournout.Serge Goossens.Tim Kogel Developing Transaction-level Models in SystemC 5.Synopsys "Verification Intellectual Property (IP) Modeling Architecture- Guide to Structured Development Using OpenVera".Version 1.1 2002 6.Etienne Lantreibecq.Bernard Ramanadin.Pierre Coulomb.Francois Pogodalla Fast Prototyping:a system design flow applied to a complex System-On-Chip multiprocessor design 7.Brian Bailey 适合数百万门级 SoC 设计的可扩展验证方法 8.李刚炎.于翔鹏 CAN 总线技术及在其在汽车中的应用 9.CAN Specification 2.0,Part A,Part B 10.LIN Specification Package Revision 2.0 11.Jan M Rabaey.Anantha Chandrakasan.Borivoje Nikolic Digital Integrated Circuits A design Perspective 12.Preliminary e Language Refence Draft 13.Wolfgang Klingauf Systematic Transaction Level Modeling of Embedded Systems with SystemC 14.Stuart Swan An Introduction to System Level Modeling in SystemcC2.0 2001 15.L Cai.D Gajski Transaction Level Modeling:An Overview 2003 16."Function Specification for SystemC 2.0",Version 2.0-Q 2002 17.Deshanand P Singh Techniques FOR TIMING CLOSURE ON HlGH.SPEED FILED PROGRAMMABLE GATE ARRAY 18.邬旭永.凌魏.张克亮 利用IP Workbench结合SystemC构建复杂芯片系统验证平台 19.XILINX Online Documentation 20.查看详情 21.Janick Bergeron Writing Testbenches Functional Verification of HDL models 22.Infineon Technologies XC866 8-Bit Single Chip Microcontroller:Internal Target Specification,V2.1 23.荆元利 DSP处理器系统结构研究[学位论文]硕士 2002 24.农英雄 基于FPGA的8051SOC设计[学位论文]硕士 2006 25.牛风举.刘元成.朱明程 基于lP复用的数字IC设计技术 2003 相似文献(10条) 1.学位论文 任芳 广播发射机微控制器测试平台的设计和实现 2006 近年来,随着科学技术的迅速进步,自动化的发展进入了一个新的时期。广播发射机实现自动化与智能化是当今世界的发展趋势和技术要求。在这 种情况下,广播发射机微控制器应运而生。广播发射机微控制器作为广播发射机的重要组成部分,其能否正常运行关系到广播发射机能否正常工作。为 了方便快捷的检测发射机微控制器是否出现故障,研制开发一套微控制器测试平台显得很有意义。 本文研究的内容主要包括以下几个方面:(1)从分析测试平台的意义及功能要求着手,确定了测试平台应该具备的检测控制器软硬件故障的功能。具 体功能包括测试广播发射机控制器的开关机流程;能输入和输出模拟量、开关量以此来检测发射机控制器数据采集是否正确;检测控制器对发射机出现 故障后采取的保护措施的正确性。(2)进行系统的总体框架设计,结合该测试平台的实际情况,采用了上位机/下位机模型。下位机负责将来自广播发射 机控制器的控制命令传给上位机,并且执行上位机所发出的指令。上位机负责人机交互、整个测试过程的处理等工作。(3)从硬件方面和软件方面对测试 平台进行了阐述。硬件方面详细介绍了电路原理设计,电路元器件的选用等。在对微处理器进行选择后,根据发射机控制器的输入输出通道的特点,确 定了测试平台的输入输出通道以及人机接口;软件方面则根据系统所要完成的功能并结合硬件电路,将其划分为三大部分,即上位机程序、下位机程序 以及上下位机的通信程序,并分别对三部分程序的具体功能进行了详细的阐述。(4)介绍了测试平台所采用的抗干扰措施。 在系统设计过程中,主要采用了在微机测控系统中广泛应用的单片机技术、输入输出接口技术、抗干扰技术和通讯技术。 2.期刊论文 曾艳婷.韩震宇.刘敬露 基于LabVIEW的界面设计——广播发射机微控制器测试平台 -计量与测试技术 2007,34(9) 本系统中选用了LABVIEW开发环境,用LabVIEW开发虚拟仪器主要分两个部分:前面板的设计和框图程序的编写.前面板的功能等效于传统测试仪器的前 面板;框图程序等效于传统测试仪器与前面板相联系的硬件电路.本文主要讲系统的五大模块及其在LABVIEW下的实现过程. 3.学位论文 史涛 用于轮速传感器性能测试平台的嵌入式以太网接入服务器设计 2007 汽车传感器性能测试平台是汽车传感器生产企业必备的重要设备。随着网络技术的迅速发展,基于网络的远程监控已经成为这类测试平台的一个必 然发展趋势。鉴于目前很多测试设备只提供串行通信接口的情况,本文研究了具有多个串口型测试设备的轮速传感器性能测试平台实现远程监控的方法 ,提出了一种利用嵌入式以太网接入服务器将串口型测试设备接入以太网的方法,研制出了一种适用于远程测控系统的嵌入式以太网接入服务器。 论文首先分析了轮速传感器性能测试平台的工作原理和特点,提出了一种成本低廉、结构简单的基于嵌入式以太网接入服务器的客户-服务器模式的 网络化测试平台方案。 论文深入研究了该网络化测试平台的关键设备--嵌入式以太网接入服务器在国内外的发展状况和解决方案,设计了出一种面向测试系统的基于"8位 微控制器+以太网控制器+精简TCP/IP协议栈"的低成本嵌入式以太网接入服务器,该服务器能对外提供一个10BaseT以太网接口和四个RS-232串行口。该 服务器以ST公司微控制器uPSD3254以及Realtek公司RTL8019AS以太网控制器为核心器件,硬件结构简单,成本低廉。论文详尽描述了服务器各硬件电路 模块的设计与实现。 实现嵌入式以太网接入服务器最大的技术难点是如何在处理能力较弱、存储器资源紧缺的微控制器平台上实现复杂的TCP/IP协议。为此,论文研究 了标准TCP/IP协议栈的简化和裁剪问题,得到了一套仅包括ARP、IP、ICMP、TCP等基本协议的精简TCP/IP协议栈,并给出了协议栈在8位微控制器中的具 体实现。 另外,作者对轮速传感器性能测试平台中各串口型测试设备通信方式进行了研究,提出了适用于该测试平台的应用层协议。通过合理定义应用层报 文格式和应用层协议机制,使服务器能够在满足系统响应速度要求的前提下,减少对信道的访问次数,降低网络拥堵的概率。作者充分利用了 uPSD3254微控制器的IAP在应用编程功能,通过自定义"在线组态"报文,实现了服务器RS-232串行口属性的在线组态,使用户能够在远程管控计算机上对 服务器RS-232串行口的波特率、缓冲区大小等属性参数进行灵活方便的在线组态,以适应不同的串口型测试设备。论文对应用层协议的定义及实现进行 了详细的阐述。论文还对软硬件调试过程中出现的问题进行了分析,提出了具体的解决方法。 论文最后对嵌入式以太网接入服务器的设计进行了总结,并指出了尚需完善之处。 4.学位论文 王钦玉 电力系统综合保护器嵌入式测试平台的研究及实现 2008 继电保护装置是保障电网安全运行的重要设备,而由继电保护装置自身问题造成的误动或拒动,将会严重地影响电网安全稳定运行,而继电保护设 备测试平台有利于提前检测出继电保护设备的隐患,从而提高了继电保护装置的质量,因此对提高电网安全水平有着积极的现实意义和经济意义。 为提高常州利安矿用设备厂所生产的某型号矿用智能综合保护器的可靠性,在全面深入地分析国内外继保设备测试仪现状的基础之上,针对该型号 保护器特点,设计实现了针对该保护器的嵌入式专用测试平台。 本文采用了嵌入式系统的设计方法进行开发与实现。该测试平台的硬件以ARM体系结构的嵌入式微控制器LPC2292为核心,采用由上而下和由下而上 相结合的设计方法,配以必要的外围电路,并且在设计中突出了硬件的抗干扰性能、可扩展性能和可自检性能。软件以嵌入式实时操作系统 (RTOS)μC/OS-II为基础,采用层次化、模块化的设计方法,实现一个操作界面友好、实时性强、可移植性和可维护性高的嵌入式软件系统。 经现场应用,与原有的测试手段相比,本测试平台提高了对综合保护器的测试效率和测试精度,从而大大提高了综合保护器的性能。 5.期刊论文 任芳.吴荣珍.韩震宇 广播发射机微控制器测试平台的研制 -计量与测试技术2006,33(2) 本文介绍了通过单片机进行广播发射机微控制器测试平台研制的过程,包括系统硬件的主体设计和软件的设计,重点论述了系统的硬件设计. 6.学位论文 王道富 8位微控制器核的设计与实现 2004 随着深亚微米工艺技术的迅速发展,集成电路设计已经进入片上系统(SoC)时代,各种32位、64位的CPU也已经问世.与大多数高科技的发展进步不同 ,高性能处理器技术的进步并未导致已有的8位微控制器遭受遗弃.原因是随着时间的推移,它们加速了集成化、增加了用于处理标准通信的外围元件并改 进了开发工具,加之Flash ROM、JTAG等工艺技术的采用,都令这些现有的微控制器的使用变得更加容易.8位微控制器在汽车电子、消费电子、工控、通信 、IC卡等诸多应用中仍有不可替代的优势.该文首先简要介绍了MCU的发展史,阐述了8位MCU的技术现状以及未来的发展空间.然后详细论述了一个面向 IC卡应用的8位MCU的设计实现过程,应用该文搭建的自动化的测试平台,对设计进行了充分的仿真验证.之后,应用TSMC 0.25 μm CMOS工艺以及无锡上华 的0.6μm CMOS工艺进行了综合和综合后仿真.在综合过程中插入了扫描链,通过后仿真后,进行了自动测试向量的生成(ATPG)和故障模拟.为了检验MCU的 性能,该文通过编写DES加解密程序,与8051在代码量和运行时间上进行了对比.同时该文给出了使用PERL语言编写的汇编器和软件仿真器.该文还基于 MICROCHIP公司的PIC16C57的MCU,定制了一款适合低端应用的MCU,完成了RTL级的设计、仿真和综合.并以该MCU为核心,给出了一个实现USB低速接口的芯 片实现方案. 7.学位论文 朱良辰 8位高性能微控制器的设计与实现 2004 本文从SDZX-MV01的模块划分、代码编写到功能验证给出了一个完整的设计流程.在研发过程中,笔者提出了若干新颖独特的思想并成功地应用于 SDZX-MV01.在控制单元的设计中,本文提出用多时钟体系结构代替传统的状态机方法设计微控制器的控制流,使SDZX-MV01具备四时钟周期/机器周期的高 速内核,同频下其速度是标准8051的3~6倍.提出改进的步长计数译码方法实现指令译码,以避免控制信号生成时在时间与空间上的交叠带来的复杂性,从而 实现了高度的并行性.传统的微控制器通常采用串行菊花链中断结构,每次都要按照优先级顺序串行查询中断源,在中断源较多或需要快速实时处理的场合 ,无法满足中断响应时间的要求.因此本文采用并行优先级的中断结构,设计了两优先级10个中断源的中断系统,使SDZX-MV01能快速地响应中断.此外,本文 提出了一种独特的硬件堆栈跟踪方法,能使系统的堆栈容量大大提高;提出了一种具有5种工作模式的系统功率管理设计方案,使SDZX-MV01非常适合低功耗 领域的应用;提出了一种可对系统进行多源复位,并提供复位源查询功能的管理方案,使SDZX-MV01具备在多种情况下防止运行出错,提高系统安全运行的能 力;在分析标准8051数据传输瓶颈的原因后,设计了一种采用双DPTR数据指针和双64KB页指针DPP的数据传送设计方案,从而大大提高了MOVX数据传送的速 度;设计了16MB外部RAM寻址功能,使SDZX-MV01具备大范围的数据寻址,而标准8051仅能提供64KB的寻址;通过本论文的研究,还给出了一种软硬件测试平台 的搭建方法和ASIC综合的策略.本文设计的SDZX-MV01 MCU核,已通过了完整的软件仿真验证和FPGA硬件验证,目前正在上华(CSMC)进行全静态CMOS 0.6μm工艺的ASIC流片.本文提出的设计方法和思想对设计MCU具有实际的参考价值和应用意义. 8.会议论文 李响.李广军 一种低功耗微控制器验证与测试 2007 本文介绍了一款8位哈佛总线RISC结构低功耗MCU的功能仿真和FPGA上的测试和验证。在其成功流片和封装完成后,对其进行了在板的功能测试和功耗 测试。并且,以MCU硬件测试平台为基础,成功实现了一个无线传感器网络。 9.学位论文 王财寿 汽油机电控单元原理机的研制 2008 我国汽车工业高速发展,已成为国民经济的支柱产业。随着能源和环保政策限制力度的加大,不断创新、开发汽车发动机电控产品是汽车领域发展 的必然。目前,国产汽车发动机电控系统产品还是空白,因此发动机电控系统产品的自主研发势在必行。 本文对汽油机电控系统的核心部分(电控单元)进行了研究。主要研究内容包括剖析国外成熟电控系统产品、自主设计电控单元原理机的软硬件、 搭建试验平台进行模拟测试及台架试验。全文具体工作内容如下: ⑴ 剖析赛欧轿车配套的Delphi/ITMS-6F电控系统。通过查阅资料、信号采集与测试等手段,逐一分析ITMS-6F电控系统中传感器输出信号和执行器 驱动信号的特征以及ECU的控制功能,建立电控单元原理机的软硬件设计方案。 ⑵ 设计电控单元原理机的硬件电路。包括微控制器的选型、输入级传感器信号处理电路设计、输出级执行器功率驱动电路设计、微控制器系统电路 设计等,同时对ITMS-6F原配线束接口进行了改装以便与电控单元原理机连接。测试结果表明,传感器信号处理电路抗干扰能力强、精度高;执行器驱动 电路集成度高、可靠性好;微控制器运算速度快,实时性强。 ⑶ 设计电控单元原理机的软件程序。软件的开发采用正向设计的手段,通过采集、分析台架试验相关数据,结合汽油机工作原理等知识,制定软件 控制策略。完成的软件功能模块主要包括58X信号控制逻辑、点火控制、喷油控制及起动、暖机、怠速工况控制等。程序采用模块化设计方法,具有条理 清晰、可读性强,可靠性高及移植性好等特点。 ⑷ 测试电控单元原理机的软硬件并匹配479QE发动机进行台架试验。第一阶段通过搭建模拟测试平台,利用模拟信号发生装置进行电控单元原理机 软硬件前期开发的调试;验证自主设计的电控单元原理机的可靠性及可行性后,匹配479QE发动机进行第二阶段的台架试验,包括发动机的起动性能试验 、暖机过渡性能试验和怠速稳定性试验。 10.学位论文 周亮 无线传感器网络低功耗节点控制器芯片设计与实现 2007 近年来,随着传感器技术、微机电系统技术、嵌入式系统技术、现代无线通信技术、网络技术、分布式处理技术等的发展,形成了无线传感器网络 这一前沿交叉学科,它在军事、医疗、环境监测等领域具有很高的应用价值。 无线传感器网络利用分布于监测区域内的各终端节点进行原始信息数据的采集,然后通过自组织多跳路由网络传送至网关节点,最后通过多类型接 口传送至网关计算机并接入其他通用网络,在远程的监控终端利用信息汇集与管理软件平台实现对监测范围内的事件监控。 在无线传感器网络中大量分布的节点是其主要组成部分,在现有各类节点设计中主要采用在嵌入式领域广泛应用的一些通用处理器单元作为控制核 心,而没有针对无线传感器网络的应用开发专用的控制器芯片,这使得在节点设计中会受到体积、功耗等方面的限制,而在系统资源利用方面又难免会 造成一些浪费,因此开展无线传感器网络专用低功耗节点控制器芯片的设计具有重要的研究意义和应用价值。 本文主要介绍了一种无线传感器网络低功耗节点控制器芯片的设计与实现,该芯片采用了8位哈佛体系结构,使用与ELAN公司:EM78系列MCU兼容的 RISC指令集,利用仿真器平台及FPGA平台完成了节点系统构造,然后以SMIC 0.18微米CMOS工艺完成了ASIC设计。最后以它作为低功耗节点专用控制器实 现了节点平台的搭建,构建了一个通用无线传感器网络。 本文首先对无线传感器网络及数字系统低功耗设计的基本理论进行了研究和讨论,接着基于上述理论进行了无线传感器网络节点的软硬件设计以及 多个测试平台的实现,并重点讲述了低功耗节点控制器的RTL设计与实现,然后开展了该控制器的后端设计,给出了设计版图,最后利用FPGA平台对该节 点控制器进行了验证及测试,给出了测试结果并进行了分析。实验分析及功能验证结果表明,该节点控制器满足系统功能需求,技术性能优良,达到设 计目的。 本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1034133.aspx 授权使用:北京理工大学(北京理工大学),授权号:cd929a22-61e4-4d28-91d4-9e1f0085774d 下载时间:2010年10月30日

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。