|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Altera推荐的带异步清零,使能的D触发器的写法
2 s& ?1 T. k; @module dff_control(clk, aclr, aload, ena, data, adata, q);: O! Z" R/ m( G) j+ g7 L$ j
input clk, aclr, aload, ena, data, adata;# {: a4 P) q$ j# }: j
output q;8 q' Y2 f4 R: T8 Q
reg q;1 H3 p0 Y3 A2 L* K5 m
always @ (posedge clk or posedge aclr or posedge aload)5 ?. F" e: T! g. ?: c! n6 ]
begin' h, T0 L' E' W! u" z! M. ^
if (aclr)
. v, _1 d: ~( x: G( U* kq <= 1'b0;
% p/ O8 ]/ l7 ~# d/ R6 {else if (aload)! s. Z+ l9 D( k4 z9 D+ M& f
q <= adata;2 a6 L& S4 s8 A; x& a
else if (ena)* E) Z) ~; y) Z) u0 E ?/ D6 I6 P/ q
q <= data;' C5 B* k" q9 d
end
' Z. w3 L3 J3 r1 _2 z& Aendmodul
2 b l* g& E8 p" K. `% B, W( g& {2 v' e4 K, Q
0 b* u3 {& H' {: e0 n
$ {7 n/ t/ R3 N: n0 x& v% zLIBRARY ieee;
3 }# Q u( A2 S7 u7 F3 d, xUSE ieee.std_logic_1164.all;
) q$ V: r( ~8 J3 B% ]% ]0 ~ENTITY dff_control IS/ e0 x7 `8 T( K7 |
PORT ($ x# [, p1 }$ y: f8 i$ r
clk: IN STD_LOGIC;
+ Q0 u1 ~5 x6 e" K; y6 c+ d; baclr: IN STD_LOGIC;
; B* P; c4 K3 X2 Daload: IN STD_LOGIC;+ w5 W# o H5 x3 h5 }
adata: IN STD_LOGIC;
* R- K0 A# v: \, @# dena: IN STD_LOGIC;# W' W. Y; i' U; o! y% ^
data: IN STD_LOGIC;
2 l6 o' H6 C( n% Nq: OUT STD_LOGIC
' v7 m1 ^" q2 _' s! k3 L);* N) a+ H! n \7 v
END dff_control;
! U2 J0 |* t8 p/ F" N
~+ M( _) \1 U ^+ m: F* eARCHITECTURE rtl OF dff_control IS
_( K% O0 }( ^BEGIN! _2 r0 V! g0 V- {/ L( W
PROCESS (clk, aclr, aload, adata)
4 N5 f* w$ e" _/ ~$ [BEGIN7 q+ P P3 I5 M# Y
IF (aclr = '1') THEN' \* z2 L' k* v- q$ M
q <= '0';
7 t7 o9 |4 O) Q6 n7 T7 ?5 qELSIF (aload = '1') THEN4 j/ I$ Z* C8 N
q <= adata;: Q" E( U) ~5 ~5 Q; F6 R
ELSE
. O+ F/ _9 L1 JIF (clk = '1' AND clk'event) THEN, Q3 j5 x: q7 k0 g: Y: }2 R9 K0 `
IF (ena ='1') THEN: e- W9 `! h) s6 j: v. o: q
q <= data;" W: Q; b: n4 v5 a' J, F+ h
END IF;7 c0 }% K! r' u, ~) z
END IF;2 _8 l3 _6 o1 E6 V* R/ I2 u
END IF;
/ ?; H" s, ^( F# wEND PROCESS;2 N7 O+ x6 W) H
END rtl; |
|
& x( N# r; l9 T- j3 p |
|