异步fifo如何完成时钟域同步与异步

4295人阅读
技术人生(71)
随着信息技术的飞速发展,特别是在二十世纪90年代以后,美国在南斯拉夫战争和两次海湾战争中成功地运用了电子战、信息战,以及近年来我国在航天航空事业方 面的高速发展,使我国开始重视和发展信息技术。与此同时对高速、大容量、高可靠性的静态存储器的需求越来越多,对军用的数据存储器的设计也提出了更高的要 求。目前军用计算机传输数据的最快方式——DMA方式的传输速率最大也只是在5Mbps以下。对于几十Mbps的超高速采样速率,往往是上一次数据还没有 被计算机读取,下一次的采集过程就结束了。因此采用传统的计算机传输处理数据的方法,显然会造成数据的丢失与混乱。所以对于快速采集,慢速处理的系统必然
要用到缓存。本文就是针对数据存储器FIFO解决亚稳态问题的设计,经过对不同方法的比较,设计了一种新型的逻辑标志的同步电路。
1亚稳态问题的解决方案
1.1问题的产生
&&& 在数字集成电路中,触发器要满足setup/hold的时间要求。当一个信号被寄存器锁存时,如果信号和时钟之间不满足这个要求,Q端的值是不确定的,并 且在未知的时刻会固定到高电平或低电平,这个过程称为亚稳态,如图1所示。图中clka和clkb即为异步时钟,亚稳态必定会发生在异步时钟电路中。在图 1的异步电路中,电路外部的输入和内部的时钟之间是毫无时间关系的,因此setup/hold冲突是必然的;同在电路内部的两个没有关系的时钟域之间的信 号传递,也必然会导致setup/hold冲突。亚稳态虽然是不可避免的,但采用下面几种设计方法可以将其发生的概率降低到一个可以接受的程度。
1.2 常见的解决方法
1.2.1格雷码编码法
&&& 写地址/读地址采用格雷码。由实践可知,同步多个异步输入信号出现亚稳态的概率远远大于同步一个异步信号的概率。对于多个触发器的输出所组成的写地址/读 地址可以采用格雷码。由于格雷码每次只变化一位,因此采用格雷码可以很好地节约功耗,有效地减少亚稳态的产生,特别是在地址位比较多的情况下可以更好地解 决亚稳态的问题。
&&& 格雷码是对二进制地址输出进行转换,下面是四位代码之间转换的逻辑表达式:
B码转G码的逻辑表达式:G码转B码的逻辑表达式:
B4=G4&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &G4=B4
B3=B4?G3&&&&&&&&&&&&&&&&&&&&&&& G3=B4?B3
B2=B3?G2&&&&&&&&&&&&&&&&&&&&&&& G2=B3?B2
B1=B2?G1&&&&&&&&&&&&&&&&&&&&&&& G1=B2?B1
&&& 但采用格雷码编码法需要在地址位的每一位增加一级的异或门,这样在计数比较前增大了延时和版图面积。同时在地址分配到其他逻辑单元前要把格雷码转换成二进制代码,这同样也会增大版图设计面积和延时。
1.2.2 双触发器法
&&& 采用触发器来同步异步输入信号,如图2中的两级触发器可以将出现亚稳态的概率降低到一个很小的程度。由于增加了一级触发器,这样在最后的输出就延迟了一个 时钟,使前一个时钟产生的数据被b_clk连续锁存两次。虽然第一次锁存产生亚稳态,但经过一段时间的延时可以有效地解决这个问题。这种方法同时带来了对 输入信号的一级延时,需要在设计时钟的时候加以注意。
&&& 虽然两级触发器能有效地抑制亚稳态,但增加了一级的D触发器,这和格雷码编码法一样会增加版图面积。这种方法在clka与clkb的采样周期相差不大的情况下比较适合。
1.2.3 结绳法
&&& 如图3所示,如果aclk的频率比bclk频率高,将可能会出现因为adat变化太快而使balk无法采到的问题,即在信号从快时钟域向慢时钟域过渡时, 如果信号变化太快,慢时钟将可能无法对该信号进行正确采样,即采样失败。所以在使用双锁存器法时,应该使原始信号保持足够长的时间,以便另一个时钟域的锁 存器对其进行正确的采样。
&&& 对上述问题,一般采用“结绳法”的设计方法,将慢时钟周期信号通过分频的方式将其周期增长,经过双锁存采样以后再使其恢复原来的时钟周期。即用“结绳”将 信号延长,用“同步”实现双latch采样,用“解绳”还原为原来的时钟,保证另一个时钟域也可以正确采样,而接收方用相反的流程送回响应信号。
&&& “结绳法” 可以解决快时钟域向慢时钟域过渡的问题,适用的范围也很广。但是“结绳法”实现较为复杂,特别是其频率不高,所以在对设计性能要求较高的场合应该慎用。
2 基于异步比较FIFO 逻辑标志的产生
2.1 设计思想
&&& 异步FIFO可以很好地解决时钟速度相差悬殊的时钟间的数据传输问题。异步FIFO存储器在结构上可划分为存储阵列和外围电路两大部分,它由几个主要模块 组成:存储单元RAM、写控制逻辑、读控制逻辑、标志逻辑、扩展逻辑、复位逻辑以及并/串转换逻辑。这里主要考虑产生空、满标志的同步。
&&& 标志逻辑是用以产生反映器件内部RAM 阵列占用情况的状态标志信号,使系统可以及时采取措施以免数据溢出。在FIFO中标志位的产生是关键的一步,如果能够及时判断出每一个时钟下写入和读出的 位置,就可以防止产生误操作,做到写满不再写、读空则停止读。在异步FIFO中的标志位主要包括空标志、满标志、半满标志和将近满、将近空标志。异步 FIFO逻辑框图如图4所示。
2.2 标志位的产生
2.2.1空、满标志位的产生标志逻辑
&&& 满标志是为了防止FIFO在满状态时被写,空标志是为了防止FIFO在空状态时被读。对于异步FIFO 而言,数据是由某一个时钟域的控制信号写入FIFO,而由另一个时钟域的控制信号将数据读出FIFO。也就是说,读写指针的变化动作是由不同的时钟产生 的。因此,对FIFO空或满的判断是跨时钟域的。如何根据异步的指针信号对FIFO的满状态或空状态进行正确的判断是研究的重点之一。
&&& 当读指针和写指针相等也就是指向同一个内存位置时,FIFO可能处于满或空两种状态。可以通过不同的方法判断或区分FIFO究竟是处于满状态还是空状态, 也就是说究竟是写指针从后赶上了读指针,还是读指针从后赶上了写指针。本文采用设置一个额外的状态位的方法,即指针由它的地址位以及状态位组成。地址位随 着相应的操作递增,指针由内存的最后位置返回到初始位置时,状态位取反。因此,当读写指针的地址位和状态位全部吻合的时候,读写指针经历了相同次数的循环 移动,也就是说,FIFO处于空状态;如果读写指针的地址位相同而状态位相反,写指针比读指针多循环一次,标志FIFO处于满状态。
2.2.2异步比较FIFO逻辑标志与时钟的同步
&&& 一般的异步FIFO是先将读地址与写地址同步以后(以上提到的方法)再进行比较,这种方法一般效率不高,不能很好地节省制版面积。本文采用一种异步比较法。能够有效地解决这一问题。目前IDT公司的系列产品一般都采用这种异步比较法。
&&& 在异步FIFO中,由FIFO读时钟产生读地址rptr,写时钟产生写地址wptr。当rptr与wptr进行异步比较时,由于rptr的变化 (assert)产生aempty_n(FIFO空标志),即aempty_n的下降沿是与rptr同属于一个时钟域的;同理,由于wptr的变化 (assert)使aempty_n无效(de-assert),即aempty_n的上升沿是与wptr同属于一个时钟域的。异步比较的时钟域如图5所 示。
&&& 因此可以利用上述的理论基础来实现从aempty_n到empty的过渡。其中,empty是属于rclk时钟域的。由于aempty_n的下降沿是属于 rclk时钟域的,所以可以用它来作为empty的复位信号;而aempty_n的上升沿是属于welk时钟域的,因此可以用双锁存器法将其过渡到 relk时钟域,最后得到的empty信号就属于rclk时钟域。同理可以得到full信号。控制信号同步如图6所示。
&&& 如图6所示,异步比较法的关键是用异步比较的结果—— 信号的下降沿作为最终比较结果的复位信号,而其上升沿则用传统的双锁存器法进行同步,最终得到的信号的上升沿与下降沿都是属于同一个时钟域。同时增加的两 级锁存器也增加了一个时钟周期的延时输出,这样在满有效状态下,同时来自读写时钟的读写指令存在潜在的亚稳态问题就可以避免。在与传统的先将地址信号同步 然后进行同步比较的方法相比,异步比较法简单、高效、节省版图面积,而且实现起来更简单。
2.2.3 半满、将近满、将近空的产生
&&& 半满、将近满和将近空是对FIFO芯片容量的一种提前判断。半满标志是一个双用输出端口,在单片模式下,当扩展输入端接地时,这个端口就作为半满标志。在字扩展模式下,该端口为扩展输出端。
&&& 以2K字容量的FIFO为例来说明异步FIFO的半满与将近满。如图7所示:半满是指当写指针的位置与读指针的位置相比较,如果w_point和 r_point距离超过总容量的一半,那么输出半满为有效输出。当2K字的FIFO半满有效时,标志w_point地址减去r_point地址的范围在 1K~2K字之间。在具体电路实现上,2K字的FIFO计数器的输出共有12个地址线,其中第12根是为了判断满和空标志用的。所以判断半满主要是对第 11根地址的读和写计数输出相同情况和不同情况下进行判断。
&&& 将近空和将近满一般是读和写总容量相差在0~1/8和7/8~1之间,也有的设计是相差在几个比特范围之内。这个电路一般用的是比较器判断。在2K字的 FIFO中一般把后高4位放在一起,先判断正在读的高4位和写的高4位的大小关系,再对应判断其他低位的大小关系,看是否符合设计要求。当高4位写地址减 去读地址小于1、其低位读地址大于写地址时,产生将近空。同样,将近满也是先判断:若高4位写地址减去读地址大于15、低位读地址大于写地址时,将近满输 出有效。图7为设计2K字的FIFO将近空和半满标志位在Candenee软件下的仿真结果图。
&&& 对于标志信号都是采用异步比较输出下降沿作为最终比较结果的复位信号,而其上升沿则采用传统的双锁存器法进行同步的方法。此外,在FIFO 的设计中还要考虑写入和读出的位宽是否相等,在不相等的情况下要设计输入输出的自动匹配,使输出位宽等于输入位宽。同时为FIFO 的深度扩展和宽度扩展设计扩展逻辑,以适应多位宽和大容量的要求。
&&& 一般的异步FIFO通常所采用的是先将读、写地址同步后比较的方法,而本文提出的异步比较以后利用触发器同步的方法相对前者可以减少延时,从而使系统有更 充裕的时间去进行读、写操作,有利于提高时钟频率,减少逻辑器件个数,从根本上节约了版图面积。因此在以面积决定成本的今天,对FIFO标志位的产生采用 异步比较法具有极其重要的现实意义。
这里重点说一下结绳法,就是握手法,原理如下:在具体 实现中,假设req、ack、data总线在初始化时都处于无效状态,发送域先把数据放入总线,随后发送有效的req信号给接收域。接收域在检测到有效的 req信号后 锁存数据总线,然后回送一个有效的ack信号表示读取完成应答。发送域在检测到有效ack信号后撤销当前的req信号,接收域在检测到req撤销后也相应 撤销ack信号,此时完成一次正常 握手通信。此后,发送域可以继续开始下一次握手通信,如此循环。该方式能够使接收到的数据稳定可靠,有效的避免了亚稳态的出现,但控制信号握手检测会消耗通信双方较多的时间。
上面这张图不是配套的,我理解vld这个就是由同时钟域的脉冲转换成电平的一个信号,所以基本原理还是很明白的。
以下附上别人的代码:
always @ (negedge rst_n or posedge t_clk)
&&if(rst_n == 1'b0)
&&&&&ack_reg1 &= 1'b0;
&&&&&ack_reg2 &= 1'b0;
&&&&&ack_reg1 &=
&&&&&ack_reg2 &= ack_reg1;
always @ (negedge rst_n or posedge t_clk)
&&if(rst_n == 1'b0)
&&&&&data_buf &= 'b0;
&&&&&tr_state &= TR_IDLE;
&&&&&TR_MEM_Addr &= 0;
&&&&&case(tr_state)
&&&&&TR_IDLE :&&&&
&&&&&begin
&&&&&&&&req &= 1'b0;
&&&&&&&&TR_MEM_Addr &= 0;
&&&&&&&&tr_state &= SND_DATA_REQ;
&&&&&SND_DATA_REQ:
&&&&&begin
&&&&&&&&data_buf &= TR_MEM[TR_MEM_Addr];
&&&&&&&&req &= 1'b1;
&&&&&&&&TR_MEM_Addr &= TR_MEM_Addr + 1;
&&&&&&&&tr_state &= CHK_ACK_ACTIVE;
&&&&&CHK_ACK_ACTIVE :
&&&&&begin
&&&&&&&&if(ack_reg2 == 1'b1)&
&&&&&&&&begin
&&&&&&&&&&&req &= 1'b0;&&&&&&&
&&&&&&&&&&&tr_state &= CHK_COMM_END;
&&&&&&&&end
&&&&&&&&else
&&&&&&&&&&&tr_state &= CHK_ACK_ACTIVE;
&&&&&CHK_COMM_END :&&
&&&&&begin
&&&&&&&&if(ack_reg2 == 1'b0)
&&&&&&&&&&&tr_state &= SND_DATA_REQ;
&&&&&&&&else
&&&&&&&&&&&tr_state &= CHK_COMM_END;
&&&&&default: tr_state &= TR_IDLE;
assign dout = data_
always @ (negedge rst_n or posedge r_clk)
&&if(rst_n == 1'b0)
&&&&&req_reg1 &= 1'b0;
&&&&&req_reg2 &= 1'b0;
&&&&&req_reg1 &=
&&&&&req_reg2 &= req_reg1;
always @ (negedge rst_n or posedge r_clk)
&&if(rst_n == 1'b0)
&&&&&re_state &= RE_IDLE;
&&&&&ack &= 1'b0;
&&&&&RE_MEM_Addr &= 0;
&&&&&case(re_state)
&&&&&RE_IDLE :&&&&&&&&&&
&&&&&begin
&&&&&&&&RE_MEM_Addr &= 0;
&&&&&&&&re_state &= CHK_REQ_ACTIVE;
&&&&&CHK_REQ_ACTIVE :&&&
&&&&&begin
&&&&&&&&if(req_reg2 == 1'b1)&&&&
&&&&&&&&begin
&&&&&&&&&&&RE_MEM[RE_MEM_Addr] &=
&&&&&&&&&&&ack &= 1'b1;
&&&&&&&&&&&RE_MEM_Addr &= RE_MEM_Addr + 1;&&
&&&&&&&&&&&re_state &= CHK_REQ_RELEASE;
&&&&&&&&end
&&&&&&&&else
&&&&&&&&&&&re_state &= CHK_REQ_ACTIVE;
&&&&&CHK_REQ_RELEASE :&&&&
&&&&&begin
&&&&&&&&if(req_reg2 == 1'b0)
&&&&&&&&begin
&&&&&&&&&&&ack &= 1'b0;&
&&&&&&&&&&&re_state &= CHK_REQ_ACTIVE;
&&&&&&&&end
&&&&&&&&else
&&&&&&&&&&&re_state &= CHK_REQ_RELEASE;
&&&&&default: re_state &= RE_IDLE;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:169455次
积分:2087
积分:2087
排名:第13558名
原创:30篇
转载:69篇
评论:19条
(1)(1)(1)(1)(3)(3)(1)(1)(1)(1)(1)(1)(10)(6)(2)(1)(5)(1)(2)(2)(2)(3)(1)(2)(5)(9)(10)(10)(4)(1)(7)需要确认注册邮箱后才能开通博客,
>>>异步信号如何进行同步(不同时钟域数据如何交换)?
3年会员勋章目前未领取。领取条件:&凡是注册时间三年以上的活跃用户即可领取该勋章。
fpga082的博客&&为梦想@不停歇
博主:&&&&
不积跬步,无以至千里;不积小流,无以成江海。
文章(139)&&&&
访问(82712)&&&&
评论(48)&&&&
投票(72)&&&&
订阅本博&&
博文列表查看方式:
需要确认注册邮箱后才能下载,
1、两级触发器,减少可能出现的亚稳态的影响 !
2、异步FIFO& 或 双口RAM !
3、握手(有效使能,确认)!
时钟抖动(jitter)和偏移(skew)的概念 ?
&抖动:由于晶振本身稳定性,电源以及温度变化等原因造成了时钟频率的变化,就是jitter,指的是时钟周期的变化。指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。在设计中无法避免它能带来的影响,通常只能在设计中留有一定的margin
偏移:是指同样的时钟产生的多个子时钟信号之间的延时差异。skew通常是时钟相位上的不确定。由于时钟源到达不同寄存器所经历路径的驱动和负载的不同,时钟边沿的位置有所差异,因此就带来了skew。完成布局布线后,物理路径延时是固定的,所以在设计中考虑到时钟偏移,就可以避免偏移带来的影响。
锁存器和触发器区别 ?
锁存器是电平触发的,只要输入信号电平变化,输出就会按照一定逻辑变化,持续有效。
触发器一般是时钟边沿触发(也有电平触发),当触发信号到来时,输出才会根据输入的变化变化,没有触发信号,输出不会根据输入而变化。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
&&&&&&有[ 1 ]名读者喜欢此文
阅读(1536)&&
最近到访博主
评论是对思考最好的总结…
你还可以输入1000字
--- 现有 1 个主题,共 1 页 ---
转发到我的博客
评论&&的“异步信号如何进行同步(不同时钟域数据如何交换)?”
方法:1、两级触发器,减少可能出现的亚稳态的影响!2、异步FIFO或双口RAM!3、握手(有效使能,确认)!时钟抖动(jitter)和偏移(skew)的概念?抖动:由于晶振本身稳定性,电源以及温度变化等原因造成了时钟频率的变化,就是jitter,指的是时钟周期的变化。指两个时钟周期之间存在的差值,这...
你还可以输入30000字
同时评论给&fpga082
努力做一名卓越的电子工程师 !
blue_fily&&22:52 01-11
zcz2004&&11:09 11-19
zcz2004&&17:38 09-06
EDNChina&&16:17 07-28
zcz2004&&22:58 01-25
成员18972名创建者:
成员3308名创建者:
成员162名创建者:
-- Use of this website is subject to its terms of use.
京ICP备号-4 |
京公网安备37 |
新版社区已上线,旧版论坛、博客将停用
1、为防数据丢失,旧版论坛、博客不再接受发帖;
2、老用户只需重设密码,即可直接登录新平台;
3、新版博客将于8月底完美归来,敬请期待;
4、全新论坛、问答,体验升级、手机阅读更方便。异步fifo 异步FIFO设计(易懂+verilog代码)
异步FIFO设计摘要本文采用格雷码设计了一个异步FIFO,经过DC综合的结果如下:时钟频率:1.1GHz面积:????um2功耗:????7.791mw??目??录1.?异步FIFO的设计?................................................................................................................?21.1?异步FIFO简介?..........................................................................................................?21.2?FIFO的参数?................................................................................................................?21.3?FIFO的设计原理?........................................................................................................?21.4?FIFO的设计模块?........................................................................................................?61.5?用modelsim仿真FIFO?...........................................................................................?111.6?用DC对FIFO进行综合?..........................................................................................?132.参考文献?..............................................................................................................................?15??????1??????异步fifo 异步FIFO设计(易懂+verilog代码)1.??异步FIFO的设计??1.1?异步FIFO简介FIFO是英文First?In?First?Out?的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。[wWW.NiUBb.nEt]根均FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。异步FIFO(Asynchronous?FIFO),一般用于不同时钟域之间的数据传输,比如FIFO的一端连接频率较低的AD数据采样信号,另一端与计算机的频率较高的PCI总线相连。另外,对于不同宽度的数据接口也可以用AFIFO,例如单片机为8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用AFIFO来达到数据匹配的目的。由于实际中,异步FIFO比较常见。为了便于描述,在后面的章节中将异步FIFO简称为FIFO.1.2?FIFO的参数?FIFO的宽度:??进行一次读写操作的数据的位宽。FIFO的深度:??双口存储器中能容纳的数据的总数。满标志:??????FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出。空标志:??????FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出。??读时钟:??????读操作所遵循的时钟,在每个时钟沿来临时读数据。??写时钟:??????写操作所遵循的时钟,在每个时钟沿来临时写数据。??读指针:??????指向下一个读出地址。读完后自动加1。写指针:??????指向下一个要写入的地址的,写完自动加1。读写指针其实就是读写memory的地址,只不过这个地址不能任意选择,而是连续的。1.3?FIFO的设计原理整体的框图如下:??????2??????异步fifo 异步FIFO设计(易懂+verilog代码)图1.1??FIFO的整体电路图1.3.1??FIFO的读写指针??FIFO可以看成是先进新出的缓冲区,它不像普通的存储器那样,有专门的地址信号。(wWw.nIUBb.neT)它只能根据地址,顺序地读写缓冲区。所以需要有两个读写指针。这里定义如下:wptr:??写数据的指针rptr:???读数据的指针每读/写完一个数据,读/写指针就会加1,指向下一个待读/写的位置。1.3.2??同步器的设计??为了产生空/满标志,需要对2个读/写指针进行比较。由于FIFO的读/写时钟信号,来自2个不同的时钟域,所以先要将这2个指针同步到一个时钟域。这里采用两级D触发器级联来构成同步器。1.3.3??格雷码计数器??采用二进制码对地址指针进行计数时,从一个计数值变到下一个计数值时,可能有多位发生跳变,如从7?8变化时,低位由,这样同步器在采样数据时,可能会发生错误。由于采用格雷码计数时,每次只有1位发生跳变,这样使亚稳态发生错误的可能性大大减小了。??????3??????异步fifo 异步FIFO设计(易懂+verilog代码)1.3.4??空标志的产生??由于读/写指针,总是指向FIFO的memory中下一个要读/写的位置。[WWW.NIUbB.NET]只有在读/写复位的时候,读/写指针才回到0位置。复位后,随着数据的读出/写入,读/写指针指向的地址逐渐增加。如果读的速度比较快,当读指针赶上写指针,即读指针与写指针指向同一个位置时,输出的空标志有效。如下图所示:图1.2??FIFO的空/满标志1.3.5??满标志的产生??满标志的产生,基于这样的原理:即“写指针比空指针多绕了一圈”后,又指向了空指针所指向的位置。由上可知,空标志的产生,也是由于读/写指针指向了同一位置。那怎么来区分,当读/写指针指向同一位置时,FIFO是满,还是空呢?这里,采用增加一位地址位的方法,来区分满标志和空标志。假设FIFO的深度为16,那么采用5位的读/写地址指针。地址的低4位,用来对寻址memory,读/写指针的最高位用来判断FIFO为空还是为满。当读/写指针的低4位相同时,如果最高位也相同,那么空标志有效,否则满标志有效。欢迎您转载分享:您的位置:
基于FPGA设计的跨时钟域的同步方法
基于FPGA设计的跨时钟域的同步方法
The Synchronization in the Asynchronous Clock Design based on FPGA
发布时间:  浏览量:265  收藏数:0  评论数:
北京邮电大学信息与通信工程学院;
跨时钟域的同步问题是FPGA设计中的一个难点问题,本文在分析了跨时钟域所带来的亚稳态之后提出了FPGA设计中跨时钟域的同步方法,其中重点介绍了利用异步FIFO来实现跨时钟域的同步问题,并用Verilog HDL硬件描述语述语言设计了该方案,验证了该方法的正确性。
通信与信息系统;跨时钟域;同步;FPGA;亚稳态
TANG Huiyan*
Information and Communication School, Beijing University of Posts and Telecommunications;
Abstract:
It is a difficult problem to synchronous in the asynchronous clock design for FPGA. This paper introduces metastable state phenomena and the relative problems, several approaches of synchronization to deal with the problem are discussed especially introducing the approach using FIFO to synchronize clock in the design for FPGA, simulate and verify the approach with Verilog HDL and prove its feasibility.
Keywords:
Communication and Information S FPGA; metastable state
PDF全文下载:
&&&&(384)
作者简介:
唐辉艳(1985-),女,硕士研究生,无线通信
通信联系人:
【收录情况】
中国科技论文在线:唐辉艳.&基于FPGA设计的跨时钟域的同步方法[EB/OL].北京:中国科技论文在线&
[].http://www./releasepaper/content/.
发表期刊:
首发论文搜索
&> 信息科学与系统科学
&> 地球科学
&> 畜牧、兽医科学
&> 基础医学
&> 临床医学
&> 预防医学与卫生学
&> 军事医学与特种医学
&> 中医学与中药学
&> 工程与技术科学基础学科
&> 测绘科学技术
&> 材料科学
&> 矿山工程技术
&> 冶金工程技术
&> 机械工程
&> 动力与电气工程
&> 能源科学技术
&> 核科学技术
&> 电子、通信与自动控制技术
&> 计算机科学技术
&> 化学工程
&> 纺织科学技术
&> 食品科学技术
&> 土木建筑工程
&> 水利工程
&> 交通运输工程
&> 航空航天科学技术
&> 环境科学技术
&> 安全科学技术
&> 图书馆、情报与文献学
&> 体育科学
尊敬的作者,欢迎您在本站投稿:
注:请投稿作者直接在本站注册并登录提交文章,
任何个人或机构宣称代理在本站投稿均为侵权行为
本学科今日推荐
本文作者合作关系
本文相关论文
&&&&&&&&&&&&&&
中国科技论文在线
&|&&|&&|&&|&&|&nbsp
光电子学与激光技术
半导体技术
信息处理技术
广播与电视工程技术
自动控制技术
电子、通信与自动控制技术其他学科
基于FPGA设计的跨时钟域的同步方法
&&收藏本文
&&推荐本文给好友
&&订阅本文所在学科
&&分享到我的圈子
多个邮箱请用逗号“,”隔开
分享到我的圈子}

我要回帖

更多关于 同步与异步 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信