EDA-D触发器 下载本文

1. 具有D,CLK,Q端口的简单D触发器,要程序和最后的RTL图;

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT ( CLK,D :IN STD_LOGIC; Q :OUT STD_LOGIC ); END;

ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF RISING_EDGE(CLK) THEN Q1 <= D ; END IF; END PROCESS ; Q <= Q1; END ;

2. 具有异步清零aclr,D,CLK,Q端口的D触发器,要程序和最后的RTL图;

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT ( CLK,D :IN STD_LOGIC; Q :OUT STD_LOGIC; aclr :IN STD_LOGIC ); END;

ARCHITECTURE bhv OF DFF1 IS

SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK,aclr) BEGIN IF aclr='1' THEN Q1 <= '0'; elsIF RISING_EDGE(CLK) THEN Q1 <= D ; END IF; END PROCESS ; Q <= Q1; END ;

3. 具有同步清零sclr,D,CLK,Q端口的D触发器,要程序和最后的RTL图;

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT ( CLK,D :IN STD_LOGIC; Q :OUT STD_LOGIC; sclr :IN STD_LOGIC ); END;

ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK,sclr) BEGIN IF RISING_EDGE(CLK) THEN Q1 <= D ; IF sclr='1' THEN Q1 <= '0'; END IF;

END IF; END PROCESS ; Q <= Q1; END ;

4. 具有异步置位apre,D,CLK,Q端口的D触发器,要程序和最后的RTL图;

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT ( CLK,D :IN STD_LOGIC; Q :OUT STD_LOGIC; apre:IN STD_LOGIC ); END;

ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK,apre) BEGIN IF apre='1' THEN Q1 <= '1'; elsIF RISING_EDGE(CLK) THEN Q1 <= D ; END IF; END PROCESS ; Q <= Q1; END ;

5. 具有同步置位spre,D,CLK,Q端口的D触发器,要程序和最后的RTL图;

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT ( CLK,D :IN STD_LOGIC; Q :OUT STD_LOGIC; spre :IN STD_LOGIC ); END;

ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK,spre) BEGIN IF RISING_EDGE(CLK) THEN Q1 <= D ; IF spre='1' THEN Q1 <= '1'; END IF; END IF; END PROCESS ; Q <= Q1; END ;

6. 具有异步清零aclr,异步置位apre,D,CLK,Q端口的D触发器,要程序和最后的RTL图;

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT ( CLK,D :IN STD_LOGIC; Q :OUT STD_LOGIC; aclr :IN STD_LOGIC; apre :IN STD_LOGIC ); END;

ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK,aclr,apre) BEGIN IF aclr='1' THEN Q1 <= '0'; elsIF apre='1' THEN Q1 <= '1'; elsIF RISING_EDGE(CLK) THEN Q1 <= D ; END IF; END PROCESS ; Q <= Q1; END ;