浅析FPGA中的同步设计技术.doc_第1页
浅析FPGA中的同步设计技术.doc_第2页
浅析FPGA中的同步设计技术.doc_第3页
浅析FPGA中的同步设计技术.doc_第4页
浅析FPGA中的同步设计技术.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

浅析FPGA中的同步设计技术摘 要:基于FPGA的数字系统应用日益广泛,其设计方法也越来越受到关注,不合理的设计方法会严重影响系统的稳定性,产生干扰脉冲。同步设计技术是解决这些问题的一种有效方法,以数字系统设计中的清零和分频设计为例,分析了影响系统稳定性和产生干扰脉冲的原因,提出了基于同步设计技术的解决方法。实验表明:同步设计能有效地抑制干扰脉冲的影响,提高系统稳定性。关键词:现场可编程门阵列;同步设计;建立时间;保持时间;竞争冒险;毛刺The Analysis Of FPGA Synchronized DesignAbstract The digital system based on FPGA is widely applied day by day, its design method is paid attention more and more. Unreasonable method will reduce the stability of the system and produce some redundant signal, for example burr. In order to solve these problems and realize the design smoothly, presently proposes and analyzes one kind of design technique, the synchronization design technique, which enhances the system stability obviously and has avoided the redundant signal production effectively.Key words FPGA; Synchronized design; Setup Time; Hold Time; Competition risk; Burr0 引言基于FPGA的系统设计主要有两种设计技术,一种是异步设计技术,即系统内的各个模块并不以同一时钟作为基准,这种设计技术具有芯片资源利用率高,能够灵活解决问题等特点。但是,异步设计技术往往不能满足建立保持时间的要求,令触发器不能正确地锁存数据,而导致系统进入一种亚稳定状态,这种状态对系统的可靠性影响很大。所以我们在FPGA系统设计中往往采用第二种设计技术,同步设计技术1。同步设计可以有效地避免异步设计中产生的亚稳态问题,从而提高系统的可靠性,而且在做时序分析时,同步设计也要比异步设计方便。1 几个基本概念为了便于介绍,我们先引入几个基本概念。1.1 建立和保持时间建立时间:是指输入信号应先于时钟信号到达的时间,记作tset2。保持时间:是指时钟信号到来后输入信号需要保持时间,记作th 2,如图1所示。输入信号tsetth时钟信号图1 建立时间、保持时间建立和保持时间关系到一个数据是否能正确地存储到寄存器中,而寄存器中数据的正确与否直接关系到系统的可靠性。1.2 竞争冒险在数字电路中,只要组合逻辑电路的输入信号不同时发生变化,其输出端就有可能产生干扰脉冲3。在FPGA器件内部也会产生同样的现象:一方面,信号通过连线和逻辑单元时,都有一定的延时,延时的大小不仅与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响;另一方面,信号的高低电平转换也需要一定的过渡时间。由于存在上述两方面原因,多路信号电平发生变化时,在信号变化的瞬间,组合逻辑的输入有先后顺序,并不是同时变化的,由此产生的组合逻辑输出会出现一些不需要的、时间极短的干扰脉冲,这个过程就是竞争冒险现象。1.3 毛刺由于竞争冒险而产生的、时间极短的干扰脉冲就是毛刺。现在的系统响应速度越来越快,即使是时间极短的毛刺也可能被系统误当作是一个触发信号处理,这样就会影响系统的稳定性。2 同步设计技术在设计基于FPGA的系统时,如果采用不规范的设计,数据相对于时钟可能会不好控制,无法满足建立时间和保持时间的要求,而使系统进入亚稳态,或者产生毛刺。为了解决这些问题,一种设计技术同步设计技术应运而生。对于同步设计,应当满足以下两个条件4:(1)所有存储元件(包括计数器)都是边缘敏感的,在系统中没有电平敏感存储元件(即系统不包括像锁存器这种元件)。(2)每个边缘敏感部件的时钟输入是基准时钟的一次函数。我们对FPGA 的同步设计理解为:所有的状态改变都由一个主时钟触发(基准时钟),对于具体的电路形式表现为:所有触发器的时钟端都接在同一个主时钟上。这意味着一个系统的功能模块在内部可以是局部异步的,但是在模块间必须是全局同步的5。3 同步设计实例 众所周知,在大型系统设计过程中要查找造成系统不稳定的原因是很复杂的6,而同步设计则可以最大程度的避免这种问题的产生。下面我们就以实际项目中经常会遇到的一些设计问题为例来说明同步设计的优势。3.1 同步清零在FPGA的设计中,除了从外部管脚引入的全局清零信号外,内部逻辑处理也经常需要产生一些局部的清零信号7。由于这些信号对毛刺是非常敏感的,所以清零信号的设计需要像对待时钟那样小心考虑。在同步电路设计中,有一种行之有效的设计方法,即用同步清零的办法来替代局部清零。如用硬件描述语言进行设计,可描述如下:局部清零的描述方法:process(rst,clk) -当rst信号为1时计数器清零begin if rst=1 then count0); elsif clkevent and clk=1 then count=count+1; end if; end process; 同步清零的描述方法:process -当时钟上升沿到来,并且rst信号为1时计数器清零begin wait until clkevent and clk=1; if rst=1 then count0);else count=count+1;end if;end process;从这两个进程的描述可以看出,同步清零时比局部清零多了一个条件,就是需要在时钟上升沿到来时清零信号才有效,计数器才被清零。这样做的好处是:即使有毛刺,但只要不与时钟上升沿同时到来,计数器就不会被清零,降低了计数器异常清零的可能。3.2 分频在几乎所有FPGA应用项目中都会遇到分频设计8,不少设计者的做法是先用高频时钟计数,然后使用计数器的某一位作为工作时钟进行设计。实际上这样的方法是不规范的,比如下面的描述方法:process -时钟上升沿到来时,如果reset信号为1,则cnt清零。begin wait until clkevent and clk=1; if reset=1 then cnt0); else cnt=cnt+1; end if;end process; process(cnt) -把cnt(2)作为时钟,如果它的上升沿到来,则把data的数据赋begin -给shift_regif cnt(2)event and cnt(2)=1 then shift_reg=data; end if;end process;在上述的第一个process电路描述中,首先,计数器的输出结果cnt(2)相对于全局时钟clk已经产生了一定的延时(延时的大小取决于计数器的位数和所选择使用的器件工艺);而在第二个process中使用计数器的cnt(2)作为时钟,那么shift_reg相对于全局clk的延时将变得难以控制,可能无法满足信号建立时间和保持时间的要求而产生亚稳态输出。仿真结果如图2所示,红框中为亚稳态输出。放大后的情况如图3红框中所示,希望shift_reg的输出值为46,但是却含有4、12、44三个无规律值。图2 不规范的分频设计图3 放大后的亚稳态输出正确的做法应该将第二个process分为两个process: process(cnt) -如果cnt为100,则en赋值为1,否则为0。begin if cnt=100 then en=1;else en=0;end if;end process; process(clk) -在时钟上升沿到来时,如果en为1,则把data的值赋给shift_regbeginif clkevent and clk=1 thenIf en=1 thenshift_reg=data;end if;end if;end process;这样做是相当于产生了一个8分频的使能信号,在使能信号有效的时候将data数据采样到shift_reg寄存器中。相对于前一种设计方法而言,通过对第二设计方法的仿真结果(图4)进行分析,可以清楚地看到:采用同步设计方法,不仅得到的shift_reg的延时是相对于全局时钟clk的,令data的建立时间和保持时间容易控制,可以满足时序要求,而且消除了不规范分频所产生的亚稳态输出。 图4 同步的分频设计4 结语综上所述,通过对基于FPGA的数字系统不同设计方法的对比分析,我们得出了这样的结论:不合理的设计方法会严重影响系统的稳定性,而且还可能产生诸如毛刺这样的干扰脉冲。实验表明同步设计技术是解决这些问题的一种有效方法,采用这种设计方法能够明显提高系统稳定性,并有效地抑制毛刺带来的影响。参考文献1谢正光.数字系统设计中VHDL语言设计问题探讨J.微型机与应用,2006,23(7):17-182John F.Wakerly. Digital Design Principles and PracticesM.机械工业出版社,20073清华大学电子学教研组,余孟尝. 数字电子技术基础简明教程M.高等教育出版社,19854 FPGA同步设计技术EB/OL./cpu_/blog/item/155f85d340d56135960a1

温馨提示

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

评论

0/150

提交评论