|
以下这段有啥问题?6 i9 O) I3 H. y1 p; X. h+ t' T
我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。
9 Y9 v5 h( [2 p) Z7 T去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。- A5 G* Q# [0 p% b( O5 u+ J, w
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。* ^2 d# r% H$ _: H) ^) P
通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。) c5 L/ S% m6 G$ j4 \& E' }
未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...+ P' o7 ~. L5 k- v
always @(posedge sclk or negedge reset or posedge nss) begin9 ]2 c* k4 U* H( Y
if (!reset || nss) begin7 [: v* g$ _9 w" m* n0 q$ Y
shifter <= 8'b00000000;
5 f( Y& Z1 X9 p) k5 k& V shifter_out <= 8'b10111010;8 p9 n, ?/ U" e3 N
cnt <= 8'b00000000;
" b& Y6 v9 U( g. a5 V" H5 d end2 T7 r5 r0 R! `) K0 [
else begin0 M/ ?1 X; @ U* f8 T4 Q
if (!nss) begin. e, Z' R- A3 L! n6 @: b) Q$ ]
shifter <= {shifter[6:0], mosi};
) y; Q/ _* c# h shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
: \( |$ I" i" e9 H5 g* X# v0 c; z5 j. `
if (cnt == 8'h7)* a# Y1 z8 l0 M. }! w1 b7 E
cnt <= 8'b00000000;
: n1 `' Z3 e+ }! F, G5 |: @ else* T- Y$ M5 D. B) Z4 ?( c% g6 ^
cnt <= cnt + 1'b1;) [7 h: F l3 W5 Q. [3 n9 ~" l% H
end
; p+ F- X5 ^$ t end" t+ ]1 [4 J4 B4 I8 X# [* P
end8 y- L% [2 z1 T3 N" ]! A
) w w( e5 Z' B; |4 k/ J
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|