|
以下这段有啥问题?
: q) t% K% Q; v6 F& y1 N我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。
% [2 q$ g% b: j9 C' L! v$ }去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。; Z; H5 p+ j4 G" P- i
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。, \2 C& V ~! H9 B# B) N# V
通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。
% \, Y& p! E- k未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
5 r7 o5 E2 b( G( J( E$ d7 Z always @(posedge sclk or negedge reset or posedge nss) begin( {8 W9 ], P4 A3 b
if (!reset || nss) begin
( Y9 O0 Y: u5 Q. n2 \; d& h shifter <= 8'b00000000;
. Q7 @* m5 Y# a6 ]' m3 ` shifter_out <= 8'b10111010;' i" w5 H( x6 [2 y* M
cnt <= 8'b00000000;# i5 {$ Z( u: t" ^# |) i
end% H3 \ F3 I- k/ T
else begin% l% [7 N& j( H" {
if (!nss) begin
! o, c( c) s- c5 i shifter <= {shifter[6:0], mosi};
- ~8 ~0 [# `( @) I/ z3 w shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
3 |4 @9 x4 R1 A4 v$ c2 f4 B% U% V" h1 g7 C
if (cnt == 8'h7)
' W5 ~: E9 u% R/ g( P cnt <= 8'b00000000;' k; V* y* I" y- t& s( E9 c
else% p# i w4 h3 K8 s7 H6 N
cnt <= cnt + 1'b1;
& P8 N* Y! y5 ` B1 @, ?: P end# n' N" \& f2 I
end
$ W3 b$ j, `' x6 t end6 D$ {0 L% }% ?3 G* f. c$ Z
l n' t0 Y) z0 C* [2 R |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|