|
以下这段有啥问题?+ |6 e. R' g# Z, V
我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。
' r. a% ? m' a8 E o去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。, c+ L0 e! R% @' @- |) U
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
v. n" S/ R8 {. q3 O通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。# B& g+ b9 H$ h9 y- f
未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
8 m9 B) C. \7 y$ o0 M always @(posedge sclk or negedge reset or posedge nss) begin& {) N7 T7 c3 i. q+ \1 \
if (!reset || nss) begin8 a7 v# ^$ d& \; M% b8 m/ |% p
shifter <= 8'b00000000;
, N0 x8 F" h4 j& p& V shifter_out <= 8'b10111010;
$ e9 v1 t: D1 z9 Z* D" M- ~( V8 O cnt <= 8'b00000000;2 L/ m; |" D; G
end3 W R0 y! L7 i; d
else begin0 I+ g4 r4 g# T
if (!nss) begin
' q# M5 h* z; m9 g shifter <= {shifter[6:0], mosi};- A" O- s p7 V& i0 R, K1 o
shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};9 ~+ _/ E4 Q1 I
( f6 O. m5 d5 W( x; N' }1 Q. h if (cnt == 8'h7)2 Q2 H% Z/ X6 Z" Y0 Q. t6 V! j
cnt <= 8'b00000000;
* t8 R# J# p0 i; R0 d. X else: u n& |; I0 c4 k3 O* l6 L$ V
cnt <= cnt + 1'b1;
) B2 ]0 [4 H4 A end
0 ~8 g) r) o% Q7 n4 N$ I. ] end
0 t7 O& ^9 O* p w. ^' E end7 O5 ^5 ]$ y# o: i" f' m5 ?$ \4 c' W
( X$ C& m" J. [9 O/ A' V; l( [- @ |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|