(信号与信息处理专业论文)基于cpld的数字系统设计.pdf_第1页
(信号与信息处理专业论文)基于cpld的数字系统设计.pdf_第2页
(信号与信息处理专业论文)基于cpld的数字系统设计.pdf_第3页
(信号与信息处理专业论文)基于cpld的数字系统设计.pdf_第4页
(信号与信息处理专业论文)基于cpld的数字系统设计.pdf_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

基于c p l d 的数字系统设计 摘要 随着e d a 工具的发展及各种可编程逻辑器件的出现,现代数字系统的设计 基本上已实现,自动化。本文介绍r 利用e d at 具进行数字系统设计的实现原 理及方法,其。t 1 包括设训1 输入、综合、功能仿真、实现、时序仿真、配置下载 等具体内容。并以a l t e r a 公司m a x 7 0 0 0 系列c p l d 芯片为例,给出r 一个设计t 实例:用c p l d 实现单片机与p c i 0 4i s a 总线接口之间的并行通信,给出系统设 训+ 方法及程序源代码,包括通信软件和v h d l 设讣部分。本文旨在通过一个设计 实例使大家r 解现代数字系统设训的方法及手段。 关键词:c p l d 、仿真、综合、e d a 、i s a 总线、并行通信 c p l dd e g i no fd i g i t a ls y s t e m a b s t r a c t w i t ha p p e r a i n go f p r o g r a m m a b l el o g i cd e v i c ea n dt h eh e l po f e d a t o o l s ,t h ed e g i no fm o d e md i g i t a ls y s t e mi sa u t o m a t i c ,t h i sa r t i c l e i n t r o d u c e st h ep r i n c i p l ea n dm e t h o dt om a k ed i g i t a l s y s t e md e s i g nb y e d a t o o l s ,i n c l u d i n gs p e c i f i c c o n t e n t ss u c ha s d e s i g ni n p u t 、 s y n t h e s i z i n g 、f u n c t i o ns t i m u l a t i n g 、r e l i z i n g 、t i m i n gs i m u l a t i n g 、c o n f i g e d o w n l o a de t c a tt h es a m et i m e ,w ep r e s e n tad e s i g ne x a m p l e ,u s i n gt h e c p l dd e v i c eo fa l t e r am a x 7 0 0 0 s e q u e n c e t or e l i z e p a r a l l d c o m m u n i c a t i o nb e t w e e nm i c r o p r o c e s s o ra n dp c10 4i s ab u s w eg i v e o u tt h ed e s i g nm e t h o da n d p r o g r a m m ec o d e s ( i n c l u d i n gc o m m u n i c a t e s o f t a n dv h d lp r o g r a m m ep a r t ) w em a i nt ot a k et h e d e i g nm e t h o do f m o d e m d i g i t a ls y s t e m o u tt oe v e r y o n e k e y w o r d s :c p l d ,s i m u l a t e ,s y n t h e s i z e ,e d a ,i s a b u s p a r a l l e lc o m m u n i c a t e 引言 随着集成电路技术和计算机技术的发展,数字系统的实现方法也经历了由分离元件、s s i 、 m s i 到l s i 、v l s i 的过程。s s i 时代直接用集成门、触发器为基本器件构成系统。m s i 时代 用m s i 器件,如计数器、译码器、数据选择器、( m u x ) 等功能电路作为模块构成系统。有 的文献把这些s s i 、m s i 逻辑器件统称为标准产品,他们都属于通用器件,任何数字系统皆 可以使用,其产量高、价格低。然而一个复杂系统往往要用许多片s s i 、m s i 器件才可以实 现,因而制成的设备体积大、重量大、功耗大、生产周期长、成本高。更重要的是用s s i 、 m s i 器件做成的设备可靠性差。因此在集成度高度发展的今天,数字系统理应用l s i 、v l s i 实现,然而数字系统的功能干变万化,极其复杂,要制作一个各个系统皆能接受的通用全硬 件l s i 电路是不可能的。解决方法只有两个,一是使用微处理器,而是制作专用电路。c p l d ( 复杂可编程逻辑器件) 是一种可进行多次编程的超大规模数字集成电路,其内集成了相当 规模的标准逻辑模块,只要利用e d a 工具将所设计的数字系统的功能描述出来后编程到 c p l d 内,就可以得到此系统的集成电路。这种设计数字系统的方法有其他方法所无可比拟 的优点,如制成的设备体积小、重量轻、功耗低、速度高,生产周期( 指整机) 短,成本低, 具有保密性等等。因此c p l d 设计是当前数字系统设计领域中的重要方式之一。本文介绍利 用e d a 设计数字系统的流程并给出一个设计实例。 第一部分利用e d a 设计数字系统的流程 1 1 从e d a 的角度来观察v l s i v l s i 技术的迅速发展使得它自身成为一项和人类生活密切相关的重要产业。作为信 息社会的支柱一计算机和通信,其硬件设备主要是集成电路。在电视、音响、洗衣机、汽车、 玩具等和我们日常生活相关的设备中,也无不大量使用集成电路。社会的需要带动了集 成电路产业的发展,而集成电路产业的发展又带动了e d a 产业的发展。e d a 工具是为v l s i 的 设计、生产服务的,因而它必须适应v l s i 技术的要求。现在我们就从e d a 工具的角度分析 v l s i 的特点。 1 1 1v l s i 的分类 我们可以从不同的角度对v l s i 进行分类。 1 按工艺分类,最主要的有: 金属氧化物半导体( m e t a lo x i d es e m i c o n d u c t o r ,m o s ) 晶体管一晶体管逻辑( t r a n s i s t o r t r a n s i s t o rl o g i c ,t t l ) 发射级耦合逻辑( e m i t t e rc o p u l e dl o g i c ,e c l ) m o s 工艺最简单,功耗低。在同样生产技术条件下,其集成度最高,速度最慢。而e c l 工艺复杂,功耗大。在同样生产技术条件下,其集成度最低,速度最快。t t l 介于两者之间。 各种工艺的加工方法虽然不同,但大体都是在硅片上作如下加工:光刻、氧化、扩散、 离子注入等,每次加工大都需要一个掩膜。以光刻为例,掩膜覆盖在涂有感光胶的硅片上其 暴露部分因感光而被加固并被保留下来,其余部分则被刻蚀。因此掩膜个数大体上反映了加 工的复杂程度。e d a 工具中的布图软件正是为了形成这些掩膜。 2 按生产目的分类 通用集成电路 专用集成电路( a p p l i c a t i o ns p e c i f i ci n t e g r a t e dc i r c u i t ,a s i c ) 生产厂商已供应市场为目的生产的芯片大多属于通用集成电路,例如微处理器芯片、存 储器芯片、计算机外围电路芯片等。 为某个或某些用户专门用途而生产的芯片则属于专用集成电路。前者生产批量大,设计 费用分摊在每个芯片上就不大。因此,对芯片的性能( 和市场竞争力紧密相关) 和芯片的利 用率( 和生产成本紧密相关) 要求高,而对设计成本和设计周期的要求可以放宽。后者则着 重于设计成本和设计周期,对e d a 工具提出了更高的要求。 3 按实现方式( 设计风格) 分类 用户在完成了电路设计之后,可选用以下不同的实现方式: 全定制( f u l 卜c u s t o m ) 方式 半定制( s e m i c u s t o m ) 方式 现场可编程逻辑器件( p r o g r a m m a b l el o g i cd e v i c e ,p l d ) 方式 当用户把自己的设计交给集成电路制造商,以加工订货的方式要求制造商供应成品,这 属于全定制或半定制方式。 当用户从市场上买来现场可编程逻辑器件,自己把电路“写入”该器件时,就是现场可 编程方式。 全定制方式是基于晶体管级的芯片设计,仔细考虑每个管子的尺寸、位置即管子间的互 连关系,其目标是密度高、速度快和功耗低。这种方式设计周期长且成本高。作为改进,e d a 工具提供标准单元库,库中有许多精心设计好的具有一定逻辑功能的标准单元。这些标准单 元的逻辑功能及版图事前经过生产检验,具有较高的质量。把用户的原始设计转换成由标准 单元组成的电路,很容易设计出整个电路的版图,效率得到提高。 半定制方式通常是指门阵列( g a t ea r r a y ) 方式。集成电路制造商预先准备好称作母片 ( m a s t e rs l i c e ) 的半成品,母片上以一定的间距成行、成列的排列着形状、大小相同的基 本单元,基本单元通常是们或成对的n 管和p 管。以母片为基础对用户电路进行布图的方式 称为门阵列方式。由于这种方式采用了规则的布图模式,有利于布线规则的形成;它是在半 成品基础上进行加工,因而生产周期短、生产成本低。他的缺点是:由于基本单元之间保持 固定的间距用于布线,必然存在某些地方走线稀疏( 芯片面积利用率不高) ;而另一些地方走 线拥挤,设置连线布不通。为了接通连线,还可能造成某些单元未被利用。 为了进一步缩短设计周期和设计成本,8 0 年代出现了现场可编程逻辑器件。集成电路制 造商向市场提供已封装完毕的芯片,其逻辑功能却可以由用户自己使用e d a 工具“写入”。从 生产厂商来看,可编程逻辑器件属于通用器件,可以批量生产以降低成本。从用户角度看, 自己可以将设计好的电路“写入”芯片,使之成为专用集成电路。有些可编程逻辑器件可多 次“重写”,特别适合于新产品试制或小批量生产。可编程逻辑器件的缺点是:芯片内部连线 较长,速度相对较慢;集成度相对较低。 1 1 2 可编程逻辑器件 图1 1 所示为可编程逻辑器件分类图。 蒸富 图1 1 可编程逻辑器件分类图。 简单p l d 器件内通常只有部分可以编程和组态。其中p l a ( 可编程逻辑阵列) 中的与阵列 和或阵列都是可编程的,但它的输出电路是固定的。而队l ( 可编程阵列逻辑) 中只有与阵列 可以编程。g a l ( 门阵列) 的与阵列可编程、或阵列固定而输出电路是可组态的。简单可编 程逻辑器件的缺点是:芯片内的逻辑与引脚有着密切的对应关系,当i c 的制造工艺已经相当 的进步,却因引脚数目限制了芯片内的逻辑功能时,这种电路结构的缺点就变得难以容忍了。 8 0 年代中期,出现了现场可编程门阵列( f p g a ) ,其内集成了大量的布线通道、i 0 模 块以及逻辑模块,每一个逻辑模块相当于一个g a l 电路,可以单独实现一定的逻辑功能。而 布线通道则是用来按照用户的要求连接逻辑模块和i o 模块的。显然利用f p g a 可以实现更 复杂的逻辑。由于f p g a 的布线通道是可编程的,逻辑模块之间通过这样的布线进行连接是 不受逻辑层次限制的,但这也使得连接线段的数目事前无法估计,因而总延迟时间也无法预 估,这是这种电路的缺点。 大容量p l d 中除了f p g a 之外,还有一种称作复杂可编程逻辑器件。它的逻辑规模更大, 布线区写作了一些改进。以a t e r a 公司的产品为例,说明c p l d 的结构。如图1 2 : 图1 , 2c p l d 内部结构示例 c p l d 的内部资源以逻辑阵列块( l o g i ca r r a yb l o c kl a b ) 为主,每个l a b 中含有1 6 个宏单元( m a c r oc e l lm c e l l ) ,每个宏单元的规模类似于一个门阵列( g a t ea r r a yl o g i c g a l ) 。c p l d 中逻辑阵列块与逻辑阵列块之间的连接及逻辑阵列块与f o 单元之间的连接通 过快速通道实现。快速通道可视作全局性的可编程的连线资源。这种快速通道是遍历整个器 件的连续布线通道,其延迟时间可以预估,其延迟时间可以预估,因而使得仿真更加准确。 近年来,由于采用先进的集成工艺和大批量生产,c p l d 器件成本不断下降,集成密度、 速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统。 另外可编程逻辑器件又可以按实现方法分为一次写入不可改写的和可擦除后重写的。后 4 者又有紫外光擦除和电擦除的两种。 1 2 设计流程 在数字系统设计的今天,片上系统( s o c ) 技术的出现已经在设计领域引起深刻变革。 为适应产品尽快上市的要求,设计者必须合理选择各e d a 厂家提供的加速设计的工具软件, 以使其产品在本领域良性发展。在e d a 工具的支持下,利用c p l d 进行系统设计的主体分为 设计输入、编译综合、功能仿真( 前仿真) 、实现、时序仿真( 后仿真) 、配鼍下载等六个步 骤,设计流程如图1 3 所示。下面分别介绍各个设计步骤。 图1 3c p l d 设计流程图 1 2 1 设计输入 设计输入包括使用硬件描述语言h d l 、状态图与原理图输入三种方式。 h d l 设计方式是现今设计大规模数字集成电路的良好形式,除i e e e 标准中v h d l 与 v e r i l o gh d l 两种形式的硬件描述语言外,尚有各自c p l d 厂家推出的专用语言,如q u a r t u s 下的a h d l 。h d l 语言描述在状态机、控制逻辑、总线功能方面较强,用这种方式描述的电 路在特定综合器( 如a l t e r a 公司的m a x + p l u si i ) 作用下能以具体硬件单元较好的实现。 而原理图输入在顶层设计、数据通路逻辑、手工最优化电路等方面具有图形化强、单元节俭、 功能明确等特点。 常用输入方式是以h d l 语言为主,原理图为辅,进行混合设计以发挥二者各自特色。近 年来出现的图形化h d l 设计工具,可以接收逻辑结构图、状态转换图、数据流图、控制流程 图及真值表等输入方式,并通过配置的翻译器将这些图形格式转化为h d l 文件。另外,由于 c p l d 厂商软件与第三方软件设有接口,因此也可以把第三方设计文件导入进行处理,布局布 线后,可再将生成的相应文件交给第三方进行后续处理。 1 2 2 设计综合 由设计要求到设计实现的整个过程,如果是靠人工完成,通常简单的称之为设计;如果 依靠e d a 工具自动生成,通常称之为综合。 综合,就是针对给定的电路功能和实现此电路的约束条件,如速度、功耗、电路类型等, 通过计算机进行优化处理,获得一个能满足上述要求的电路设计方案。也就是说,被综合的 文件是h d l 文件( 或相应文件等) ,综合的依据是逻辑设计的描述和各种约束条件,综合的 结果则是一个硬件电路的实现方案,该方案必须同时满足预期的功能和约束条件。对于综合 来说,满足要求的方案可能有多个,综合器将产生一个最优的或接近最优的结果。因此,综 合的过程也就是设计目标的优化过程,最后获得的结构与综合器的工作性能有关。 利用m a x + p l u si i 进行设计综合时,应在当前p r o i e c t 下导入设计源文件,自动进行语 法分析,在语法无误并确定综合方式、目标器件、综合强度、多层保持选择、优化1 1 标等设 置后,即可进行综合与优化。在此可以将两步独立进行,在两步之间进行约束指定,如时钟 的确定、通路与端口的延时、模块的算子共享、寄存器的扇出等。如果设计模型较大,可以 采用层次化方式进行综合,先综合下级模块,后综合上级模块。在进行上级模块综合时设置 下级模块为d o n tt o u c h ,使设计与综合过程合理化。综合后形成的网表可以以e d w 格式输 出,也可以以v h d l 或v e r i l o g h d l 格式输出,将其导入c p l d 设计厂商提供的可支持第三 方设计输入的专用软件中,就可进行后续的c p l d 芯片的实现。综合完成后可以输出报告文 件,列出综合状态与综合结果,如资源使用情况、综合后层次信息等。 正如数字系统可以在多个不同的层次上进行详细描述一样,综合也可以在多个层次上进 行。通常综合从高到低分为三个层次:高层次综合、逻辑综合、版图综合。 高层次综合是指从算法级的行为描述到实现它的寄存器传输级结构描述的综合。逻辑综 合的主要任务是根据设计者的逻辑功能描述及约束条件( 速度、功耗、成本、器件类型等等) , 导出满足上述要求的逻辑电路。与其他两类综合相比,高层次综合使得集成电路的用户,特 别是专用集成电路的用户( 可以不是集成电路设计专家) ,可以直接进行数字系统从行为描述 到芯片描述的设计工作。而且高层次的行为描述通常比低层次的结构描述简洁而有易于编写 与理解,相应的描述错误也较少而且容易修改。高层次综合系统接收数字系统的硬件描述语 言源程序,并且可以将综合结果转换为硬件描述语言的描述,从而实现设计过程的自动文档 化。 1 2 3 仿真验证 从广义上讲,设计验证包括功能与时序仿真和电路验证,仿真验证是综合的逆过程。 6 仿真是指使用设计软件包对已实现的设计进行完整测试,模拟实际物理环境下的工作情 况。前仿真是指仅对逻辑功能进行测试模拟,以了解其实现的功能否满足原设计的要求,仿 真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性;而在布局布线后,提 取有关的器件延迟、连线延时等时序参数,并在此基础上进行的仿真称为后仿真,它是接近 真实器件运行的仿真。 电路验证( 又称作模拟验证) 是指对实际数字系统加以抽象,提取其模型,将其输入计 算机。然后将外部激励信号加于此模型,通过观察模型在外部激励信号作用下的反应判断该 数字系统是否实现了预期的功能。电路模拟是当前数字系统验证的主要手段。它的局限性在 于:模拟器的功能仅是表现在某一组外部激励信号作用下该数字系统的行为,至于加什么样 的外部激励信号以及在该外部激励信号作用下系统反映的正确与否,完全由设计者自己决定。 由此可知,设计者必须给模拟器提供以下信息: 1 ) 数字系统基本元件的功能特性。 2 ) 基本元件的互连关系或相互作用的关系。 3 ) 模拟过程所需的信息,如外部激励信号的名称和波形、观察点的名称以及如何表示 被观察信号的命令等。 上述信息可以由h d l 语言提供。 一般模拟系统构成如图1 4 所示。 图1 4 模拟系统构成示意图 同综合技术一样,在不同的层次上都会使用仿真验证技术。下面分别叙述其特点: 1 ) 寄存器传输级r t l 。此级仿真是对设计的语法和基本功能进行验证( 不含时序信息) 。 7 0 年代中期开始使用r t l 硬件描述语言描述电路,其基本元件是寄存器、存储器、总线、运 算单元a l u 等。元件的延时特性、负载特性一般来说是未知的。主要用来表示电路的行为特 性,也隐式表达电路的结构,能较为简练的、宏观的描述系统。在r t l 仿真阶段,应该建立 一个测试台。此测试台可以在整个设计流程中进行仿真验证( r t l 级、功能级、时序门级) 。 测试台不但提供测试激励与接收响应信息,而且可以测试h d l 仿真流程中的关键功能( 如运 算部件输出值的正确性等) 。测试台的产生可以直接使用文本编程得到,也可以使用图形化工 具输入,再由软件翻译为h d l 格式,例如使用h d l b e n c h e r 软件利用其良好的波形输入界面 输入测试激励,再由其自动转化为h d l 格式而得到。 2 ) 门级仿真验证技术。此级仿真是针对门级时序进行的仿真,门级仿真体现出由于布局 布线而产生的实际延时。门级的基本元件是各种门及触发器。门级描述仅表示电路中基本元 件的互连关系,即电路的结构信息。当r t l 验证完成之后,应根据当时所采用的技术将r t l 电路细化为门级元件或规模稍大的电路块。元件的延时特性、负载特性在门级仿真验证中应 该有较为精细的描述。在门级仿真验证中也许还要完成可测性分析。 3 ) 电路级仿真验证技术。此级仿真是在综合后、实现前而进行的功能级仿真,功能级仿 真一般验证综合后是否可以得到设计者所需要的正确功能及是否仍与r t l 级仿真结果相同。 电路级的基本元件是晶体管、电阻、电容等,电路级描述仅表达电路基本元件的连接关系。 在门级仿真验证完成之后,应将门级元件细化为电路级元件。 仿真验证技术当前所面l 临的挑战是:( 1 ) 电路的规模越来越大;( 2 ) 工艺进步使线宽、 线距越来越小,寄生参数变得不可忽略;( 3 ) 适应从高层次到低层次混合验证的要求。这些 都会使仿真器的运行时间和存储空间极大的增长,出路只可能是:改进算法和使用更好的计 算机。 1 2 4 设计实现 逻辑验证和模拟基本上保证了逻辑设计的正确性。此后的工作如:集成电路设计和制造、 印制电路板的设计和制造、机柜底板的布线等都属于实现阶段的任务。这些工作的特点是工 作量大、重复性强、极易出错。设计实现可理解为利用实现工具把逻辑映射到目标器件的结 构中,决定逻辑的最佳布局,进行连线,并产生相应文件( 如配置文件与相关报告) 。设计实 现通常可分为转换、映射、布局与布线、时序提取、配置五个步骤。 转换:将多个设计文件进行转换并合并到一个设计库文件中。 映射:将网表中逻辑门映射成物理元素,即把逻辑设计分割到构成可编程逻辑阵列内的 可配置逻辑块与输入输出块及其它资源中的过程。 布局与布线:布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到c p l d 内 部的物理位置,通常基于某种先进的算法,如最小分割、一般的受力方向张弛等来完成;布 线是指利用自动布线软件使用布线资源选择路径试着完成所有的逻辑连接。因最新的设计实 现工具是时序驱动的,即在器件的布局布线期间对整个信号通道执行时序分析,因此可以使 用约束条件操作布线软件,完成设计规定的性能要求。在布局布线过程中,可同时提取时序 信息形成报告文件。 时序提取:产生一时序文件,供给后续的时序仿真使用。 配置:产生c p l d 配置时需要的位流文件。在实现过程中可以进行选项设置。因其支持 增量设计,可以使其重复多次布线,且每次布线利用上一次布线信息以使布线更优或达到设 计目标。在实现过程中应设置默认配置的下载形式,以使后续位流下载正常。 1 2 5 时序分析 在设计实现过程中,映射后需要对一个设计的实际功能块的延时和估计的布线延时进行 时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态时 序分析。 从某种程序来讲,静态时序分析可以说是整个c p l d 设计中最重要的步骤,它允许设计 者详尽地分析所有关键路径并得出一个有次序的报告,而且报告中含有其它调试信息,比如 每个网络节点的扇出或容性负载等。静态时序分析器可以用来检查设计的逻辑和时序,以便 计算各通道性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要求用户产 生输入激励或测试矢量。虽然x i l i n x 与a l t e r a 在c p l d 开发套件上拥有时序分析工具,但在 拥有第三方专门时序分析工具的情况下,仅利用c p l d 厂家设计工具进行布局布线,而使用 第三方的专门时序分析工具进行时序分析。一般c p l d 厂商在其设计环境下皆有与第三方时 序分析工具的接口。与综合过程相似,静态时序分析也是一个重复的过程,它与布局布线步 骤紧密相连,这个操作通常要进行多次直到时序约束得到很好的满足。 1 2 。6 下载验证 下载是在功能仿真与时序仿真正确的前提下,将综合后形成的位流下载到具体的芯片中, 也叫芯片配置。 c p l d 芯片有两种配置形式:直接由计算机经过专用下载电缆进行配置;由外围配置芯 片进行上电时自动配置。因c p l d 具有掉电信息丢失的性质,因此可在验证初期使用电缆直 接下载位流,如有必要再烧录配置到芯片中。使用电缆下载时有多种方式,其中使用芯片上 的j t a g 口是常用的下载方式。将位流文件下载到c p l d 器件内部后进行实际器件的物理测 试即为电路验证,当得到正确的验证结果后就证明了设计的正确性。电路验证对c p l d 投片 生产具有较大意义。 9 第二部分用c p l d 实现单片机与i s a 总线并行通信 我们以a l t e r a 公司的m a x 7 0 0 0 系列器件为例,实现m c s 5 1 单片机与p c i 0 4i s a 总 线的并行通信。采用这种通信方式,数据传输准确、高速,在1 2m h z 晶振的m c s 5 1 单片机 控制的数据采集系统中,可以满足与p c i 0 4i s a 总线接口实时通信的要求通信速率达2 0 0 k b p s 。 2 1 系统总体设计方案 根据利用e d a 工具设计数字系统的流程,在设计一个系统之前首先对系统进行功能分 析,可以将整个系统功能进行划分形成几个子系统,然后分别将各个系统输入到e d a 软件中。 下面我们先分析系统需要完成的功能。 p c i 0 4 基本上分别是p c i s a 和p c i 总线的重新包装。p c i 0 4 完全与i s a 总线兼容,但具 有可堆叠而紧凑( 3 6 ”x 3 8 ”) 的模块。顾名思义,它有1 0 4 个插脚。p c i 0 4 给p c i 总线提供 同样的标准,但采用p c i 0 4 的尺寸。由于在p c i 0 4 上的针脚全被i s a 讯号所用,故在卡上的 另一边引入新的高密度1 2 0 针连接器来应付3 2 位元的p c i 讯号。 本系统用c p l d 实现单片机与p c i 0 4i s a 总线接口的并行通信。由于p c i 0 4 主要完成其 它方面的数据采集工作,只是在空闲时才能接收单片机送来的数据,所以要求双方通信的实 时陛很强,但数据量不是很大。因此,在系统设计中单片机以中断方式接收数据,p c i 0 4 采 用查询方式接收数据。系统设计方案如图2 1 所示。 - _ 瞵b l彤l 呱j m 。 呻d 7 】 戴据传 d o d 7 】 广 厂 f t o a 1 5 】 眦1 9 】 袱面翻i 四 如1 0 1 l 豫 尉 珏时辱臀1 0 c 拥贸 姗s y s c i 五 班咖 图2 1 系统设计方案 1 0 对于图1 的单片机部分,d 0 7 】是数据总线,a 0 1 5 】是地址总线,r d 和w r 分别是读 写信号线,1 n t 0 是单片机的外部中断。当单片机的外部中断信号有效时,单片机接收数据。 在c p l d 部分,可以选用m a x 7 0 0 0 系列中的e p m 7 1 2 8 来实现,用来完成m c s 5 1 与p c i 0 4 i s a 总线接口之间的数据传输、状态查询及延时等待。在p c i 0 4i s a 部分,只用到i s a 的8 位数 据总线o o 7 ,a 0 9 】是p c i 0 4 的地址总线;i o w 和i o r 是对指定设备的读写信号;a e n 是允许d m a 控制地址总线、数据总线及读写命令线进行d m a 传输及对存储器和i ,o 设备的 读写;i o c h r d y 是i o 就绪信号,i o 通道就绪为高,此时处理机产生的存储器读写周期为 4 个时钟周期,产生的i o 读写周期和d m a 字节传输均需5 个时钟周期,m c s 5 1 通过置此 信号为低电平来使c p u 插入等待周期,从而延长i o 周期;s y s c l k 是系统时钟信号,是为 了与外部设备保持同步;r e s e t d r 是上电复位或系统初始化逻辑,是系统总清信号。 2 2 在m a x + p l u s i i 平台上的硬件实现。 2 2 1 系统子模块的输入 本系统是用a l t e r a 公司的开发工具m a x + p l u s 来进行设计的,它支持多种输入方式。 由系统设计方案可以看出c p l d 主要完成三项功能:数据传输、状态查询、延时等待,我们 把这三项功能作为三个子模块来分别处理。三个子模块的主要功能我们采用原理图输入方式 输入到e d a 软件中,而各个子模块中的地址译码部分则利用文本输入方式。由于库中已提供 了所要使用的芯片,所以在进行原理图输入时可以直接利用。原理图输入部分如图2 2 和图 2 3 所示。图2 2 主要完成单片机与i s a 接口通信中的数据传输和握手判断。 图2 2 单片机与p c i 0 4i s a 握手逻辑图 d 0 7 单片机的8 位双向数据总线; p c d 0 7 i s a 接f _ :_ | 的8 位双向数据总线; p c r dls a 接口的读有效信号; p c w ri s a 接口的写有效信弓; s t a t e 判断单片视已写数据或读走数据; p c s t a t e 单片机用此务询l s a 接口已取走数据; m s c r d 荦片机的读有效信号; m c s w r 单片机的写有效信号; i n t o 单片机的外部中断信号: 当m c u w r 信号有效后,单片机把数据锁存于7 4 1 。$ 3 7 4 ( 1 ) 中,此时,p c s 7 r n i e 变为高i 乜 平。p c i 0 4 用s t a t e 信号选通7 4 i 。$ 2 4 4 来判断数据位p c d o 是否为高电平,如果为高,浣明单 片机送来了数据,那么使p c r d 有效,从数据缓存器7 4 l s 3 7 4 ( 1 ) 中取走数据。此时,p c s t a t e 变为低电平,单片机通过判断此信号为低电平来判定p c i 0 4 已取走了数据,可以发下一个数 据。 当p c w r 信号有效后,p c i 0 4 把数据锁存于7 剞$ 3 7 4 ( 2 ) 中,此时,i n t o 变为低电平, 单片机产生外部中断,使m c u r d 信号有效,从数据锁存器7 4 l s 3 7 4 ( 2 ) 中取走数据,i n t o 变 为高电平。p c i 0 4 用s t a 7 r e 信号选通7 4 l s 2 4 4 判断数据位p c d l 是否为高电平,如果为高电平, 说明单片机取走了数据,可以发送下一个数据。 p c i 0 4 与单片机进行通信,最关键的就是速度匹配问题。| j i 于p c i 0 4 的速度快,而单片 机的速度较慢,所以,要在p c i 0 4 的i o c i i r d y 处插入等待周期,如图2 5 所示。i o c i i r d y 用 来使i s a 接j j 等待5 个时钟周期。 研s 眦 巩i 口量 d l yd 矾了置 图2 3 延时电路 1 2 d l yd 延时输入信号; d l yc i k 延时等待时钟信号; d l y c l r 等待清除信号,为开始下次送数周期作准备; d e i 。a y 延时5 个时钟闰期后的输出信号,作为1 ) l 一一c i r 信号的输入; s y s c i 。ki s a 接口的系统时钟信号。 存一1 c s 5 1 与p c i 0 4 进行通信的过程中,d l y d 信号一直有效( 高电平) 。红信号s y s c l r 的作周下,每5 个时钟周期d e l a y 信号有效一次,珏为高电平。此时d l y c l r 信【:= 有效( 低 f 【:! 平) ,i o c h r d y 信号变为高 u 平,p c i 0 4 可以读写数据。 地址译码部分采用文本输入方式,翊硬件设计j l :发语言v h d i ,。v h i ) i 是种模块化的商级 语言,特别适合于描述复杂的组合逻辑、状态机和真值表,地址译码部分用文本输入方式, 这充分体现了文本输入方式的优点。文本输入内容如下: # p c a 9 0 是p c i 0 4 的地址信号,a 1 j 1 4 是单片机的地址信号,p c i 0 4 用到端口地址 2 2 0 h 和2 2 l h 。 l i b r a r yi e e e : u s e i e e e s t i ) 一l o g i c 1 1 6 4 a l l : f n l 、ya d d r e s si s p o r t ( p c a :i ns t d j o g i cv e c t o r ( 9d o w n t o0 ) : a e n ,i o r ,i o w ,r e s e t d r ,d e l a y ,r d ,w r :i ns t d l o ( ;i c : a :】:ns t dl o ( ;i cv e c t o r ( 1 5d o w n t 01 4 ) : 眺y ,d ,1 ) 1 。c i ,k ,i ) j ,y c l r ,s t a i e ,p c r i ) ,p c w r ,m c u r i ) ,1 4 c u w i _ :o o | _ s7 | t d l o g i c ) e n da d d r e s s : k r c i t i t e c t u r ea do fa d d r e s si s v a r i a b l ea e n n , o r _ n ,i o w n :i n s t d _ l o g i c ; v a r i a b l ed l y c l r ,p c w r n ,p c r d n ,s t a t l n ,i c s w rn ,m c s r on :o u t s t d l o g i c : b e ( ;i n d l y c l rn = n o td l y _ c l r : a e n n = n o ta e n : i o rn = n o ti o r : 1 0 wn = n o ti d w : p c w r n 2 n o tp c w r : p c r dn = n o tp c r d : s t a t e n = n o ts t a t e : m c s r dn = n o tm c s r d ; m c s w rn - m c s w r : i ) l 卫吼r n = n f f l 、( r e s e t 、d ro rd e l a y ) : d f 。yd = a e nn ( p c a = h 1 1 0 “) : d l y c l k 2a e n n ( p c a = h ”11 d ”) ( i o r no r i o w n ) : p c w r n = n o t ( a e nn ( p c a = t 1 2 2 0 ”) t o wn ) : p c r dn ( = n o r ( a e n n ( p c a = h ”2 2 0 ”) 】0 r n ) : s t a t e n 2a e n n ( p c a = h ”2 2 1 ”) i o r n : m c u r dn - n o t ( ( a = h ”1 ”) r dn ) : m c u w rn - ( a = 1 1 ”2 ”) w rn : e n da d ; 使用v h d i ,语音输入c p i 。d 系统的地址译码部分虽然具有通用性,可以输入到任何e d a 工 具软件中( 包括m a x + p l u si i ) ,但在某些方面却刁i 如一些其他的硬件描述语言编写程序方便。 由于m a x + p l u s1 1 支持a h d l 语言,所以这段功能输入我们也可以采用此种语言来编写利序。 利用a h d i 。编写这段程序要比用v h d i 。语吉编写j 的程i z l 口, - 简单。程序如下: s u b d e s g i na d d r e s s ( p c a 9 0 :i n p u t a e n : i n p u t : i o w : i n p u ,i : i o r :j n p u t : r e s e t d r : i n p u t ; d e i 。a y :i n p i j i 、: p c k d :o u 1 1 p u l : p c w r :o i 、 u i : s t a t i ! :o u t p u ,r : 1 4 a 1 5 1 4 :i n p u t r d : in p i 1 : w r :i n p u t : m c u r d :o u t p u t : m c u w r :o u i 、p u t d l y1 ) :o u p p u t : d i 。yc i 。k :o u t p u t d 【。yc 1 。r :o t t p u t ) b e g i n 引。yc i r = = ( r e s e t d y # d e i 。a y ) : d l y d = = ! a e n ( p c a = = h “1 1 0 ”) : d l yc l k = = ! a e n ( p c a = = i i “1 1 0 ”) ( ! i o r # ! l o w ) : p c w r = = ! a e n ( p c a h2 2 0 ”) ! i o w : p c r d = = ! a e n ( p c a = = h ”2 2 1 ”) ! i o r : ! s t a t e = = ! a e n & ( p c a = - 1 i ”2 2 1 ) & j i o r : m c u r d = = ( a = = l l ”l ”) ! r d : m c u w r = = ( a = = h w2 ”) ! w r : e n d : 2 2 2 系统的实现 将原理图及文本输入到m a x + p l u si i 中后进行编译及前仿真,仿真时实我们选择m a x 7 0 0 0 系列器件。在编译及仿真没有错误的的捉下就可以形成能够“写入c p l d 中的文件p 0 1 。将p ( ) f ? 文件“写入”( :队i ) 中可以利用 l l 缆甑接r 载,也可以利用专门的通用编程器,如 a l 。l ( 3 7 ,s u p e r p r o 等。一上土编译成功则可以按照总的系统设计方案搭建电路,然斤彳给i n 激励 对所发计的c p i ,d 系统进行后仿真,功能正确则设计t 成功。 2 3 通信软件设计 p c i 0 4 是基于i s a 总线的,在系统软件设计中要防l | :地址冲突。p c i 0 4 中使用a 0 a 9 地 址位来表示l 八) 端口地址,即可有1 0 2 4 个f 地址:前5 12 个供系统板使f ,后5 12 个供扩充 5 槽使用。当a 9 - 0 时表示为系统板上的【j 地址;a 9 = l 时,表示扩充摘槽接u 卡上的i1 地址。 因此,采用保留的口地址2 2 0 h 和2 2 1 h ,保证不会发生地址冲突。 本程亭i f lp c i0 4 采用查询方式接收数据,单片机采用t t i 断方式接收数据。 # d e f i n ep c r e a d w r i t e0 x 2 2 0 * i c 1 0 4 读。与数抛口地址 # d e f i n ep c r d sr a t e0 x 2 2 1 * p c i 0 4 查询状态口地址 ) c 1 0 4 写数据瀚数: v o i dp c w r i t e ( j n tp o r t ,u n s i g n e dc h a rc h ) o u t p o r t b ( p e te a d w r i t e ,c h ) : o u t p o i t b ( p c r e a d w r i t e ,c h ) : w h i le ( ( i n p o r t b ( p c r d s t a t e ) & 0 x 0 2 ) ! = 0 x 0 2 ) :等待甲片机读走数据 ij ) 单片机读

温馨提示

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

评论

0/150

提交评论