|
以下这段有啥问题?! B* M: r$ d; l6 \
我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。) t7 D& y, J) {3 Z4 Z; `3 P
去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。
6 _( A* `1 i! G+ F9 B1 g将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。3 e& W. @5 ?6 I' P8 e$ v" q
通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。
8 b9 o" E" J& H$ [ e: c/ _8 W( b; I未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
! ^4 G% @* ^* A8 { always @(posedge sclk or negedge reset or posedge nss) begin# C* J! a; j4 B5 z5 i: d, r
if (!reset || nss) begin
7 B$ V4 z4 z4 K" ?$ F shifter <= 8'b00000000;! h$ E) P/ g' I9 ]
shifter_out <= 8'b10111010;
4 z. j! {- s0 k3 W5 t4 b; G cnt <= 8'b00000000;( g% }+ L7 d- e: g" N% x! F! F6 m: A
end
# N/ o% m8 m- Z9 a; c2 g else begin
+ ]" c7 r, Q1 H. E4 ? if (!nss) begin, l5 p$ A E( q1 y
shifter <= {shifter[6:0], mosi};
" T. c2 O* N* c* q/ M: T shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};2 K! l" G- {+ j/ V, f
_$ ?. K' ]/ T2 d if (cnt == 8'h7)7 n9 r4 o ^: H% y* u) f4 [" D
cnt <= 8'b00000000;
0 x4 M/ t' `% N' u. } else) U# c3 i. S6 A% y; `/ N6 l
cnt <= cnt + 1'b1;) ?! O u$ t7 U# k g. ]
end
% a0 `# p5 y4 B, H3 E. d* V4 J end
y3 g5 j0 ?4 Y! ? end
7 ?: j3 j ^6 l5 Y' O1 S
" `: N9 j) R3 H3 Y$ v |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|