(微电子学与固体电子学专业论文)异步fifo存储器的设计.pdf_第1页
(微电子学与固体电子学专业论文)异步fifo存储器的设计.pdf_第2页
(微电子学与固体电子学专业论文)异步fifo存储器的设计.pdf_第3页
(微电子学与固体电子学专业论文)异步fifo存储器的设计.pdf_第4页
(微电子学与固体电子学专业论文)异步fifo存储器的设计.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(微电子学与固体电子学专业论文)异步fifo存储器的设计.pdf.pdf 免费下载

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

文档简介

异步f i f 0 存储器的设计 摘要 f i f o ( f i r s t i nf i r s t o u t ) 指的是先进先出的数据传输方式,异步f i f o 是 一种不同时钟域之间先进先出的数据传递方式。论文对f i f o 存储器进行了认 真细致地分析和研究,提出了两种实现方案。 亚稳态问题及空满控制信号的产生是异步f i f o 存储器设计的两个难题。 空满控制信号是通过同步读写指针后再比较产生的,读指针与写指针相等时, f i f o 存储器处在满状态或者是空状态,这需要一种方法来区分它们。本文采用 两种解决方法:一种是在读写地址前加一位附加位,通过附加位来辨别空满状 态:另一种方法是通过划分地址空间来判断。因为读写指针属于不同的时钟域, 将它们同步到对方时钟域时不可避免地会出现亚稳态,针对亚稳态问题,本文 也提出了两种解决方案:一种是采用格雷码指针,使之每次同步时最多有一位 出现亚稳态;另一种解决方法是通过一对握手信号同步二进制指针。文章还介 绍了一种改进的格雷码电路,用于实现较高工作频率的f i f o 存储器。为了避 免使用大量的同步寄存器,减小面积空间,本文还介绍了一种读写指针异步比 较的方法。 本文用v e r i l o gh d l 实现了两种设计风格的f i f o 存储器r t l 级硬件设计, 使用m o d e l s i m 进行功能仿真,然后对该设计进行f p g a 验证,结果证明设计 是正确的。 关键词:f i f o 亚稳态异步时钟域同步格雷码 t h ed e s i g no fa s y n c h r o n o u sf i f om e m o r y a b s t r a c t f i f 0i sam e t h o do ff i r s ti na n df i r s to u t a s v n c h r o n o u sf i f 0i sa g e n e r a lw a yt o c o m m u n i c a t eb e t w e e nd i f f e r e n tc l o c kd o m a i n s t h i st h e s i s m a k e sa na n a l y s i sa n dr e s e a r c hf o ra s y n c h r o n o u sf i f om e m o r ya n dp r e s e n t s t w os c h e m e so fd e s i g n i n gt h i sc i r c u i t t h ed e s i g no fa s y n c h r o n o u sf i f om e e t sw i t ht w ot r o u b l e s ,m e t a s t a b i l i t y a n dh o wt og e n e r a t ee m p t ya n df u l lf l a gc o r r e c t l y a d d r e s sa r es y n c h r o n i z e d i n t ot h eo p p o s i t ec l o c kd o m a i nb e f o r eg e n e r a t i n gs y n c h r o n o u sf i f of u l lo r e m p t ys t a t u ss i g n a l s b e c a u s et h ef i f oi s e i t h e re m p t yo rf u l lw h e nt h e p o i n t e r sa r ee q u a l ,t h e r e f o r e ,s o m e t h i n ge l s eh a st od i s t i n g u i s hb e t w e e nf u l l a n de m p t y t w om e t h o d sa r ep r o p o s e dt oo v e r c o m et h e s ep r o b l e m s o n e m e t h o di st oa d da ne x t r ab i tt oe a c hp o i n t e r a n o t h e rs o l u t i o n d i v i d e st h e a d d r e s ss p a c ei n t os o m eq u a d r a n t s b e c a u s er e a dp o i n t e ra n dw r i t ep o i n t e r a r ef r o md i f f e r e n tc l o c kd o m a i n s ,s y n c h r o n i z i n gt h e mt oa n o t h e rc l o c k d o m a i nm a yc a u s et h eo u t p u tt og om e t a s t a b l e f o rt h i sp r o b l e m ,t h e r ea r e t w os o l u t i o n sd e s c r i b e di nt h i sp a p e r o n ec o m m o nt e c h n i q u ei st ou s eg r a y c o d ep o i n t e r sa n do n l yo n eb i tm a yg om e t a s t a b l e a n o t h e rs o l u t i o ni st h a t t h eb i n a r yp o i n t e r sa r es a m p l e da n dh a n d s h a k i n gc o n t r o ls i g n a l sa r eu s e d a n o p t i m i z e dg r a yc o d ec i r c u i ti sp r o p o s e dt oi m p r o v ef i f om e m o r yf r e q u e n c y i no r d e rt oc u td o w nt h eq u a n t i t yo fs y n c h r o n o u sr e g is t e r sa n dd e c r e a s ea r e a , t h i s p a p e r d i s c u s s e st h ef i f om e m o r yd e s i g ns t y l ew i t ha s y n c h r o n o u s p o i n t e rc o m p a r i s o na n da s y n c h r o n o u sf u l la n de m p t yg e n e r a t i o n t h ev e r i l o gr t lc o d ef o rt w of i f om e m o r ys t y l e si sl i s t e di nt h i s p a p e r t h er e s u l t s o fm o d e l s i ms i m u l a t i o na n df p g av e r i f i c a t i o nb o t h i n d i c a t et h ea s v n c h r o n o u sf i f od e s i g ni sf e a s i b l e k e y w o r d s : f i f o m e t a s t a b i l i t ya s y n c h r o n o u sc l o c kd o m a i n s s y n c h r o n i z eg r a yc o d e 插图清单 图1 1通常的数字系统设计流程3 图1 2自顶向下的i c 设计流程4 图2 1异步f i f o 存储器内部模块示意图1 0 图2 2两种不同的存储单元1 l 图2 3f i f o 存储器满,空状态的产生1 3 图2 4f i f o 存储器将为满状态的示意图1 4 图2 5两个串联的反相器和它们的v t c 。1 6 图2 6亚稳态与稳态工作点1 6 图2 7 寄存器的建立时间和保持时间一1 7 图2 8一级同步器与亚稳态1 7 圈2 9异步一同步接口1 8 图2 1 0 一个简单的同步器1 9 图2 1 1 一个简单同步器的模拟轨迹2 0 图2 1 2 信号斜率的线性近似2 0 图2 1 3 串联( 边沿触发) 同步器2 l 图2 1 4 两级采样的同步器2 2 图2 1 5 同步多位数据的不确定性2 3 图3 1格雷码与二进制码转换真值表2 5 图3 2二进制码一格雷码转换的卡诺图2 6 图3 3图3 2 卡诺图的分解2 7 图3 4 格雷码一二进制码转换的卡诺图2 8 图3 5图3 4 卡诺图的分解2 8 图3 6s t y i e # 1 f i f o 存储器结构示意图3 l 图3 7四位格雷码与三位格雷码的关系一3 2 图3 8格雷码的反射特性3 3 图3 9s t y l e # 1 格雷码指针3 5 图3 1 0s t y l e # 2 f i f o 存储器结构示意图4 8 图3 1 l 高速格雷码计数器。5 0 图3 1 2 写地址落后于读地址一个地址空间区5 l 图3 1 3 读地址落后于写地址一个地址空间区5 l 图3 1 4 为状态锁存器的逻辑电路图5 2 图3 1 5 异步指针的比较5 3 图3 1 6 自定时预置位电路5 5 图3 1 7 满空标志的关键路径5 6 图3 1 8 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图5 1 图5 2 图5 3 异步置位的r e c o v e r y t i m e 和r e m o v a l t i m e 6 1 两相位握手协议6 3 m u l l e rc 单元6 3 m u l l e rc 单元的实现6 4 用m u l l e rc 单元实现两相位握手协议6 4 四相位握手协议6 5 用m u l l e rc 单元实现四相位握手协议6 6 正常情况下的读写操作波形图6 9 f i f 0 存储器为满状态时的波形图7 0 f i f o 存储器保守的满状态判断波形图7 1 独创性声明 本人声明所里交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据 我所知除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰写过的 研究成果,也不包含为获得盒胆王些太堂或其他教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢 意。 学位论文作者签字: 签字日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解盒胆王些盍堂有关保留、使用学位论文的规定,有权保留 并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人授权金 胆王些太芏可以将学位论文的全部或部分论文内容编入有关数据库进行检索,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期:年月 日 学位论文作者毕业后去向: 工作单位: 通讯地址 导师签名钏步殇 签字日期:b 、) 年( 9 月 电话: 邮编: 致谢 本论文是在刘声雷副教授和中国兵器工业部2 1 4 所汪健高级工程师的悉心 指导下完成的。衷心感谢我的导师刘声雷教授对我的热心帮助和关怀,刘老师 严谨的治学态度、宽广的胸怀、兢兢业业的工作精神是我的学习楷模,非常感 谢他两年来对我的培养和教诲。 感谢汪健高级工程师在项目的设计过程中对我的帮助与鼓励何旺来工程 师对我的工作给予了多方面的指导和帮助,在此我向他表示由衷地感谢。感谢 i c 设计部的王丽丽、张瑾对我的支持另外在我的工作期间,2 1 4 所为我提供 了良好的软、硬件环境,在日常的生活中受到了公司上下员工的关照,在此一 并向他们表示感谢。 感谢我的父母多年来的培养、关心以及他们对我学业的支持和帮助 最后感谢在我的成长道路上曾经帮助、指导和支持我的老师、同学和朋友。 作者:苏进 2 0 0 7 年3 月 第一章绪论 以集成电路设计和集成电路制造为核心的微电子技术是当今世界高科技的 重要领域一个国家的集成电路产业发展水平,标志着综合国力的强弱。因此, 发展集成电路产业对于推动我国的经济发展和社会进步是至关重要的。 集成电路产业由集成电路设计、芯片加工、封装与测试三大部分组成。所 涉及到的技术领域主要包括:半导体基础材料的提纯和加工技术、集成电路设 计的理论及技术、集成电路芯片制造与加工技术、集成电路系统测试技术、集 成电路封装技术等。 1 1 我国徽电子发展概况 随着i c 设计的重要性的凸显及我国i c 设计大环境的改善,i c 设计企业规模 小、水平低日益成为困扰我国i c 业发展的难题,其中,i c 高级设计人才的匮乏 成为尚处于起步阶段的我国集成电路产业的最突出的问题。虽然我国每年约有 数十万理工科大学生毕业以及数千名从海外回国的技术人员,但其中真正与i c 设计相关的专业人才却非常有限。我国是一个集成电路( i c ) 的“谤费大国”, 但同时又是一个i c 的“生产小国”我国国产i c 约占世界半导体销售额的1 , 国内市场满足率不到2 0 要发展我国的i c 产业,i c 设计是当务之急,而核心 技术的实现依赖的是高水平i c 设计人才。 集成电路设计是资金密集型、技术密集型和智力密集型的高科技产业,其 中资金和技术均可以通过一些方式全面引进,但i c 设计人才必须以自己培养为 主,这已经成为业内人士的共识随着l c 设计人才供需矛盾的日益突出,应采 用各种手段大力鼓励不同途径的i c 设计教育和培训,除高等院校的正规教育外, 国家应尤其鼓励工业界和科研界联合运作教育和培训项目借助政府、高校、 e d a 厂商、i c 设计企业以及整机企业等各方面力量,合作、交流、培训等多种 方式相结合,为我国i c 设计业培养不同层次的i c 人才,是集成电路的发展至关 重要的智力资源保障 我国集成电路设计企业现已形成了近百家的产业规模,其中具备一定设计规 模的单位有2 0 多家,留学海外,学有所成,回国创业的海外学子已成为i c 设计 业的一支重要力量目前,国内每年设计的集成电路品种超过3 0 0 种,大部分设 计公司的技术水平在0 8 1 5 微米之间,最高设计水平可达0 1 3 微米 1 2 集成电路设计方法 现在的集成电路设计变得越来越复杂,开发风险也越来越大随着集成电 路制造技术的进步,已经从以前的l s i 进展到现在的v l s i ( 超大规模集成电路1 , 甚至是u l s i ( 极大规模集成电路) 集成电路发展的大趋势是高速、高集成度和 低功耗的系统集成从2 0 世纪9 0 年代中期以来。s o c ( s y s t e mo nc h i p ) 越来 越受到重视。它将微处理器、模拟i p 核、数字i p 核和存储器( 或片外存储控 制接口) 集成在单一芯片上s o c 的设计技术就是从“集成电路”级设计到“集成 系统”级设计转变的结果,其设计是从整个系统性能出发,把微处理器、模拟算 法、外围器件的设计紧密结合起来,并通过系统软件和硬件的协同设计,在单 个芯片上完成整个系统的功能设计这样复杂的电路无疑是非常困难的,而且 设计周期也会很长 集成电路结构化设计方法的基本策略将一个复杂系统分解成独立设计的子 系统,子系统设计完成后。将各子系统拼接在一起完成整个系统的设计这样 的设计方式不但可以减少设计的复杂性,而且比较容易设计出一个功能正确的 系统。当一个复杂的系统被分成数个子系统之后,若这些系统依然有着相当高 的复杂性,那么可以再将这些子系统分解成为更小的子系统。这个方法可以持 续下去直到这个子系统已经无法再进行分割,或者再分割这个子系统已经没有 任何意义了,就可以停止这就是结构化设计策略中的层次化设计( h i e r a r c h y ) , 而将一个系统层分割成小的电路区域。然后再设计这些电路区域的方法称为从 上而下( t o p d o w n ) 的设计。在这个分割过程中尽量提取出共同的电路区域形成 一个模块,每个电路模块设计成具有规整性能够让每个模块之间的连接只发 生在局部区域,这是设计结构化v l s i 芯片的策略:模块化( m o d u l a r i t y ) 、规整 化( r e g u l a r i t y ) 与局部化( l o c a l i t y ) 。所谓的模块化是在进行系统分割时,若有一 个子系统的使用频率很高,而且这个子系统的大小适中,就可以将这个子系统 当成一个模块以供后面的电路设计使用。既然将系统电路细分成一个个模块电 路,整个系统就具有相当的规整性,而且输入输出端都是设计在每一个模块的 边缘,并且位置比较统一,或者有相对应的位置。因此在组合每个模块成为一 个系统时,每个模块之间的连接点都在附近,这样就可以使布线困难度大大降 低。一个复杂的系统分解成子系统进行设计可以大大降低设计复杂度。并且各 个子系统可以由多个设计组同时进行,使设计周期大为缩短由于各个系统可 以单独设计,因此具有局部性,即各子系统的设计与修改只影响子系统本身, 而不会影响其他子系统,这也为仿真与验证提供了方便 数字系统是交互式的以离散形式表示的具有存储、传输、处理信息能力的 系统集合物。进行数字系统设计时,先由系统工程师设计整个系统的架构,画 出系统框图( 包括各个模块) ,再由高级编程语言( 一般是c c + + s y s t e m c 等) 实现各个模块的算法,然后进行整个系统模拟验证,确定系统的最佳结构、最 佳实现算法及其他相关参数系统模型确定后,进行系统软硬件划分。最后进 行子模块设计,软件部分算法用c c + + 实现,硬件部分一般用h d l 来重新实现。 图1 1 是目前普遍采用的数字系统设计流程 2 修改模型 人工转化 前端完成 图1 1 通常的数字系统设计流程 目前超大规模集成电路或者系统级芯片( s o c ) 设计中所采用的方法是自 顶至下( t o p t o - d o w n ) 的设计方法。自顶至下设计方法的主要特征是综合技 术和硬件描述语言的采用。白顶至下设计方法的步骤是采用可完全独立于目标 器件芯片物理结构的硬件描述语言,如v e r i l o gh d l 在系统的行为级或寄存 器传输级上对设计的产品进行描述和定义,集合多层次的模拟仿真技术,在确 保设计的可行性与正确的前提下,完成功能确认,然后利用e d a 工具的逻辑综 合功能,把功能描述转换成针对某一具体工艺厂商的网表文件,进行布局布线 后再利用产生的仿真文件进行后仿真以确保实际系统的性能。 在将各个子模块的系统级c 模型转化为用h d l 描述的硬件设计时,可以 采用行为级描述或者寄存器传输级( r t l 级) 描述如果采用行为级描述,则 需要进一步人工转化成r t l 级描述,这是因为目前的e d a 工具在由系统级描 述向寄存器传输级转换的综合技术,远没有其在寄存器级描述向逻辑级转换的 技术成熟。图1 2 所示是从用寄存器传输级h d l 描述的设计开始,整个集成电 路的设计流程。首先在完成r t l 级描述之后进行单个模块以及整个芯片系统的 功能仿真,然后根据选定的工艺库进行逻辑综合并产生门级网表门级仿真的 目的是为了验证逻辑综合出来的电路的正确性,门级仿真包含了门单元的延迟 信息,需要相应工艺仿真库的支持。在将设计提交给下一步进行布局布线时, 应当提供相应的测试文件。具有高故障覆盖率的测试向量一般要借助于测试综 合工具,通过a t p g ( a u t o m a t i ct e s tp a t t e r ng e n e r a t i o n ) 产生。接下来借助于 版图综合工具完成自动布局布线。对于f p g a 设计只需借助于f p g a 提供商提 供的专用工具实现。从这一步开始,设计过程就和物理实现( 版图) 有关,通 常称为后端设计完成版图综合后,由于各单元的布局布线已经确定所以可 以进一步提取实际电路中的连线电阻、连线电容等分布参数然后将提取的分 3 布参数包含于原来的门级网表中,进行包含门延迟、连线延迟的后仿真这一 步主要是考察在增加连线延迟后,时序是否仍然满足设计要求。最后就可以交 付集成电路制造厂家进行投片生产对于f p g a 设计来说,只需向f p g a 嚣件 加载代码即可 图i 2 自顶至下的i c 设计流程 1 3 异步f i f o 存储器萏片的应用 集成电路设计之初,并没有同步和异步的区别。7 0 年代后,同步设计因为 概念简单、设计方便,逐渐成为设计的主流方案在这一时期,异步集成电路 的研究仅仅停留在理论上。研究的出发点也仅仅是它与同步电路不同9 0 年代 初期,同步电路设计仍然占据着数字集成电路设计领域的主导地位,但是由于 电路设计规模的扩大和生产工艺的限制,原先可以忽略的互连线之间的延迟、 时钟树的负载等已经变得越发突出设计方法上也面临着很多难以解决的问题 ( 比如时钟s k e w 问题) 这时,异步电路设计方法重新引起了设计者的重视, 与先前为纯粹追求不同的理论而进行的研究已经大不相同,在一定程度上,已 经可以作为实际应用中的理论依据和c a d 辅助工具在应用方面,一些面向 商业应用的异步集成芯片的出现也有力地证明了异步集成电路在某些方面存在 的优势 1 3 1v l s i 时代异步系统的研究 7 0 年代后期到8 0 年代,由于工艺技术的发展,数字集成电路的设计规模 从l s i 向v l s i 发展同时,设计方法也面临着很多挑战,结柬了半导体行业 提供单个逻辑单元,由电路系统设计者利用这些单元进行逻辑设计,然后构成 电路系统的设计流程这一时期,由于同步集成电路的设计模型简单,设计方 法统一,c a dt 具日趋成熟。绝大部分设计、研究都集中在同步集成电路上, 而异步电路的研究还仅仅局限于一些特殊模块和理论研究 1 3 2 e d a 时代 随着工艺技术的持续发展,最小线宽逐渐减小,同时单个芯片的尺寸却逐 渐增大特别是进入深亚微米以后,连线延迟的影响越来越大,使同步设计中 的时钟s k e w 问题越来越难处理;芯片的密度和规模的增加。功耗问题给电池 供电和散热都提出了更高的要求从8 0 年代后期到9 0 年代中后期,异步电 路被重新引起重视异步电路的复兴,由研究设计方法开始。设计方法的自动 化为异步电路的实现提供有力的支持,出现了一些较实用的设计模型和方法。 1 3 3s o c 时代 超大规模和低功耗是2 1 世纪的一个突出问题。超大规模要求集成电路设计 必须依靠e d a 工具来完成,低功耗则要求采用新的系统和电路结构。异步集成 电路在这方面的优势是功耗效率高、电路组织形式灵活,但主要的问题是缺乏 固定的设计流程和设计工具在深亚微米的s o c 中,总体异步一局部同步 ( g l o b a l l y a s y n c h r o n o u s l o c a l l y s y n c h r o n o u sg a l s ) 是解决时钟偏差( c l o c k s k e w ) 和时钟延迟( c l o c kd e l a y ) 的一种有效方法【2 1 s o c 设计是以i p 模块为 基础的,这些模块有m c u 、d s p 、a s i c 模块等根据任务要求的不同模块往 往使用不同的时钟频率,如何有效地互连这些模块,使其能正确、有效地工作, 是s o c 设计中主要的问题。在异步集成电路系统中,各子模块的关系仅仅是接 口互连关系,要求互相连接的接口符合异步系统要求的时序规范,而模块内部 的时序关系与步长可以独立决定异步电路s o c 设计为i p 互连提供了潜在的 有效连接方式。 1 3 4 异步时序电路的优势 ( 1 ) 模块化特性突出,在设计复杂电路时具有内在的灵活性用同步方式设计 的电路模块在互相连接组成较大电路系统时,因为系统时序受整体时钟的控制, 往往需要在模块内部进行时序调整或重新进行时序设计( 3 j 。异步电路则使用握 手信号或f i f o 存储器进行模块内部与模块间的通信,采用相同握手协议的电 路模块可以方便地直接互连,组成较大的电路系统,不需要重新进行时序设计; 5 系统中模块在不改变接口协议的条件下,可以独自进行优化而不会影响到系统 行为与系统时序 ( 2 ) 对信号的延迟不敏感,对小线宽集成电路工艺适应性较强当集成电路线 宽达到深亚微米时,由引线电容负载与引线延迟造成的信号延迟会超过由电路 单元造成的延迟,占据主要地位在这种情况下,完成电路的物理设计之前无 法得到较准确的电踌延迟信息,需要重新设计电路逻辑甚至是电路结构以满足 时序要求异步电路使用握手信号或f i f o 存储器进行通信,电路的延迟只会 影响工作速度,而不会影响电路行为,电路的物理设计比较简单,并且对工艺 偏差不敏感 ( 3 ) 可避免时钟s k e w 问题随着单芯片系统的增大和互连线延迟在整个电路 延迟中所占比例的增大,同步电路的时钟s k e w 越来越难控制,设计难度越来 越大异步电路用大量本地时序控制信号取代整体时钟,避免了时钟设计问题 ( 4 ) 有潜在的高性能特性同步电路工作时需要考虑电路的最坏情况延迟,而 异步电路的性能则由电路的平均延迟决定,理论上比同步电路可以达到更高的 速度。在小线宽集成电路工艺中,由于工艺误差,电路延迟散布较大,异步电 路有可能达到比同步电路更好的性能。 ( 5 ) 有电磁兼容性好的优点,因为其辐射频谱含能量少且分数性好。c m o s 电路仅仅在开关时产生电流,而同步电路的时钟使电路同时开关,造成很大的 瞬时电流,这样就产生了很强的电磁干扰。而且,时钟的固定周期使这些能量 集中在时钟基波和其谐波附近的很窄的频谱范围内异步电路的每个单元在收 到其他部分的输入信号后才开始工作。这样,电路中没有类似同步电路在特定 时刻上的大电流瞬时值,仅仅产生一些在时间上分布的小电流峰值,辐射功率 也小 ( 6 ) 具有低功耗的特性同步电路在整体时钟控制下工作,时钟工作频率必须 满足最大负荷的要求,造成功耗浪费同步的门控时钟技术只能进行大范围粗 略控制,降低功耗的效果有限异步电路则由数据驱动,仅在需要处理数据时 才消耗能量,具有低功耗的潜力而且异步电路可以在零功耗无数据状态与最 大吞吐状态之问迅速切换。不需要任何辅助。 1 3 5 异步时钟域阃的数据传输 异步时序电路不可避免地要完成数据在不同时钟域间的传递( 如高速模块和 低速模块之间的数据交换) 这时如何保持系统的稳定,顺利完成数据的传输就 成为一个重要的问题,这也是异步电路设计中最为棘手的问题。 通常的做法是采用对每位信号增加握手信号来解决这一问题,但这样会增加 系统的复杂度且影响传输速度。因此更普遍的做法是在两个时钟域的交界处设 计一个异步f i f o 存储器,通过它来实现数据流的传输。异步f i f o ( f i r s ti nf i r s t o u t ) 是解决这个问题一种简便、快捷的解决方案使用异步f i f o 存储器可以 6 在两个不同时钟系统之间快速而方便地传输实时数据异步f i f o 存储器是一 种先进先出的电路,使用在异步时钟域的数据接口的部分,用来存储、缓冲在 两个异步时钟之间的数据传输由发送时钟域将数据写入,接收时钟域将数据 取出在数据传输的同时实现了数据的缓存,因此这是一种较理想的方法 1 4 课题来源及研究的意义、工作与论文结构 1 4 1 课题来源及研究意义 本课题来源于中国兵器工业部2 1 4 所,项目的目标是为s o c 设计一个异步时 钟域间数据传输接口电路,即异步f i f o 存储器 随着集成电路技术的发展进入深亚微米以后,器件的尺寸不断缩小,单芯片 的集成容量不断扩大,同步集成电路设计将面临着诸多困难。在集成电路发展 到超大规模和s o c 时代后,主要的问题是解决面向超大规模集成电路的异步集 成电路设计方法,以及选择合适的领域发挥它的优点在这种情况下,异步集 成电路低功耗、潜在的高性能和便于模块化设计的优点已经逐渐地显现出来。 多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路异步 f i f o 存储器是解决这个问题一种简便、快捷的解决方案。使用异步f i f o 存储 器可以在两个不同对钟系统之间快速两方便地传输实时数据。在网络接日、图 像处理等方面,异步f i f o 存储器得到了广泛的应用。因此,异步f i f o 存储器 作为异步时钟域问数据传输的通用模块,具有较大的研究和应用价值【儿乳。 1 4 2 论文的主要工作 本论文的工作是异步f i f o 存储器的设计该设计按时钟域的不同将电路分 为两个独立的模块读时钟域模块和写时间域模块。f i f o 存储器的存储介质 采用的是双端口r a m 写时钟域模块包括写控制信号的生成逻辑电路和写指 针;读时钟模块包括读控制信号的生成逻辑电路和读指针。设计异步f i f o 存 储器有两个难点:一是如何同步异步信号以及处理亚稳态问题;二是如何正确 地设计空满等信号的控制电路。针对第一个难点,本文采用的是使用格雷码指 针和二进锚指针及握手信号。在空满标志产生部分,利用读写指针相互比较产 生空,满标志,本文采用两种方法来辨别空满两种状态:一种是在读写地址前 加一位附加位。通过附加位来辨别空,满状态;另一种方法是通过划分地址空问 来判断 用v e r i l o gh d l 对模块进行r t l 级硬件设计代码编写完成后对模块本身 进行r t l 级仿真为了最大限度的降低设计的风险,在完成r t l 级仿真后又 进行了f p g a 验证 1 4 3 论文组织结构 7 本论文共分为六章,每章的主要内容如下: 第一章是绪论部分介绍了集成电路设计的概况、设计方法和流程。说明 了本课题的研究意义和所做的主要工作。 第二章介绍了异步f i f o 存储器的结构。对异步f i f o 存储器的概念和内部 基本单元做了粗略的介绍,然后分析实现异步f i f o 存储器的难点问题及其解 决办法 第三章阐述了利用格雷码对地址编码的异步f i f o 存储器的实现方法。首先 介绍了格雷码及其优点,提出了两种采用格雷码设计的异步f i f o 存储器的思 路,其中第二种设计方式能够使f i f o 存储器有更高的工作频率。然后用v e r i l o g h d l 对模块进行r t l 级硬件描述 第四章介绍了用二进制实现地址指针的异步f i f o 存储器的设计思路。比较 了二进制指针和格雷码指针的优缺点 第五章对模块的功能仿真和逻辑综合等情况做了简单的介绍首先使用 m o d e l s i m 进行r t l 级仿真,然后又进行了f p g a 的验证。 第六章是总结与展望对论文的工作做出总结,提出设计中仍需改进的问题 和设计心得,并对设计工作给出了自我评价 8 第二章异步f i f o 存储器 2 1 异步f i f o 存储拳简介 当今集成电路设计的主导思想之一就是同步化设计,即对所有时钟控制器 件( 如触发器、r a m 等) 都采用同一个时钟来控制。但在实际的应用系统中,实 现完全同步化的设计非常困难这是因为随着设计规模的不断扩大,更多元件 集成在同一裸片上,使裸片尺寸越来越大,这容易造成时钟偏差与内连延迟 大约成正比的有关时钟偏差成为时钟周期的重要部分,而同步设计中的跨芯片 通信需要一个时钟周期以上时间。在集成电路的设计中,一些新的方法,如整 体异步局部同步( g a l s ) 结构正在替代通常的同步方法,它不需要整体采用 单一时钟因而完全避免了时钟的不确定性问题这样一个系统中就往往含有数 个时钟,但多时钟域带来的一个问题就是,不可避免地要完成数据在不同时钟 域间的传递( 如高速模块和低速模块之间的数据交换) 然而,在多时钟域系统 的设计中不同域之间的数据传输仍然必须重新同步这时,如何保持系统的稳 定,顺剩完成数据的传输就成为一个重要的闯题,这也是异步电路设计中最为 棘手的问蹶。通常的做法是采用对每位信号增加握手信号来解决这一问题,但 这样会增加系统的复杂度且影响传输速度异步f i f o ( f i r s ti nf i r s to u t ) 是解 决这个问题一种简便、快捷的解决方案使用异步f i f o 存储器可以在两个不 同时钟系统之间快速而方便地传输数据。另外,在网络接口、图像处理等方面, 异步f i f o 存储器得到了广泛的应用忡j 。 异步f i f o 存储器是指向f i f o 缓冲器中写入数据的时钟域和从f i f o 缓冲 器中读取数据的时钟域是不同的,这两个时钟之间没有必然的因果关系1 7 j 。这 是一种先进先出的电路,使用在异步时钟域数据接口的部分,用来存储、缓冲 在两个异步时钟之问的数据传输。在异步电路中,由于时钟之间周期和相位完 全独立。因而数据的丢失概率不为零。如何设计一个高可靠性、高速的异步f i f o 存储器便成为一个难点。 2 2 异步f i f o 存储嚣的结构 图2 1 给出了异步f i f o 存储器内部模块示意圈f | 】。整个系统分为两个完全 独立的时钟域读时钟域和写时钟域;f i f o 存储器的主要模块为一块双端口 r a m ,可以同时进行读写操作。在写时钟域部分,由写地址逻辑产生写控制信 号和写地址;读时钟部分由读地址逻辑产生读控制信号和读地址由读写地址 相互比较产生满,空标志 9 图2 1 异步f i f o 存储器内部模块示意图 异步f i f o 存储器用于从一个时钟域向另一个时钟域安全地传递数据,数 据在一个时钟域控制下写入f i f o 存储器中的存储单元中,再在另外一个时钟 域的控制下从f i f o 存储单元中读出数据【9 】f i f o 存储器的接口信号包括异步 的写时钟( w c l k ) 和读时钟( r c l k ) 与写时钟同步的写有效( w i n e ) 和写数据 ( w d a t a ) ;与读时钟同步的读有效( r i n c ) 和读数据( r d a t a ) 为了实现正确 的读写和避免f i f o 存储器的上溢或下溢,通常还应该给出与读时钟和写时钟 同步的f i f o 存储器的空标志( r e m p t y ) 和满标志( w f u l i ) 以禁止读写操作。 写地址产生模块根据写时钟和写有效信号产生递增的写地址,读地址产生模块 根据读时钟和读有效信号产生递增的读地址。f i f o 存储器的操作如下;在写时 钟w c l k 的上井沿,当w i n c 有效时,将w d a t a 写入双端口r a m 中写地址对应的 位置中:在读时钟r c l k 的上升沿,当r i n c 有效时,始终将读地址对应的双端口 r a m 中的数据输出到读数据总线上这样就实现了先进先出的功能 从表面上看设计一个安全可靠的异步f i f o 存储器似乎是件并不困难的事 情。设计一个异步f i f o 存储器的难点在于生成f i f o 存储器的指针及如何可靠 地产生f i f o 存储器的满状态和空状态,以防止f i f o 存储器上溢( 一个有用的 数据被新写入的数据覆盖) 和下溢( 一个无效的数据被读出) 。 2 3 _ 双端口r a m 读写随机存储器( r a m ) 可以在触发器类型的电路中存储信息。基本的静 态r a m 单元如图2 2 ( a ) 所示,由两个交叉耦合的反相器和两个存取晶体管 构成,共六个晶体管,所以称为六管单元。存取晶体管分别将各自的栅极连接 到字线,将源,漏极连接到位线。字线用来选择单元而位线用来执行单元上的读 或写操作。在内部,这个单元在电路的边保存存储的值而在另一边保存该值 的相反值。这种存储单元的读写控制信号都是通过同一根字线b 传递的,数据 都是由q 和百写入或读出,因此这样的存储单元不能同时进行读和写操作的。 螂 w e a n t r a 如 ( a ) 六瞥存储单元q o 双端口存储单元 图2 2 两种不同的存储单元 因为异步f i f o 存储器的读时钟和写时钟是异步的,这要求存储模块能够 同时写入数据和读出效据,六管单元就不能满足使用要求为了使f i f o 存储 器能够进行同步读,写操作,我们使用双端口存储单元,如图2 2 ( b ) 所示,它是 一个八管单元i l o ) 1 1 1 】读控制和写控制分别用两根字线来控制,即i 删和 肜一,这时数据的写入通过毛和曰“,而数据的读出通过和b 。与六管 单元相比,八管单元增加了两个门控管、两根位线和一根字线。由于f i f o 存 储器不用地址线,而是用两个地址指针分别存放读地址和写地址,并且分别有 读地址译码器和写地址译码器与之对应。这样存储器的读操作和写操作就可同 时进行,实现读和写的同步操作显然,这种存储器也能实现异步操作 2 4 读,写地址 异步f i f o 存储器用于两个时钟域之间数据的缓存和用于容纳异步信号 的频率或糨位的差异,数据在一个时钟域的信号控制下写入f i f o 存储器中的 存储单元中,再在另外一个时钟域的信号控制下从f i f o 存储单元中读出数据 f i f o 存储器中的数据被读出的次序与数据被写入存储阵列的次序是一致的,即 先写入的数据先被读出来,是故这种存储器被称为先进先出存储器 ( f i r s ti nf i r s to u t ) 由于数据是先进先出,数据总是依次写入和读出存储单元。在一组数据写 入后,下一组数据会自动写入与之相邻的存储单元中,读操作也是如此所以 就没有必要在f i f o 存储器的输入输出端口中使用地址线在存储矩阵中寻找“特 定”的存储单元来进行读,写操作,同步的和异步的f i f o 存储器都没有地址线。 同步f i f o 存储器的读控制和写控制同属于一个时钟域时,可以利用一个 计数器来“记住”读和写的次数,当对f i f o 存储器写入一个数据时,就对计数 器加一,当从计数器读取一个数据时,就对计数器减一。当f i f o 存储器只进 行读操作时,计数器值减小;当f i f o 存储器既不进行读操作也不进行写操作 或者同时进行读操作和写操作时,计数器值就保持不变;如果f i f o 存储器只 进行写操作。计数器值就会增加。当计数器值为零时,说明读操作和写操作的 次数一样多,此时f i f o 存储器为空状态,即f i f o 存储器内没有写入数据或者 数据全部被读出;当计数器值达到一个预先设定的值时,f i f o 存储器为满状态, 写入的数据等于f i f o 存储器的存储容量 然两,对于异步f i f o 存储器来说,这种方法却并不适用。因为读控制和 写控制来自不周的时钟域,这两个时钟域互相是异步的,它们不能同时用来控 制计数器。这样有可能会产生亚稳态在异步f i f o 存储器中,要将读指针和 写指针进行比较以决定何时为满何时为空 对于异步的f i f o 存储器,需要使用两个计数嚣来存放读,写地址,称为( 读 ,写) 地址指针t l ”复位时,读写指针都是指向内存的初始位置,只要第一个 数据被写入存储单元中,写指针就会增加,f i f o 存储器的空标志就会复位( 空 标志为1 时有效,f i f o 存储器为空状态) ,这时读指针仍为零,指向的是存储 阵列的第一个单元下一个读操作将会使数据输出到端口,同时会使读指针增 加一每进行一次读,写操作,相应的指针就递增一次,指向下一个内存位置 读写指针总是指向下一个地址,即将要进行操作的存储单元地址,当指针移动 黝了内存的最后一个位置时,它又重新跳回初始位置。在f i f o 存储器菲满或 非空的情况下,这个过程将随着读写控制信号的变化一直进行下去 2 5 满,空信号的判断 2 5 1 满标志与空标志 空满标志的产生是f i f o 存储器的核心部分。如何正确设计这一部分的逻 辑,直接影响到f i f o 存

温馨提示

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

评论

0/150

提交评论