|
以下这段有啥问题?
: z# Y) j. W- \我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。" x; U: ~; S' a9 p* \
去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。% F) \2 d* d5 z5 q$ F5 N! A
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
# p9 U$ |: [9 u, \2 V! I# J: _% L通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。
6 ]; N0 b. W% V5 U( L+ J未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
. N! B& Y/ b3 l9 y- t always @(posedge sclk or negedge reset or posedge nss) begin
1 w' N* L6 M7 Z/ D' a if (!reset || nss) begin6 j, M; M) H$ O* \+ k& k( O6 S
shifter <= 8'b00000000;% d0 R1 C, C2 j- I2 t
shifter_out <= 8'b10111010;
+ G1 }1 B9 ^6 Z- P4 P cnt <= 8'b00000000;
. r0 }: x1 Z' w! D1 b* n+ q end
2 z ]7 c7 a& J: p. Q j else begin
% S, F3 I, J% B% T4 Q" S" |& x if (!nss) begin$ a0 r4 d6 {# r5 r3 [$ M2 ?/ r) d) a
shifter <= {shifter[6:0], mosi};
, ]- T% q9 N) n) C shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
' q! \6 }+ L% @7 ^
3 G' K$ v4 S% z' ?% H3 R' U. I if (cnt == 8'h7)
& j* N9 K6 R1 a U' M" Q: s' A1 Y: X cnt <= 8'b00000000;5 u# M# g1 ?+ W6 _+ K: b6 {& c
else* r! n: p# Q7 S1 r$ J3 ~
cnt <= cnt + 1'b1;
5 C6 C" E0 c3 ]% R( f end* m- |1 h8 w; k8 Q
end
, E2 f" [* a. R; I: ?* j end
( |, ?) J, p6 t5 E9 h' y7 g; [+ ~, y$ N, b( g4 d! q1 t, L5 F
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|