一个信号a要从快时钟域clk1(250M 左右)同步到慢时钟域Clk2(33M)

一个信号a要从快时钟域clk1(250M 左右)同步到慢时钟域Clk2(33M),应该如何做? 能直接给出verilog代码感激不尽.
我也来说两句 查看全部回复

最新回复

  • ccj507 (2008-7-22 14:50:46)

    如果a只是1bit,那用两级DFF级连,用CLK2为时钟,采a就行了...
  • qingchuyu (2008-7-22 15:01:22)

    n-bits data  usually use handshake  or asynchronous FIFO to solve the cross clock  domain
  • onewrong (2008-7-22 15:10:54)

    握手信号更好些
  • david0915 (2008-7-22 15:12:23)

    具体要看信号a是什么样子的。

    1.如果a只是1bit控制信号,且保持有效时间够长(至少2个Clk2的时间); 2 个DFF就可以完成同步;
    2.如果a只是1bit控制信号,且只是一个clk1的单脉冲(此单脉冲间隔至少为2个CLK2时间),可以用‘脉冲同步器’完成同步
    3.如果a是n bit数据/地址/控制信号,考虑FIFO吧,握手也可不过比较麻烦。
  • wwxiaobing (2008-7-22 18:18:01)

    学习一下。。我有个疑问 设计FIFO,
    判断EMPTY ,FULL的时候 ,为了防止亚稳态,好像也要读写时钟域的同步问题啊?是不是也会出现高速到低速的同步?
    这个咋处理比较好!
  • x512775199 (2008-7-22 18:44:10)

    嗯 LS说的已经很好了

    今天的论坛很热也吖。
  • tspen (2008-7-22 18:51:38)

    用fifo比较可行,33Mhz的时钟去采样250mhz时钟的信号,根本不可靠。
  • coco81925 (2008-7-22 20:26:47)

    握手信号更好些
  • walk2run (2008-7-22 22:01:43)

    也可以用特殊的dff
  • aiken (2008-7-22 23:00:49)

    you can only use is fifo
    You can find the fifo design from your develop tools
  • david0915 (2008-7-23 10:11:39)

    QUOTE:

    原帖由 wwxiaobing 于 2008-7-22 18:18 发表
    学习一下。。我有个疑问 设计FIFO,
    判断EMPTY ,FULL的时候 ,为了防止亚稳态,好像也要读写时钟域的同步问题啊?是不是也会出现高速到低速的同步?
    这个咋处理比较好!
    具体的讲,是要将读指针同步到写时钟域,写指针同步到读时钟域。这样做是为了判断full/empty状态。同步的方法是2DFF;

    还有一种方法是采用异步比较读/写指针,并判断full/empty.
    具体请参看Cummings关于FIFO文档,详细讲解style1/style2 两种FIFO结构。
  • arcdoos (2008-7-23 13:15:28)

    如何握手?
  • arcdoos (2008-7-23 13:15:55)

    QUOTE:

    原帖由 onewrong 于 2008-7-22 15:10 发表
    握手信号更好些
    如何握手?
  • ishock (2008-7-23 14:20:44)

    说得很好!!!!
  • fanghj (2008-7-23 14:34:08)

    不断学习才有进步~
  • xiaoyuer38 (2008-7-23 16:04:27)

    学习     ...