|
以下这段有啥问题?
7 h( c+ V1 D3 e9 H+ z我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。8 ]& \$ w$ Z6 p' C3 I7 M n v
去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。% n. t/ c% d3 c- I0 Q
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。, a+ j/ s" M1 w. K# P2 v9 h1 Y
通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。8 Z6 ?' r5 W E2 J6 \ _0 k0 z
未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
/ M, t. ?& u& F% z always @(posedge sclk or negedge reset or posedge nss) begin/ m2 W* |" v8 l" R. ^
if (!reset || nss) begin
: W4 L' o$ y+ K shifter <= 8'b00000000;8 K9 T2 |4 J! Z6 C
shifter_out <= 8'b10111010;# c! h4 t+ s% {
cnt <= 8'b00000000;
2 @. Y- ]" f3 G' A4 S) p0 C8 C end
& l5 | l9 o! y `' u4 _7 p; C else begin/ a6 }$ T1 i- k5 X
if (!nss) begin6 j% U2 M1 m3 C0 L* G+ k
shifter <= {shifter[6:0], mosi};
3 ^. K* z. }8 O shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
9 C4 _) b( d: E5 T. `" }9 q% p$ f. X. g1 W* o3 }! P
if (cnt == 8'h7)3 m& I, j* L5 s* e8 c5 E- l
cnt <= 8'b00000000;" Z& x& _0 D* a8 d6 S
else7 r( v0 k7 I0 N3 A
cnt <= cnt + 1'b1;8 B, l/ X$ x6 }& d8 |: j
end
+ i. G/ G; T' J; | end6 H; l2 x J3 C& X
end
: k7 S; w$ P& T$ @3 E- ?3 _9 |$ ]6 R" w# l% y4 P2 W1 m3 d
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|