|
以下这段有啥问题?
M$ U9 G3 h% X1 q6 |我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。+ | E& @$ [5 i6 U: A
去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。' R3 b- P( C9 F6 }) M$ K3 c; Z
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
# j" J1 F( j: T% B8 e通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。% L- w. V$ v3 ~0 P2 d4 P
未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
, ]% ?; x5 j3 F1 v always @(posedge sclk or negedge reset or posedge nss) begin
# r% ]" a2 Q* @" ~2 o2 v if (!reset || nss) begin6 Q8 e E ~ p+ C8 F6 o0 i# _
shifter <= 8'b00000000;
7 u9 F0 u# V$ N I5 J/ S- H* t) S) Y shifter_out <= 8'b10111010;9 w5 m' }* V5 f# ^( d$ a. t
cnt <= 8'b00000000;5 `/ n5 M, R6 e
end% ~: e/ l' |/ e% L5 Q! ^& D) D
else begin# Q2 G$ F; V) S9 H) `7 n
if (!nss) begin: r$ p0 L7 ~8 U7 E+ [5 L" V6 T" J
shifter <= {shifter[6:0], mosi};
. q1 R6 Q4 C: ~4 T! r# y5 M7 Y shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
7 ~7 m* S, o4 ?0 U# g% b( Q" M, z; s; O
if (cnt == 8'h7)
3 i$ e/ Z+ E; [6 v cnt <= 8'b00000000;
3 {, h7 @3 k+ Q7 C. p, @/ u else; j4 j% N) e, p! Y
cnt <= cnt + 1'b1;# r8 @1 N% C, V5 W
end; V2 `. y: A' T
end
$ s N4 x1 h4 n8 S9 f end# a* _- `" S) ?0 h' N( f
9 H8 ?/ {" i7 u( K, k) M' i
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|