(电路与系统专业论文)基于mcore的开发系统构建及软硬件协同验证方法研究.pdf_第1页
(电路与系统专业论文)基于mcore的开发系统构建及软硬件协同验证方法研究.pdf_第2页
(电路与系统专业论文)基于mcore的开发系统构建及软硬件协同验证方法研究.pdf_第3页
(电路与系统专业论文)基于mcore的开发系统构建及软硬件协同验证方法研究.pdf_第4页
(电路与系统专业论文)基于mcore的开发系统构建及软硬件协同验证方法研究.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(电路与系统专业论文)基于mcore的开发系统构建及软硬件协同验证方法研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 _ 本文阐述了基于嵌入式m - c o r e 的s o c 丌发系统的构建,并提出了软硬件坍同验 证方法在本系统中的解决方案。文中首先介绍了m - c o r e 的基本原理并分析了一c o r e 的接口时序,然后给出了整个开发系统的硬件功能模块和相关软件设计过程。该平台 选用m o t o r o l a 公司的新一代3 2 位嵌入式内核m - c o r e 作为核心部件,具有多种外部 逻辑接口和功能部件,如总线控制器、可编程定时器、异步串行通信接口、复位控制 逻辑、中断管理器等,以a i t e r a 公司a p e x 系列大容量f p g a 芯片为实现载体,并辅 以一些必要的外围器件。论文最后对软硬件协同验证方法在本系统的实现以及嵌入式 实时操作系统在本系统中的应用进行了研究。 关键词:m - c o r es o c 嵌入式系统协同验证 a b s t r a c t t h i sp a p e rg i v e st h ed e s i g no fd e v e l o p m e n ts y s t e mb a s e do nm c o r ea n dp r e s e n t sa s o l u t i o ns c h e m eo ft - i w s wc o - v e r i f i c a t i o ni nt h es y s t e m t nt h ed i s s e r t a t i o nt h ep n n c i p l e a n dt i m i n gc h a r a c t e r i s t i co fm - c o r ea r ei n t r o d u c e da n da n a l y z e df i r s t l y t h e nt h ed e s i g n p r o c e s so ft h ef u n c t i o n a lp a r t sa n dt h es o f t w a r ec o d e si sd i s c u s s e d t h eb a s i cp l a t f o r mo f t h es y s t e mi sc o m p o s e do fak e m e lc o m p o n e n t mc o r e ,s e v e r a ls e l f - d e s i g n i n gf u n c t i o n a l p a r t s ,s u c ha s , ,b u sc o n t r o l l e r , p r o g r a m m a b l ei n t e r r u p tt i m e r , u a r t , r e s e tc o n t r o l l e ra n d i n t e r r u p tm a n a g e r ,e t c ,w h i c ha r ei m p l e m e n t e di nt h em a s sc a p a c i t yf p g ao fa i r e r a s a p e xs e r i e sl o g i c w i t h v h d l ,a n do t h e ra c c e s s o r i e s a tl a s tt h e i m p l e m e n t a t i o n o f c o 。v e r i f i c a t i o na n dt h ea p p l i c a t i o no fr t o si nt h ep l a t f o r mi sb r o u g h tf o r w a r d k 吖w o r d s :m c o r es o c e s ( e m b e d d e ds y s t e m )c o v e r i f i c a t i o n 绪论 在信息化技术高速发展的今天,计算机技术、通信技术、消费电r i h1 趋止融 合,些新的产品祁设备不断面世,给人类社会生产和人们的生活带来了极人的改观, 而人类的需求又反过来促进产品的不断更新、新技术的出现。在电子系统设汁领域, 设计方法已经发生了革新,从电路集成、功能集成、技术集成直至今天基于计算机软 硬件的知识集成,其目标是将电子产品系统电路不断集成到芯片中去,力图吞噬整个 产品系统。单片系统( s o c ) 的出现可以最大化的简化电路设计,它把电子系统的可 靠性、低功耗等都解决在i c 设计之中,系统设计工程师可集中精力研究对象领域中 的问题,s o c 势必成为现代电子系统设计的最佳选择。s o c 的成功实现不再是单一学 科的问题,它是多学科交融、渗透的结果。传统的、基于标准单元库的设计方法己被 证明不能胜任s o c 的设计;现行的面向逻辑的集成电路设计方法在深亚微米集成电路 设计中遇到了难以逾越的障碍;芯片设计涉及的领域不再局限于传统的半导体而且必 须与整机系统结合;集成电路设计工程i j i l q l ;从来没有像今天这样迫切地需要汲取新知 识,特别是有关整机系统的知识。所以面向s o c 的新一代集成电路设计、协同验证方 法学研究对于推动集成电路的发展是至关重要的。 一、嵌入式系统与s o c 设计方法学 嵌入式系统是指作为某种技术过程的核心处理环节,能直接与现实环境接口或交 互的信息处理系统。确切的说,在这种应用环境中,信息处理系统处于嵌入式工作状 态,即时亥就绪与环境互动,是实时工作方式;它是面向用户、面向产品、面向应用 的,和通用计算机产品不同,嵌入式系统是针对具体运用的专用系统。嵌入式系统是 计算机高度专用化的产物,它是由软硬件组成的专用控制系统,它以硬件为平台,软 件为核心实现系统所需的控制功能,这是区别于其它系统的一大特点。 嵌入式技术不仅大量应用于计算机技术和产品中,还被广泛应用在信息技术的各 个设计领域,以嵌入技术为基础的s o c 是电子设计工程师追求的目标,也是嵌入式系 统发展的必然趋势。 在经过多年的争论之后,专家们最终就s o c 的定义达成了比较一致的意见,一个 集成电路芯片如果具备如下特性的话,那么可以称其为s o c 。这些特性是: 1 实现复杂系统功能的超大规模集成电路; 2 采用超深亚微米工艺技术; 3 使用一个或数个嵌入式c p u 或数字信号处理器: 4 具备外部对芯片进行编程的功能: 5 主要采用第三方的i p 核进行设计。 这样的定义决定了s o c 的设计必须采用与现在的集成电路设计十分不同的方法, s o c 设计方法学的内容可以简单地归纳为如下三点: i p 核生成及复用技术、超深哑 i , ej 。0 的曙发乐! 先糊址搜软地f 0m 川i 5 玲h ij 7 、i , i i l 激米集成电路设计技术( 有时又称纳米级电路设计技术) 平软硬件”冲_ j 设计技术。 p 核实际上就是一个经过验证的集成电路设汁,从其实现的形和j 、v 删i ;次f : 柬吞,旧核可以有三种不同的表现形式:软核( s o f t c o r o ) 、旧核( r m cc ,r e ) 和硬 竣( w w d c o r e ) 。软核以硬件描述语言的方式提交,其性能通过时序模拟进行验证。 由于软核不依赖于任何实现工艺或实现技术具有很大的灵活性。硬核以集成f 乜路版 图( l a y o u t ) 的形式提交,并经过实际工艺流片验证。显然,硬核强烈地依赖于某一个 特定的实现工艺,而且在具体的物理尺寸,物理形态及性能上具有不可更改性,因而 灵活性最差。处于软核和硬核之间的固核以电路网表( n e t l is t ) 的形式提交并通常经 过了硬件验证,固核往往对应于某一个特定的实现工艺,在该实现工艺的条件下固核 具有最优的面积和性能特性。i p 复用技术是一个越来越各受关注的课题,由于现行 的电子系统设计中,尤其是规模在数百万门甚至更高的系统级芯片设计中,不可能一 切从头开始,要将设计建立在较高的层次上,最大化地进行设计资源重用,只有这样 才能较快地完成设计,保证设计成功,满足市场需求。 超深亚微米集成电路设计技术是深亚微米集成电路设计技术的延伸。人们在跨入 超深亚微米时代的时候,实际上尚未彻底解决深亚微米阶段的关键课题并且还面临 些新的问题。连线延迟大于门延迟引起的设计迭代问题仍然困扰着设计人员。另外, 由于特征尺寸缩小后,信号延迟变小,工作频率提高带来的信号完整性问题。传统的 基于布尔代数的数字集成电路设计理论已经无法解决这些问题,必须要从简单的面向 逻辑,转向吸引其它相关领域的理论,形成新的理论体系。 软硬件协同设计( h a r d w a r e s o f t w a r ec o d e s i g n ) 课题的提出已有多年的历史, 但是早期的研究多集中在针对一个特定的硬件如何进行软件开发或根据一个已有的 软件实现具体的硬件结构。前者是一个经典的软件开发问题,软件性能的好坏不仅仅 取决于软件开发人员的技术水平,更有赖于所使用的硬件平台:后者是一个在充分理 解软件的内在功能之后完全用硬件来实现软件的功能。面向s o c 的软硬件协同设计理 论是从一个给定的系统任务描述着手,通过有效地分析系统任务和所需的资源,采用 一系列变换方法并遵循特定的准则自动生成符合系统功能要求的,符合实现代价约束 的硬件和软件架构。这种全新的软硬件协同设计思想需要解决许多以前没有碰到的问 题,如:系统的描述方法、最优化原则的确定、功耗及软硬件的协同验证方法等问题。 二、软硬件协同验证技术 软件和硬件协同验证在s o c 设计中是一种必然需要和趋势。通常,嵌入式软件的 刀= 发会滞后于硬件开发,特别是软硬件的集成调试,必须等到物理原型生产出来以 后。所以无法在设计的早期发现软硬件接口之白j 的问题。一旦硬件原型有错,修改 后还必须重新生产,然后再进行调试。整个设计过程排错困难,周期长,投入高。 软硬件协同验证技术使项目开发小组在物理原型( s o c 及嵌入式系统) 生产出来 莳,就能够使用同个系统模型进行高性能的软硬件协同验证,使软件和硬件肝发成 为并行的过程,从而及早发现并改正软硬件接口中的错误,缩短设计用j f ,减少投入。 通过半定制可编程逻辑器件e p l d f p g a ,采用i p 核,用硬件描述语。j 求1 史现s t ) c 足一条十分有效的途径。除了直接实现s o c 外,通过半定制器件、e d a 力法,还j 为 l c 设计提供虚拟s o c 的设计、模拟仿真,完成s o c 全定制集成电路设计的盼姗验证 工作。 可编程逻辑与处理器集成时,存在一些重要的设计考虑。两种类型器件采用不同 的设计语言。f p g a 采用硬件描述语言( h d l ) 进行设计,而微控制器一般执行用c 语 言编写的代码。编写微控制器c 代码的工程师可以调试程序设置断点并单步执行代 码,从而准确地找出程序运行时所发生的问题。逻辑设计师采用仿真器仿真h d l 的行 为,并显示验证波形。问题在于如何将这两种不同的设计流程融合在一起。 目前的市场上缺乏既可以对可编程s o c 上的微控制器代码进行调试,又可以同时 实现片上可编程逻辑仿真的工具。a r m 、m i p s 和p o w e r p c 都具有片上调试能力。然而, 设计人员无法知道调试期间的f p g a 正在做什么。而且,以这种方式调试硬件,需要 设计一个样机板,整个过程需要几个月,这将增加产品开发所需的时间。 传统的f p g a 设计流程依赖于h d l 代码的仿真。可以仿真可编程s o c 上的微控制 器和f p g a 的h d l 。这种验证技术的缺点是h d l 仿真不提供任何一种相对容易的代码 调试能力。事实上,固件调试是很困难的,在h d l 仿真环境下,对微处理器芯核进行 仿真时,设计人员几乎不能访问代码。很难设置断点或识别高级代码的任意特定段如 何与f p g a 逻辑交互作用。为了定址特定的代码段,设计人员必须定址波形分析仪中 的十六迸制代码,并借助微控制器数据手册,“反设计”( r e v e r s ee n g i f l e e r i n g ) 这些代码,从而识别相应的代码段。只有极少数设计人员有时间做此类的检验工作。 尽管,传统的微控制器设计流程包括调试程序( 指令集仿真器) 的使用,调试程序 允许设计人员单步执行一行代码,设置断点并观察微处理器芯核内的内部变量和寄存 器。然而,微控制器调试程序本身不能对可编程s o c 的f p g a 部分的逻辑设计进行分 析。因此,用普通的微控制器设计流程不能识别两者之间的交互作用。 为解决这一问题,a t m e l 公司在其s y s t e md e s i g n e re d a 工具套件中提供了一种 基于软件模拟的协同验证环境。s y s t e md e s i g n e r 无缝集成了a t m e l 的f p g a 设计工 具、第3 方的h d l 仿真器、a v r 微控制器指令集仿真器和调试工具。这种组合允许设 计人员对高级c 语言微控制器代码和f p g a 逻辑设计进行协同仿真。在逻辑仿真期间, 可直接调试c 或汇编语言的a v r 代码。协同验证则允许设计人员在构建样机板之前验 证代码、逻辑和它们的交互作用。协同验证程序允许h d l 仿真器和a v r 指令集同时仿 真和交互运行。 三、课题研究背景与目标 m c o r e 是美国m o t o r ( ) l a 公司的: 2 位微处理器的核也、设汁,sz j 以作为f p 陔川r 嵌入系统及s o c 中。l o t o r 0 1 a 公司于2 0 0 0 年8 月与中圈f 青息产、i k 部签定了合作矫 忠求:m o t o r o l a 公司愿意与信息产业部所推荐的中吲仑业合作,f j 、助这b 食, i k 儆掂 中国i 场需求,在中国丌发自己的微处理器技术,m o t o f o l a 公司愿意尤偿提供一c 0 1 o 微处理器核心设计许可给中国信息产业部所选定的合作企业。 本文从m - c o r e 着手,不失一般性地研究基于嵌入式m - c o r e 的s o c 软硬件协同验 证丌发系统及方法。基于, m - c o r e 的开发系统是个基于硬件平台的实物模拟仿真器 其仿真性能更接近实际的目标系统,可作为产品系统开发过程中更有效的验证工具。 四、论文简介 本文的主要内容和结构安排如下: 第一章:嵌入式m - c o r e 及其开发系统的硬件设计方案。在介绍m - c o r e 的发展概 况、基本特征和硬件结构原理基础之上,分析了它的接口时序并提出了开发系统的硬 件设计方案。 第二章:核心接口模块的设计与实现。介绍了与m - c o r e 直接接口的i p 总线接口 模块、存储总线控制模块和中断管理器的设计过程和实现方法。 第三章:基本功能部件的设计与实现。在第二章的基础上,介绍了构建开发系统 所需的其他功能部件的设计和实现过程。 第四章:开发系统的软件设计。主要内容包括功能软件的实现和g n u 工具链在本 系统应用的研究。 第五章:软硬件协同验证方法研究及实现。研究软硬件协同验证方法,并且在此 基础上实现了基于m - c o r e 的软硬件协同验证系统,并对嵌入式实时操作系统在基于 m - c o r e 的开发系统中的应用进行了初步探讨。 第一章嵌入式m c o r e 及其开发系统的硬件设计方案 1 1 m - c o r e 的发展概况 自1 9 9 7 年i o t o r o l a 公司推出m - c o r e 系列嵌入式微处理器核中的第一个定点核 2 0 0 以来,至今已经陆续推出了m 2 1 0 、m 3 1 0 、1 3 3 0 、m 3 4 0 等。从早期只能支持定点 数处理已经发展到了支持对浮点数的处理,同时处理器的性能不断提升,功能也越来 越强大。以m 3 4 0 为例,它的片内集成了增强核m 3 1 0 、内存管理单元和高速缓冲存储 器( c a c h e ) 。 m - c o r e 系列产品自推出以来已经得到了广泛的应用,尤其是在无线通信、汽车 电子、消费电子等领域。2 0 0 0 年底,m o t o r o l a 公司才计划在中国推广m - c o r e ,国内 对m - c o r e 的研究和应用还处于起步阶段。 本文以m 2 l o 核作为构建基于m c o r e 的开发系统的核心部件,文中的t - c o r e 主 要指2 i 0 。 i 2 嵌入式微处理器核m - c o r e m - c o r e 采用精简指令集冯诺依曼体系结构设计。具有功耗低、代码密度高、 四级流水线、中断处理能力强等优点。它有两种工作模式:管理模式和用户模式( 二 者权限不同) ,可以更好地利用和保护系统资源。它支持快速中断、正常中断、向量 中断和自动向量中断并有用于中断处理的1 6 个3 2 位交换寄存器。可以满足众多嵌 入式系统应用的实时性要求。 一、m c o r e 的主要特征 1 ) 3 2 位l o a d s t o r er i s c 结构 2 ) 固定1 6 位指令长度 3 ) 【6 个3 2 位通用寄存器 t ) 大多数的指令能在单周期内执行完毕 5 ) 内存存取和分支指令仅需要两个周期 6 ) 支持字节、半字及字模式存取 7 ) 1 6 个专用寄存器支持快速中断 8 ) 支持向量和自动向量中断 一c o r e 采用4 级流水线技术。取指、译码寄存器读、执行和寄存器吲写以变叠 。! j 、1 cnru 内j t 段系统缃迎,史软岫f ,| 叭_ 【| j + 协l l 】0 汪1 l 丌j i n 方运行从而使大部分指令可以在1 个时钟心j 廿) 内完成。 图卜1m 2 1 0 原理框图 二、m 2 1 0 的硬件体系结构 2 1 0 原理框图见图卜1 所示。它主要由地址产生单元、指令处理单元和数据处 理单元构成。地址产生单元又由地址转移加法器、p c 增量器和地址选择器构成。转 移指令的e l 标地址计算与指令译码同步进行,从而降低了程序流转移时的延迟时间。 指令处理单元由取指和译码部分构成。数据处理单元由1 个3 2 位的算术逻辑单元、1 个3 2 位桶形移位寄存器及寄存器组构成。 寄存器组及其功能介绍( 见表卜1 所示) 1 ) 通用寄存器( r o r l j ) :存放操作数和计算结果并且能提供地址信息。 2 ) 交换寄存器( r i b 。r 1 5 ) :在处理对时间非常敏感的实时任务时,使用交换寄 存器组有较好的速度优势。程序正常执行时( 不是进行中断处理) 使用的是i 函_ , e t l 寄存 器组,中断发生时若使用交换寄存器组就不用对通用寄存器组进行保存,从而节省了 时间丌销。另外,r o 还兼作堆栈指针。 3 ) 程序计数器( p c ) :包含当前f 在执行指令的地址。在执指和异常处理过f l 中, 处理器自动增加p c 的值并且将新的值装入p c 。对于有些指令,p c 能够用作相对寻址 的指针。 4 ) p s r ( 程序状态寄存器、:存储处理器的状态和控制数据。它包含:j 2 个状态位, 如表卜2 所示。各状态位含义如下: s :管理模式位。s = l 为管理模式 f p m :浮点数控制位。 s d :预留扩展位。 v e c :中断号。 t m :跟踪模式位。 t p :跟踪请求位。 t c :位址解释控制位。 m :寻址地址失调异常屏蔽位。 e e :异常使能位。当e e :l ,使能: i c :中断等待控制位。 s = 0 为用户模式。 e e = 0 ,禁止。 i e :正常中断允许位。i e :l ,允许正常中断:i e = o ,禁止正常中断。 f e :快速中断允许位。i f = l ,允许快速中断:i f :0 ,禁止快速中断。 a f :寄存器选择位。a f :i ,选用交换寄存器组:a f = 0 ,选用通用寄存器组。 c :条件代码进位借位位。 m - c o f e 复位时p s r = o x 8 0 0 0 0 0 0 0 。 表卜1 寄存器组 通用寄存器组交换寄存器组其它寄存器 r 0r 0 。p c r 1r 1 p s r ( c r 0 ) r 2r 2 v b r ( c r l ) r 3r 3 e p s r ( c r 2 ) r 4r 4 。 f p s r ( c r 3 ) r 5r 5 e p c ( c r 4 ) r 6r 6 f p c ( c r s ) r 7r 7 s s 0 ( c f 2 6 ) r br 8 。 s s l ( c r y ) r 9r 9 。 s s 2 ( c r s ) r 1 0r 1 0 s s 3 ( c r 9 ) r 1 1r 1 1 s s 4 ( c r l 0 ) r 1 2r 1 2 g c r ( c r l1 ) r 13r 1 3 g s r ( c r l 2 、 r 1 4r 1 4 r 15r 1 5 。 表卜2p s i 状态位 状态位3 13 0 2 6 2 5 2 42 32 2 1 6 名称ss pf p ms p、仨c 状态位1 卜1 41 31 21 11 09e 名称 t mt pt cs ps cm me e 状态位 765d3 21o 名称i ci es pf es pa fc 5 ) v b r ( 向量基地址寄存器) :存放异常向量表的首地址。它的高2 2 位为有效数 据,低1 0 位为零( 以便于以后扩展) ,复位时,v b r 中的内容为零。 6 ) s s l s s 4 ( 管理存储寄存器) :用于管理模式下进行数据或指针存储,通过指令 m t c r 和m f c r 来寻址。这些寄存器在用户模式下不可访问。 7 ) 异常影子寄存器( e p s r ,e p c ,f p s r ,f p c ) :在异常处理时,备份p c 和p s r ,以便 异常返回时能回到原来的状态。 8 ) g c r ( 全局控制寄存器) :用于处理器外部设备和事件的全局控制。并在处理器 接口提供3 2 位并行输出用于控制目的。 9 ) g g r ( 全局状态寄存器) :用于报告处理器外部设箭科l 事件的状态。许拒处娜器 接u 提供3 2 位并行输入信号用于接收外部设备年事件的状态信息。 三、低功耗 m c o r e 是面向高性能、对功耗敏感的嵌入式应用设计的,尤其着重减小系统功耗, 这使一c o r e 很适宜于电池供电的便携式产品以及高温环境下的集成部件中。系统功 耗由各部分功耗构成,其中内存功耗所占比重最大。基于这一事实,m - c o r e 指令集 结构在总体性能和总功耗方面作了一定权衡,以求减少系统功耗,同时维持在定系 统时钟下可以接受的高性能。m - c o r e 采用全静态设计、动态电源管理和低电压( 2 j v ) 运行技术来实现这个目标。m c o r e 具有3 种低功耗模式:s t o p 、d o z e 、w a i t 模式。 同时它把这种低功耗机制提供给了外部逻辑,使它们可以在特定的情况下停止工作, 从而降低系统的功耗。 四、编程模式 m - c o r e 编程模式按照所能使用指令权限高低分为两种模式:管理模式和用户模 式。某些操作不能在用户模式下进行。用户程序运行在用户模式下,只能访问用户模 式下的寄存器,用户模式下可访问的寄存器包括通用寄存器组( 包括1 6 个3 2 位通用 寄存器) 、1 个3 2 位程序计数器和p s r 中的c 位( 条件进位位) 。系统软件运行在管 理模式下,可以访问所有的寄存器,并使用控制寄存器来完成管理功能。 大部分指令能够在上面的两种模式下运行,但是有些指令由于对系统运行状态有 较大的影响,运行这些指令有权限的限制,故只能在管理模式下运行。比如用户程序 不能执行s t o p ,d o z e ,w a i t 等指令。凡是能够改变p s r ( 程序状态寄存器) 中s 位( s :l 代表管理模式,s = o 代表用户模式) 的指令均有权限限制,另外对特定控制寄存器的 访问也不能在用户模式下进行。t r a p # n 指令为用户程序提供操作系统应用编程接口。 处理器在用户编程模式下进行正常的用户任务处理。在异常处理中,处理器把当 前的p s r 的值保存到影子寄存器e p s r 或者f p s r 中,并将p s r 的s 位置l 使处理器的 运行状态从用户编程模式进入管理编程模式。当异常处理完毕,系统程序执行指令 r t e ( 从异常返回) 或r f f ( 从快速中断返回) 使处理器回到异常处理前的状态。 上面提到访问不同寄存器需要不同的权限,事实上,处理器中所有的寄存器根掘 编程模式的不同分为两种访问权限:用户模式和管理模式。 五、异常处理 m - c o r e 的异常可分为两类:非计划中的异常和计划中的异常。前者主要是由内 部错误条件引起的,如:地址未对准错误、越权访问错误、非法指令错误等,这种异 常不是我们希望发生的,发生的概率很小,但是作为个强大而完善的处理器核,需 要提供一种机制来处理这种错误,将其对系统的损害降至最小。后者主要指嵌入式系 南京航空航大人。产坝卜f 口论文 统的任务- f ,断请求,它是计划中的事件。 m - c o f e 的异常处理主要体现在它强大的中断处理能力。m - c o r e 支持快速中断和 l 肼# 中断以及向量中断和自动向量中断。快速中断比正常中断的优先绂高,可以为多 任务处理分配不同的优先级。向量中断需要外部逻辑( 中断管理器) 提供中断号;而 自动向量中断不需要外部逻辑提供中断号。m c o r e 支持5 1 2 字节的向量空间共有 1 2 8 个异常向量( 每个向量占4 字节) 。其中有3 0 个异常向量作为m c o r e 的内部中断 使用,另外9 8 个异常向量由外部中断使用,其中第1 0 和第1 l 作为自动向量中断使 用,第3 2 1 2 7 作为向量中断使用。 m c o r e 强大的中断处理能力主要体现在以下几个方面: 1 ) 它有专用于中断处理的两组影子寄存器f p c 、f p s r 和e p c 、e p s r 分别在快 速中断和正常中断时自动保存程序计数器p c 和程序状态寄存器p s r 。 2 ) 可用于中断处理的交换寄存器组( 共1 6 个3 2 位寄存器) 。 3 ) 可以设置p s r 中的中断等待位来控制中断的等待模式。 4 ) 在自动向量中断时,可以使用m c o r e 内的f f o 单元在一个时钟周期内确定 优先权最高的中断源。 5 ) 支持从低功耗状态的异步返回。 lj c nr ef 门h - 发系统糊建及软弛m 验【f 1 j 以、7 ,t 1 3m - c o f e 接口时序 一c o r e 总线是同步管道式的接口。总线信号必须满足相对于总线时钟的建立时 f a l 弄u 保持时间要求。m c o r e 数据位宽为3 2 位,支持字节半字字( 8 1 6 3 2 位) 的 数据传输模式。其传输的协议见图1 - 2 和表卜3 所示。t s i z l ,t s i z o 代数据传输的宽 度,a d d r i ,a d d r 0 为数掘传输时的低两位地址线状态。当进行字节宽度的传输时, m - c o v e 的d a t a 7 :o 有效,其余2 4 位数据线不用。进行半字宽度传输时,只需要用 到低1 6 位数据线,高1 6 位数据线不用。而进行字宽度传输时,3 2 位数据线均有效。 n 皿0 d a t a 3 l2 4 字节地址( 0 ,4 ,8 ,g ) f :, m l、j 、g d a t a 2 31 6 字节地址( 1 ,5 9 ,d ) 扫c 、。 内存接口啪3 2 ,a , m c o r e r ,g :一! :- d a t a 1 5 :8 】 字节地址( 2 ,6 a 。c ,)_ 。 m 3 曼蠢+ 。_d a t a 70 字节椭土l i - ( 37bf , 图1 - 2 数据总线连接关系 m c o r e 在数据传输中如果出现地址未对准错误,外部逻辑应能加以识别,并 保证数据传输照常进行。这种情况只会出现在半字和字宽度的传输中,比如进行 半字传输时,m c o r e 低两位地址输出为“0 1 ”或“1 1 ”时( 本应为“0 0 ”或“1 0 ”) , 对于这种错误外部逻辑应该加以纠正,最终应能在低位地址为“o o ”或“l o ”的 内存单元和m c o r e 之间进行正确的数据传输;对于字宽度的传输,外部逻辑应同 样能够处理这种问题。这里提到的外部逻辑就是总线控制器。 表i 3 数据总线传输协议 传输数据 活动总线部分 连结 宽度 t s i 舀t s i z oa d d r l a o o r o d a t n 3 1 2 ”d a t a 2 3 :1 6 l d a t a n 5 :e 1d , a t a 7o 】 关系 0100m 臼0a 01 口 1m b lb 字节 011 口m b 2c 0 1 1 m 日3d 100m b 0m b l e 10 1m b 2m 日3f 宇d0m 日0 m 日1m 日2m b 3 g m c o r e 的读写时序如图1 3 一图1 6 所示。 数据传输请求t r e q b 由m c o r e 发起,总线控制器( 自行设计) 在t r e qb 首次有效 的时钟的上升沿将地址线锁存、驱动与地址空间相对应的片选信号:并根据当前的读 嘲京航空航犬人m n ”# 似l e 上 写信号的状态柬决定本次传输是读还是写,同时驱动相应的读写信号线:在读写的最 后个时钟周期的下降沿,由总线控制器驱动本次传输结束信号t ab t e ab 如果 当前传输成功,使t ab 信号有效:如有错误发生,使t e ab 信号有效。花任何一次“i 嫌作中,m c o r e 都会在t r e qb 有效的第一个时钟周期的下降沿驱动数据总线m c o r e d a t a ,并在第二个时钟周期的上升沿将数据线驱动到高阻状态;而在任何一次读操作 中,m c o r e 都会在本次传输结束时( t ab 或t e ab 有效1 的下一个时钟上升沿来采样数 据。是否插入等待周期以及插入等待周期的数目是由外部总线控制器决定。 图1 3 是不插入等待周期的读时序,图1 4 是不插入等待周期的写时序:图1 5 是插 入一个等待周期的读时序,图1 6 是插入一个等待周期的写时序,要插入多个等待周 期的时序图与此类似。 m c o h a d n x o m c o l er ,j m t t - q j j :xx xtin d d o 图1 3 读刷别 c 一,:厂i _ :厂i 一一涎x 三二二 = 恒e 二三 一凸l;厂_ _ 一 “r 。一 l l “一“e 二k 二二三苴二二二贮 8 一 ! ; “t d “l 一 一一- _ _ 弋 w r nj;厂 图1 - 4 写周期 土二! :! ! ! ! :! 塑丛丝墨丝塑堡竺丛竺! 坠塑竺竖! 生! :型卫 m n m c o n rwb e 州a d 由 :篡三t 十斗弋立卜_ - 1 : l i攀 “厂1 “哪厂飞 i i 二:二厂一 “一广1 _ 1 1 弋i m c o md a t a 卜1 十- + 斗卜 i ill l ! j l m “。r 寸卜寸 i i l i l l;: 。 。 i i 、,。- j 图卜5 插入1 个等待周期的读时序 m a d d : e “x t : # 二警手最i r db 广上l 二 二二t ! : i :;:; “ni ii 广 m c o nd a t ,a 亡 一仪二- i h m 卜_ l - l ; f 。一 : : :、 : : 图1 6 插入1 个等待周朔的至时! 苒 狮 秘 = 。 南京航空航大人学唢十学托沧文 1 4 歼发系统的硬件设计方案 本课题研究的罄于m - c o r e 的丌发系统作为一个基本的硬件软件排错环境,喧能 使设计人员在设计进程的早期对软件和硬件进行验证,并及时修改错误,从而避免设 计的迭待问题。在硬件设计上要完成多种逻辑部件和接口的集成,如! m c u 、r o ! m 、r a ! m 、 键盘接口和显示接口等;同时,为了满足设计上的灵活性,选用大容量可编程器件作 为多种功能部件和逻辑设计的实现载体,唯一采用的商用i p 核是摩托罗拉公司的嵌 入式, m - c o r e 内核( 作为核心处理部件) ,其余的各种数字逻辑接口和功能部件自行设 计,构成开发系统的硬件部分。 整个硬件设计方案如图l 一7 所示。整个开发系统以! m - c o r e 为核心,以a 1 t e r a 公司的大容量f p g a 器件为实现载体,自行设计各种外部逻辑接1 :3 和功能部件。用户 电路可根据需要与本设计平台集成在一起来完成特定的功能。自行设计的功能部件 为:存储总线控制模块、i p 总线接口模块、可编程定时器模块、中断管理器、看门 狗电路、通用异步串行通信口、脉宽调制模块、复位电路、显示及键盘模块等。其中, i p 总线接口模块设计为固定的1 6 位带宽,存取速度高,m - c o r e 与i p 侧模块的通信 仅需要一个时钟周期就可以完成。存储总线接i :q 支持的总线带宽比较灵活,可为8 位、1 6 位、3 2 位三种模式,鉴于各种外部存储器存取速度不致的特点,在该模块 中实现了等待控制逻辑,用户可根据需要最多插入7 个等待周期的延时,来实现号幔 速设备的通信。 图卜7m c o r e 硬件设计方案 墟j m c0re 的阡技系统嘲瞧及软髓i 力、峻h h jt ,埘 冗 本丌发系统的内存映象如图l - 8 所示。由于m - c o f o 具有:j 2 化地址线,因此它1 1 r 以镑玛! 内存资源桐当丰富( o x 0 0 0 0 - 0 0 0 0 o x f l 、f f f f f f ) ,j g 节空n l j 。本课题研 究一h 配置了2 字宵r o m ( o x 0 0 0 0 一0 0 0 0 o x 0 0 l f f f f f ) ,选用2 午a t 1 ) 2 9 1 。v s o o b b 扩展而成;l m 字节r a m ( o x 0 0 8 0 一0 0 0 0 o x 0 0 8 f f f f f ) ,选用2 片g s l 7 4 1 1 6 扩展i m 戊; 5 1 2 k 字节寄存器空间,分配给各逻辑功能模块使用,详细分配情况如图1 9 所示: 2 g 字节空间( o x 7 f f ff f f f o x f f f ff f f f ) 作为扩展内存和i 0 空阳j 使用,在内存 资源不够用的情况下,用户可方便地在这段空间内进行内存或者i o 空间的扩展。 扩展内存,i o r e 8 e n 坨c l 管存器空间 r e s e p ,e d 1 m 字节r a m r e s 斟v e d 2 m 字节r o m 图i - 8 系统内存映像 起始地址功能模块 o x o o c o 0 0 0 0中断管理器 0 x 0 0 c 10 0 3 0定时器模块 o x o o c 20 0 0 0异步串行通信口1 o x o o c 30 0 0 0异步串行通信口1 0 0 d c 40 0 0 0看i 、- 狗模块 o x o o c 50 0 0 0脉宽调制器 0 ) ( 0 0 c 60 0 0 0复位控制电路 o x o o c 70 0 0 0存储总线控制攫块 图卜9 物理地址映像图 册一船一 i l l 一三i l = 一 叩 m m 刖嘣 呻一 一 叩一 呲 喊呲 啷 啪 唧 一 一 嘲 呦 嘲 唧 蛳 唧 南j i 航空航天人? + 顾卜:j 讧论上 第二章核心接口模块的设计与实现 m - c o r e 能够成功地与其他功能模块、外围设备祁用户f 乜路进行数据交换, 幺心 接口模块起着举足轻重的作用,核心接口模块完成把m c o r e 的指令和数据传送到外 部,同时把外部设备的数据和请求传达至m c o r e 。核心接口模块包括三个,分别为: i p 总线接口模块、存储总线控制模块和中断管理器,本章就它们的设计进行贪绍。 2 1 i f 总线接口模块 i p 总线接口模块是m c o r e 与其他功能模块进行通信的桥梁,其通信质量直接关 系到系统的性能。 在设计中遵循下面三个原则: 1 ) i p 模块与m c o r e 通信的实时性,不插入等待周期。 2 ) i p 总线接口的标准化,与其他i p 功能模块的接口的一致性。 3 ) 在实现预定功能的情况下尽量简化逻辑设计。不仅节省硬件资源,还能够减 少电路上的延迟。 i p 总线接口逻辑框图如图2 1 所示。 m c o r e 测 ;ad!dr,!tsiz一)黼理币。军,。i甲。,增。dr :! ;! i 理币u 军j l l p - r 口,l p w t r e abr j l _ 1 i p 倒 图2 一li p 总线接口逻辑框图 信号说明: t a b t e a b :传输j 下确传输错误; m e m t a m e m t e a :内存模块输出的传输正确传输错误; t r e q _ b :由m c o r e 输出的传输请求信号: i p c s :各i p 模块选择信号( 共7 位) : 以上信号均为低电平有效。 t s i z :请求传输的数据位宽。“0 0 ”一3 2 位,“1 0 ”1 6 位,o l ”8 位。 i p 总线数据带宽设计为固定1 6 位,这样i p 总线上的数据可以直接与m c o r e 的 低1 6 他数铡线 h 连,【n m :必引入数据多路复用器, 输控捌逻辑负责对i pf 9 1 | j 传输请求的合法4 p t 进行确认。传输请求的合法怍撤捌 t s i z 【1 :0 1 及a d d r 【1 :0 1 束判断是否i 5 观下列两种错误: i ) 地址未对准错误。 2 ) 数据位宽错误( 设计固定在1 6 位) 。 在这两种情况下,i p 接口模块在m c o r e 侧的处理相同,均输出t e a b 信号肯效, t ab 无效,通知m ,c o r e 当前的传输有误,以便m c o r e 的仲裁逻辑做出判断是甭允许 当前传输。而对i p 侧的处理在这两种情况下是不一样的,第一种错误应不影响对目 标设备的有效寻址;第- , e e 错误,i p 接口模块直接将本次传输封杀。 译码读写控制单元负责输出有效的读写控制及各个i p 模块的选择信号。 在设计中,酋先对该接口模块进行高层次建模( m o d e l s i m ) ,并根据实际的数据传 输情况编写测试向量,生成的仿真波形图见图2 2 和图2 3 所示。 图2 2 仿真图l 经过高层仿真后,对i p 总线接口模块进行逻辑设计,并经过反复优化后,选 定f p g a 进行后仿真,仿真波形见图2 4 所示。在第1 个时钟周期内,地址为 0 x 0 0 c 0 0 0 0 0 ,传输数据带宽为t s i z = 0 b 1 0 ( 即数据位宽为1 6 位) ,本次数据传输在 m c o r e 和i p 侧的中断管理器之间进行( c si p = 0 b 0 1 1 1 1 1 1 ) ,i p 总线模块并送h 有 效的t a _ b 和t e a _ b 信号来通知m c o r e 当前的传输有效;在第2 个时钟周期, f 现 了地址未对准错误( 半字:a d d 0 = 0 ) ,i p 总线接口模块自动纠难这种错误,并驱 动相应的i p 模块,使传输不受影响( 除非p s r 的控制位元m m = 0 b 0 ) 。第3 4 个 时钟周期中,出于请求传输的数据带宽错误,i p 总线接口模块直接将传输封杀 并通知m c o r e 当前传输请求无效( t e ab = 0 ) ;第5 7 时钟周期内( 如图2 - 3 所 f 一 ! 塑i ! 堕至坠盔:互婴生竺:堕兰 _ ) ,i bf - 请求传输的地址不位于i p 模块地址。l j 内,l | ) 接l 1 模块肘此f i 进 f f 处理。 图2 - 3 仿真图2 i 舻a d d r n c i 藏丽面惭 t 滓f 9 2 。j “耐 ” x” x 0 0 x 1 0 u p 。r wbo 广 1 1 1 广 0 f 1 口一r d b 0 罨毒;c s i o i e pr f 30 l h 。ol ”笋”4 。1 ”、x 耍 2 2 存储总线控制模块 图2 4 仿真图3 存储总线控制模块作为m c o r e 与存储器、输入输出接口通信的桥梁,在设计中 要实现: 1 ) 对字、半字、字共三种模式的数据位宽访问支持。 2 ) 能够支持对多种不同速度外设的访问。 m 一。o r e 具有3 2 位数据带宽的高吞吐率是其高性能的一个体现,同时还会存在8 位和1 6 位的数据访问,因此,本接口模块的设计不能像i p 接口模块那样,将总线带 | c c 的j :技系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论