找回密码
 注册
关于网站域名变更的通知
查看: 205|回复: 1
打印 上一主题 下一主题

FPGA设计经验之边沿检测

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-30 14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
FPGA设计经验之边沿检测

* s5 |, ?, r" @; C0 H: o. R7 e9 K2 `
0 c0 |# H: p$ a. K7 K在同步电路设计中,边沿检测是必不可少的!
  v6 X5 e' m6 L2 E    例如:在一个时钟频率16MHz的同步串行总线接收电路里,串行总线波特率为1Mbps。在串行总线的发送端是在同步时钟(1MHz)的上升沿输出数据,在接收端在同步时钟的下降沿对输入数据进行接收采样。在这个接收电路里检测同步时钟的下降沿是必不可少的。假设主时钟-clk,同步时钟-rck,同步数据-data。
0 f* U/ l2 ~3 J0 A  有些人在边沿检测的时候就喜欢这样做:代码
  • signal rck_dly: std_logic;   --定义一个触发器
  • signal data_buf: std_logic;  --数据缓冲器
  • RCK_Delay:process(clk,rst_n)
  • begin
  •     if rst_n='0' then
  •        rck_dly <= '0';
  •     elsif rising_edge(clk) then
  •        rck_dly <= rck;
  •     end if;
  • end process;
  • Data_Receivee:process(clk,rst_n)
  • begin
  •   if rst_n='0' then
  •      data_buf <= '0';
  •   elsif rising_edge(clk) then
  •      if (rck_dly='1' and rck='0') then   --RCK下降沿(但这个条件是否总会出现?)
  •          data_buf <= data;
  •      end if;
  •   end if;
  • end process;) Z( H$ r- b# V. S2 _
   但是大家忽略了一种情况,就是clk与rck之间比没有必然的同步关系,当rck的下降沿刚好略滞后于clk的上升沿(大概几个ns),这样就会使高电平 保持时间不足,就会发现在本时钟上升沿时还是rck_dly='1' and rck='1',而在下一个时钟的上升沿来的时候,就会出现rck_dly='0' and rck='0',所以就不会有rck_dly='1' and rck='0'的情况出现!! 从而导致丢失数据。
) g0 l  }& n! r  q7 A2 F7 k  如果用下面的方法就可以避免上面的情况,并且可以做到正确无误地接收数据:
, K1 H! T6 a5 o$ e9 Y代码
  • signal rck_dly: std_logic_vector(1 downto 0);
  • signal data_buf: std_logic;
  • RCK_Delay:process(clk,rst_n)
  • begin
  •   if rst_n='0' then
  •      rck_dly <= (others=>'0');
  •   elsif rising_edge(clk) then
  •      rck_dly <= rck_dly(0) & rck;
  •   end if;
  • end process;
  • Data_Receiver:process(clk,rst_n)
  • begin
  •   if rst_n='0' then
  •      data_buf <= '0';
  •   elsif rising_edge(clk) then
  •      if rck_dly="10" then
  •         data_buf <= data;
  •      edn if;
  •   end if;
  • end process;
    ' f" v( A/ j+ d* X
  至于以上电路为什么就可以克服上面出现的情况,就留给大家分析了。& T( L' m1 \2 N
  不得不承认后一种方法所耗的资源要比前一种方法多(一个触发器),但是就可以大大提高可靠性,这绝对是物有所值!!9 u. j. V3 _& F) }
  ~8 t  s0 P+ B

该用户从未签到

2#
发表于 2019-5-30 17:55 | 只看该作者
这绝对是物有所值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 13:01 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表