|
以下这段有啥问题?' t! W2 y' K; ^! h
我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。0 S4 Q7 z1 [8 v$ l- J& b, Q$ y
去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。
+ H, m! a9 ?0 m/ b% p将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
3 M/ ?% D5 [; A; H; @$ l通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。
" z- X2 C0 B. s9 ~6 k1 d& l* h3 J( V未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助.... L9 m7 H: g, u$ O
always @(posedge sclk or negedge reset or posedge nss) begin
% B, m( z; W: B( l/ q( i( f if (!reset || nss) begin
6 ]1 e0 V0 A/ C/ ` shifter <= 8'b00000000;9 v/ }0 y) t$ i
shifter_out <= 8'b10111010;$ {5 |! K$ E+ q' i( X
cnt <= 8'b00000000;4 J3 w$ D, F% M( t$ d8 \
end$ T: G! w! Q7 M0 D, G
else begin
/ ]1 \+ w. Y- f$ } if (!nss) begin
0 |3 \0 {3 }8 P, h' V- A shifter <= {shifter[6:0], mosi};; v R: b! h% v8 b( {8 Y
shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};6 u9 q/ A8 S, C' x+ _# J
* w9 s; E( ] c% j5 r if (cnt == 8'h7)
3 J8 G% B, n* U7 W1 w& p cnt <= 8'b00000000;
& ], C: v, |! C) d else
5 U l. {) N" V _" D cnt <= cnt + 1'b1;
! z2 F: m9 L$ R: Q, b) a* i end& u8 |/ R8 P( l8 N( u* t
end
4 L( V0 }: P+ _2 L end# R8 j: A T: f4 J& J+ W
8 `# N$ k b5 t8 q& [ |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|