|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' B8 a! M( k0 e D, K* s; E2 H C I! c....9 {& p' J& m {5 b" J( e
case st is
1 ~0 C3 P+ i7 _% G# R when 1=>
& E8 e6 ]; S$ j# a% ?* t n<='1';6 R" t N# E6 |4 Q) t% ?
when 2=> 2 [7 T5 C& D$ }
n<='0';
- F. M$ H: R# f when 3=>% L k% c, ~- \6 `# p
n<=pulse;- t0 E. s" ~8 R4 D' q2 t+ m- E
when others=>7 E- E( D: ^& W. s8 Z+ {- I6 s# w- f
null;
1 F4 @6 G' B1 E......." s+ y* Y, f$ C/ F3 ]3 L
m<=n;
) ~0 s( ] M' a, l. m5 H6 L...
, p2 y! A& |2 n0 ~ VHDL描述大致如上,st具有255个可选值,且st 为脉冲信号。% v8 p- C& T8 T8 L& q2 F& ^
希望功能:st脉冲信号能够控制n的值。3 Q$ z" d" B$ ?
结果:
: t( J4 C8 X0 ?. ?1 l 1. st脉冲等于1,2 时,功能正常,脉冲信号撤掉后,n的状态依然存在,且正确。: X% Z9 y* z, r
2. 3 脉冲却功能异常,当3 存在时,n的状态为pulse,当3信号撤销后,n的状态为随机定值。7 S' m7 b4 {+ y6 H1 v8 |- @% g
问题:1.希望NULL实现“无操作”=“保持之前状态”,但是结果却异常,且和赋值信号有关。7 D- p% T. s0 P' p2 u8 ^1 O3 i
; v* p/ C% A$ C. X% _2 s改进测试:
3 V7 E5 I* c9 x9 y; N( {! V 添加并如下调整后. n# {) P- u* X1 M# I8 h6 y( k. {8 V
CASE st is 1 j5 | L6 x" m1 O0 b7 y, `
when 1=>3 H9 j2 u6 b0 z+ {) S
q<=1;' o, x `8 g1 m% U
when 2=>
/ S( @3 X4 T& v' R q<=2;
5 Y4 t/ u" [! d5 G3 |5 X6 |3 O when 3=>
4 K. o- N8 v4 N# P& [ q<=3; R; |, n8 h# s, \* d: [: I
when others=>, ~& l9 q1 z: h: `: P' z! x: B
null;9 W O9 n( |% }3 B" M* d. e
.......$ J2 e" J; O0 S
9 M+ A5 b; o. A' M
case q is
$ D: r( o; V1 q when 1|2=>
5 n' M0 o% H8 s6 T# k- ?' R m<=n;
# E- z' `" e; e/ n/ w% M when 3=>
( w3 f) A0 `' G4 l# p3 q m<=pulse;
0 l6 s: M$ E0 Z# Q& {& { when others=>) c2 i( F. }' U3 C8 l) G
null;! i8 ~* `+ I3 g1 K" [' ]+ t
- s' G8 v" Y8 J* C2 H/ u....
9 X' q) C* Y4 S% P/ ?然后功能正常 。5 U9 q F/ p' S, Z0 m+ D& l; l9 `
8 i! @- A S3 L+ ~* z D7 N- F
以上测试结果为signaltapII测试结果和示波器测试结果。" V+ s7 s8 n" k
( B8 o: _6 ]% U
上述代码为示例代码,希望各位朋友指点迷津? k$ p W y2 V+ O2 e
6 n. o- r# g1 B! M由于数据拷贝权限问题,不能上传源码和图片。
. x v" V r" J& V! f# r |
|