|
以下这段有啥问题?
" p# t @) w% T: A( `9 P2 k2 j: q我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。$ v8 S( j( Y6 M9 P* z, x: w
去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。
6 ]* e/ D. \2 Z. O5 b将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
+ ~/ R* |3 ~; d! M/ L! c* H8 A! t通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。$ m# l& Z! T9 ^7 q0 G, G; I' d q
未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...) z" D5 ]7 M/ |# B- E/ N; N
always @(posedge sclk or negedge reset or posedge nss) begin
8 }% f7 F" P! d$ {7 z) l- s( j if (!reset || nss) begin8 N. |3 _) {% ]! n
shifter <= 8'b00000000;5 o& x4 U" ]5 V+ H3 C
shifter_out <= 8'b10111010;- R, R$ M L% q# T( n* X( T2 W
cnt <= 8'b00000000;
1 I# L: m, _( H7 S' P/ }5 c ?5 r end
4 g6 _- ^) F6 J/ }* G else begin
- F8 w; v! S- V% }! K if (!nss) begin
) E( R+ H d8 R. c* o! B- J7 \0 z shifter <= {shifter[6:0], mosi};
9 I* d4 ?4 m2 j5 u3 ? g/ k shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
# E- ~! a' ^; s; |. ~- W+ N* l9 I3 V, W$ Q
if (cnt == 8'h7)
* u2 @8 ?* r3 S' q' w2 {6 v: j cnt <= 8'b00000000;! D* w% l4 n2 F
else
# v. c! v: U6 G2 K7 S7 ]; A cnt <= cnt + 1'b1;
, ^* s* k& n) R4 S. D end
& p2 E" [( r7 z) X5 M end, l3 a1 q! E0 J% p
end( ], i- n* H; C$ y. Q4 }
6 H8 Q% E I' l |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|