Chip123 科技應用創新平台
標題:
一个关于 SPI Slave 的问题。
[打印本頁]
作者:
linuxhaha
時間:
2012-1-25 10:16 PM
標題:
一个关于 SPI Slave 的问题。
以下这段有啥问题?
( A6 t5 Y( U: t8 L6 }& T0 B5 }
我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。
/ `2 v; s/ N+ t( o( Z' s
去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。
( L+ n- \6 E" V1 ~% m/ _% h% q% u1 H
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
1 I7 H; @* \ l" A
通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。
5 E) P4 x0 [: f7 p; z% v
未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
/ x- ?; i( `& {: \* |# \$ y
always @(posedge sclk or negedge reset or posedge nss) begin
+ F& z2 a& q: r4 o& l
if (!reset || nss) begin
2 D# r& f- H% k3 ~2 q! a, P: `
shifter <= 8'b00000000;
1 {' C R* t2 M d \0 R) T7 U( N
shifter_out <= 8'b10111010;
( T( P2 G) s0 H
cnt <= 8'b00000000;
( x) ]# ~0 U5 b4 U2 J9 c
end
3 C8 o4 m& H) ] u. y
else begin
9 E# Z: q5 K1 c
if (!nss) begin
& @% P+ M4 _6 B3 l, ?
shifter <= {shifter[6:0], mosi};
, j! ~$ Q9 w3 Q: D
shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
; ]* T" u8 d3 m ?( `$ y
$ l3 F& k6 J$ x; X
if (cnt == 8'h7)
& K: I6 l0 Q V6 N
cnt <= 8'b00000000;
. ]9 @: H+ \* e2 ^% A7 V% }6 f
else
9 g% @; K. i) [. c+ K
cnt <= cnt + 1'b1;
; S/ w, q( Z0 ^3 I
end
( m. M2 t( o$ M. A( B8 i4 ^* U3 [
end
! }. V) M! {6 l9 d( h/ P
end
+ U$ Q9 Q& c& u! u9 U
) R" M' c2 `3 U6 a& ^' j
[attach]15399[/attach][attach]15400[/attach]
作者:
linuxhaha
時間:
2012-1-31 09:38 PM
已解决.....................
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2