|
以下这段有啥问题?
* v; z9 Z4 U: I8 o& S+ [' X我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。
; w7 L4 M2 _& p去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。( g; }, C2 h( p4 c% V. m) I% W
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。% ]* Q! B: o0 I, O5 W0 c
通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。
! V4 o4 y+ U0 {, I7 I( m: s未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
5 k& ^+ H% o0 y: z) f& F0 c always @(posedge sclk or negedge reset or posedge nss) begin7 _4 i; P, X N6 _4 c: N8 o
if (!reset || nss) begin7 i" X' l( ]2 A; N4 S
shifter <= 8'b00000000;
1 d8 Y" P1 x( t9 {1 S1 K shifter_out <= 8'b10111010;
& ]% y" [' O% q1 z+ K0 h& F cnt <= 8'b00000000;
# t5 \6 Q) g$ s" g. A8 B end, V2 f& F, R1 q' ]; n6 {1 d" d
else begin1 K5 t" c" s, W5 S2 z/ ^
if (!nss) begin
: d3 y1 S* ]# F; P$ T" ~7 [ shifter <= {shifter[6:0], mosi};
# [- u" n, ?$ _ shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};% B& y% S) `; i2 f7 R6 J* J% ?8 w
6 \, M( p8 Y: H! O r
if (cnt == 8'h7)8 b4 I D6 V# N, e
cnt <= 8'b00000000;
( Z" L0 X, k: | else
' j2 _7 r1 H7 @! |2 t cnt <= cnt + 1'b1;
& H" K! r0 J3 Y end
: R9 @ B/ i" @+ F end
5 J' U5 Z8 @$ |. B end
, [4 z0 O& x: M' Z2 I
/ b2 s5 m3 J, Q4 K |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|