|
以下这段有啥问题?
4 O: V; _9 l' W7 e$ s1 t我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。
% n8 \! O1 R2 ^" o) \9 x去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。, n) a% Z4 g' u" y$ Q5 d+ E7 i2 H" Y
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
0 Y# b3 l( s/ E9 r# D K通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。
V0 N7 P0 Q" c) Z' r$ d未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
) j% f/ L2 H; u8 ?, e* T8 u% O always @(posedge sclk or negedge reset or posedge nss) begin
2 [5 c& J3 W9 Q+ D9 ? ^4 d$ p if (!reset || nss) begin
" S7 C5 [1 h$ _6 G; G9 c/ c shifter <= 8'b00000000;
8 I6 h2 w* R. u/ m& X9 N shifter_out <= 8'b10111010;5 N; F% L- q5 u; K
cnt <= 8'b00000000;
+ |$ u3 R4 ]5 ^8 V, P end w1 O! `% R- H
else begin
3 }% c+ z9 f! R if (!nss) begin
' d; B: d# ^/ M- M2 r shifter <= {shifter[6:0], mosi};
7 f$ t V2 n* c* _- Q shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
) ~. R @* `6 B B3 I2 a; J
! \$ b, ]% K9 c0 H- G7 |/ f4 w, F if (cnt == 8'h7)' {$ N' r+ U; J1 i9 `& f0 l9 p
cnt <= 8'b00000000;3 V, p C* c( H0 K1 x" C9 g
else
8 s9 V- @9 V* L9 E cnt <= cnt + 1'b1;. f B) @7 i- W7 M# _: k
end
( l" V' G. y9 U; {% N4 V end
* E3 q0 I+ G7 e; F end, A8 e4 m- w, E; L; d3 G. ^+ ~
0 o* X( L4 T/ Z2 l0 F3 b+ o3 N5 j |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|