资料介绍
DSP/FPGA
FPGA设计经验之边沿检测
发布日期:2009-3-22 10:50:43 文章来源:搜电 浏览次数: [pic]219
[pic][pic][pic] 在同步电路设计中,边沿检测是必不可少的!
例如:在一个时钟频率16MHz的同步串行总线接收电路里,串行总线波特率为1Mbps。在
串行总线的发送端是在同步时钟(1MHz)的上升沿输出数据,在接收端在同步时钟的下
降沿对输入数据进行接收采样。在这个接收电路里检测同步时钟的下降沿是必不可少的
。假设主时钟-clk,同步时钟-rck,同步数据-data。
有些人在边沿检测的时候就喜欢这样做:
代码
1. signal rck_dly: std_logic; --定义一个触发器
2. signal data_buf: std_logic; --数据缓冲器
3. RCK_Delay:process(clk,rst_n)
4. begin
5. if rst_n='0' then
6. rck_dly <= '0';
7. elsif rising_edge(clk) then
8. rck_dly <= rck;
9. end if;
10. end process;
11.
12. Data_Receivee:process(clk,rst_n)
13. begin
14. if rst_n='0' then
15. data_buf <= '0';
16. elsif rising_edge(clk) then