【VHDL】常见触发器/锁存器/比较器/计数器的VHDL描述
来源:互联网 发布:无人机航迹规划算法 编辑:程序博客网 时间:2024/05/22 03:29
触发器1
功能
- 基本D触发器,在时钟上升沿时触发
输入
- 时钟 CLK
- 输入端 D
输出
- 输出 Q:时钟信号为上升沿时,D触发器触发,将输入端D的数据传递给Q
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 ISPORT (CLK,D:IN STD_LOGIC; Q:OUT STD_LOGIC);END DFF1;ARCHITECTURE bhv OF DFF1 ISSIGNAL Q1:STD_LOGIC;BEGIN PROCESS (CLK,Q1) BEGIN IF CLK'EVENT AND CLK='1' THEN Q1<=D;-- 也可以这样写NOT CLK'STABLE AND CLK='0' -- 下降沿,CLK'EVENT AND CLK='0' 或者 NOT CLK'STABLE AND CLK='1' END IF;END PROCESS;Q<=Q1;END bhv;
触发器2
功能
- D触发器,具有异步复位功能(即,复位控制端RST不用受时钟CLK信号控制),和时钟使能(即时钟使能信号为1时,时钟处于上升沿时,才能导致D触发器触发)
输入
- 时钟 CLK
- 时钟使能信号 EN:EN=’1’,时钟信号为上升沿(RST=‘1’),D触发器才触发
- 异步清零 RST:在任何时候RST=‘0’,D触发器的输出端立即被清零
- 输入 D:
输出
- 输出 Q:D触发器触发时,将输入信号输出到Q
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF2 ISPORT (CLK,EN,D,RST: STD_LOGIC; Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF2 ISSIGNAL Q1: STD_LOGIC;BEGIN PROCESS (CLK,EN,RST,Q1) BEGIN IF RST='0' THEN Q1<='0'; ELSIF CLK'EVENT AND CLK='1' AND EN='1' THEN Q1<=D;END IF; END PROCESS; Q<=Q1;END bhv;
锁存器1
功能
- 含有异步、清零控制
输入
- 时钟脉冲 CLK:
- 清零输入 RST:
- 数据端口 D:
输出
- 输出 D:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LTCH1 IS PORT (CLK,D,RST:IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF LTCH1 ISBEGIN PROCESS (CLK,D,RST) BEGIN IF RST='0' THEN Q<='0'; ELSIF CLK='1' THEN Q<=D;END IF;END PROCESS;END bhv;
锁存器2
功能
- 基本锁存器功能:即时钟信号CLK为高电平时,输入D被锁存,输出端Q<=D
输入
- 时钟脉冲 CLK:提供一定频率的时钟信号
- 数据端口 D:提充输入电平
输出
- 输出 D:时钟信号CLK为1电平时,输入D被锁存,输出端Q<=D;信号CLK为0电平时,保持原来状态不变。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LTCH IS PORT(CLK,D:IN STD_LOGIC; Q:OUT STD_LOGIC);END ;ARCHITECTURE bhv OF LTCH ISBEGIN PROCESS (CLK,D) BEGIN IF CLK='0' THEN Q<=D;END IF;END PROCESS ;END BHV;
注: 从功能和VHDL程序上可以看出触发器和锁存器的不同之处在于,触发器在时钟信号上升或者下降时进行触发。
比较器
功能
- 基本双端口电位比较器,输入端a电位大于输入端b,输出1;反之,输出0;
输入
- 输入端口a
- 输入端口b
输出
- 输出 q:输入端a电位大于输入端b,输出1;反之,输出0
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY COM_BAD ISPORT (a,b: IN BIT;q:OUT BIT);END ;ARCHITECTURE one OF COM_BAD ISBEGIN CMP:PROCESS (a,b) BEGIN --CMP IF a>b THEN q<='1'; ELSE q<='0';END IF; END PROCESS;END;
计数器1
功能
- 四位二进制加法计数器
输入
- 时钟 CLK
输出
- 输出 Q:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT4 IS --COUNTER OF 4 BITSPORT (CLK:IN BIT;Q:BUFFER INTEGER RANGE 15 DOWNTO 0);END;ARCHITECTURE bhv OF CNT4 ISBEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN Q<=Q+1;END IF;END PROCESS;END bhv;
计数器2
功能
- 四位二进制加法计数器
输入
- 时钟 CLK
输出
- 输出 Q:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;--NECESSARY!!! FOR USING '+'ENTITY CNT4_1 IS --COUNTER OF 4 BITSPORT (CLK:IN BIT; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END;ARCHITECTURE bhv OF CNT4_1 IS SIGNAL Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN Q1<=Q1+1; END IF;END PROCESS; Q<=Q1;END bhv;
- 【VHDL】常见触发器/锁存器/比较器/计数器的VHDL描述
- 计数器的 VHDL 程序
- D触发器 的VHDL
- 分频器的VHDL描述
- vhdl的描述
- VHDL常见的错误!!!!
- VHDL语言描述的例题
- 由多路选择器的VHDL描述入门VHDL
- VHDL
- VHDL
- VHDL
- VHDL
- VHDL
- VHDL
- 第三章 VHDL的描述风格
- 第四章 VHDL的主要描述语句
- 硬件描述语言VHDL
- VHDL描述状态机
- [连载]嵌入式实时操作系统AIOS设计与实现 – 内存管理之实现篇
- Mybatis延迟加载问题( Cannot enable lazy loading because CGLIB is not available)
- BZOJ2780 [Spoj]8093 Sevenk Love Oimaster
- Java基础之集合框架
- 六种常用的web负载均衡技术
- 【VHDL】常见触发器/锁存器/比较器/计数器的VHDL描述
- 并发中的一些基本概念
- BZOJ1207: [HNOI2004]打鼹鼠
- [BZOJ3053][KD树]The Closest M Points
- [圆的反演] HDU 4773 Problem of Apollonius
- 【VHDL】VHDL设计n的全加器
- 【VHDL】VHDL设计一个分频器
- [BZOJ 1001][BeiJing2006]狼抓兔子(网络流/SPFA)
- 多线程-多生产者多消费者问题JDK1.5新特性