|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) ~/ n& N; G/ j; E+ \- T
....
0 D* d8 ?* D H; L2 H/ o' wcase st is( }4 M' V W. g9 K3 A3 B. ^+ {/ p
when 1=>
; K1 b+ q1 C: v& ?( N% C3 v1 L n<='1';
& ]' d+ l7 o- S when 2=> 4 n6 R5 B& n: W& E
n<='0';
- g; q! Q4 A7 k when 3=>8 j. T. V0 s! |8 V$ W* U
n<=pulse;
% q: q0 t4 I9 u* a2 Y2 O/ ]" R8 K when others=>6 r s2 |* k8 ]$ v* F) M
null;! a: C; V1 ]3 R) {
.......' j$ h, B+ b: r8 }# z
m<=n;
( Y# | l a3 E& E...
. n% o; A8 e8 I5 V. z/ d VHDL描述大致如上,st具有255个可选值,且st 为脉冲信号。
2 N d( v2 K5 T* F9 C 希望功能:st脉冲信号能够控制n的值。
; {7 {9 t. h% l7 ] 结果:3 J0 Y( U1 `% K% A8 f! B
1. st脉冲等于1,2 时,功能正常,脉冲信号撤掉后,n的状态依然存在,且正确。
6 ^! t2 j$ _+ H! W: b9 n6 M 2. 3 脉冲却功能异常,当3 存在时,n的状态为pulse,当3信号撤销后,n的状态为随机定值。
( M" X8 C9 K9 ^- }& `$ E3 |( {0 p( q 问题:1.希望NULL实现“无操作”=“保持之前状态”,但是结果却异常,且和赋值信号有关。
. J" u5 q, U* `( h, x" w4 \3 d% I! T$ r4 m! j2 h, P
改进测试:. Q: Z5 o1 [9 _* A$ h+ V
添加并如下调整后
+ i# ?& w3 a! I4 Q1 J' O CASE st is * a: k1 B: l# `* a" ?& x. Y3 P* @
when 1=># S' p: K* C# a1 |0 ^$ b* G8 x
q<=1;
& m( L) x4 F! e. L9 P! a0 W1 z! L when 2=> ! c. R7 a* ~* d1 `$ m
q<=2;
( e5 y# Z4 S3 W" C/ T when 3=>, j- a" i \1 j' l5 u% F
q<=3;
+ k/ _) |5 C( }% j' g6 l when others=>
3 [! x+ D# `' x6 e k! J% Y) j null;
9 `0 b$ w* |& {.......) j9 h- z0 U1 e/ p, T# A( H7 t( L
% q. ?5 i" w% s" E
case q is 5 C+ d: w. o3 q: E3 m, Y/ D3 C9 h
when 1|2=>' }( `9 V/ w& {
m<=n;) m6 ^9 \+ m( N
when 3=>
& C& W ~) e0 R) D; ~ m<=pulse;8 |- e; B0 B9 c
when others=>. T1 I2 f, H- e% y `1 ?
null;* q7 \# p1 a2 R' @/ j
8 o3 P: U; K+ T/ f
....
4 F# ^8 b8 X7 a; @/ G* M( {然后功能正常 。+ I' k+ G$ J) p6 k" h0 d7 B& ]2 V
O Q- A* X4 K7 |0 J, F
以上测试结果为signaltapII测试结果和示波器测试结果。$ c: I& q' ]5 p5 c6 ?
, F c) Z8 _! @. j' G+ r( ^" }
上述代码为示例代码,希望各位朋友指点迷津?- W6 g f* E: e: I
& D0 g* _4 L/ w# y" g8 o9 [- H
由于数据拷贝权限问题,不能上传源码和图片。 ! f- S$ U3 Y n8 i4 f/ {" o
|
|