集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2312|回复: 1

双沿触发的VHDL实现

[复制链接]
老怪甲 该用户已被删除
老怪甲 发表于 2010-5-25 13:33:35 | 显示全部楼层 |阅读模式
双沿触发的VHDL实现

在帖子“上升沿与下降沿触发小论”中,采用了高速时钟提取低速时钟跳变沿的办法实现了低速时钟上升沿和下降沿触发的问题。在论坛仍见到有设计者提出双沿触发的问题,实现类似于DDR双沿跳变技术。本文给出一个用VHDL实现的双沿跳变计数器DDRcnt,旨在给出设计双沿触发的一个思路。DDRcnt中用到一个上升沿计数器rcnt和一个下降沿计数器fcnt,双沿计数器cnt通过clock在rcnt和fcnt之间进行选择。
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.std_logic_unsigned.all;
Entity DDRcnt is Port(
    clock    : in std_logic;
    q       : out std_logic_vector(3 downto 0)
    );
End DDRcnt;
Architecture myFavor of DDRcnt is
Signal cnt,rcnt,fcnt      : std_logic_vector(3 downto 0);
Begin
q <= cnt;
cnt <= rcnt when clock = &#39;1&#39; else
      fcnt;
Process(clock) begin
if rising_edge(clock) then
    rcnt <= cnt + 1;
end if;
End process;
Process(clock) begin
if falling_edge(clock) then
    fcnt <= cnt + 1;
end if;
End process;
End myFavor;
双沿触发采用了时钟馈入数据逻辑的办法,在FPGA的设计中是不提倡的,我没有做过ASIC,也许在ASIC设计中建议采用这种办法。
Sunlife 发表于 2015-4-7 10:37:04 | 显示全部楼层
实现类似于DDR双沿跳变技术
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-7 02:20 , Processed in 0.059896 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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