|
以下这段有啥问题?
+ h* W8 `0 G! p我使用 SignalTap II 调试了,nss 常为 Lo,shifter[0] 与 mosi 输入一致,但 shifter 不做任何移位。且 shifter_out 为 0x00, 0xCF 等随机数。
Q- |6 ]1 L# L去掉 or posedge nss 及 if (!reset || nss) 中的 || nss,位移正常,但传输几秒发生不可恢复的数据错位。& }( |5 G+ {% g% R; i8 \9 A* R
将下面的 if (!nss) 也去掉,长时间数据传输无任何异常。
5 J; y5 e3 d9 e0 M6 o通过 SignalTap II 設定 Trigger,nss 未触发,因此证明 nss 常时为 Lo。1 `; Z1 e; l9 W% M
未做修改前,时序中所有 Slack 值 > 0,Fmax > 100MHz (工作频率),Fitting 后的結果看上去也正常。不解啊...求助...
5 Q1 v% A. W, A8 I1 j always @(posedge sclk or negedge reset or posedge nss) begin d' [9 @7 L, {4 f q% F
if (!reset || nss) begin
+ b' f' Z* o& R) u shifter <= 8'b00000000;
) O7 }, W a" x, L! k2 c0 g shifter_out <= 8'b10111010;5 ]' _9 G7 l4 p8 S$ a
cnt <= 8'b00000000;
: ~2 }# g N) Z1 F2 `# R end
. h' @4 `/ K) ~5 n$ ^9 e/ x0 ?& d else begin9 S/ ?; W4 |2 a% l
if (!nss) begin
7 O. }% x5 r5 d/ Y- v. h# V% Z+ K shifter <= {shifter[6:0], mosi};6 h# ?3 t3 u& V
shifter_out <= {shifter_out[6:1], shifter_out[0], shifter_out[7]};
( _4 b6 Q6 O4 ?# {
' N- w, P) o3 k+ ? if (cnt == 8'h7)) t B \# I; Q3 i" L! d
cnt <= 8'b00000000;5 L c0 | ]9 J3 j
else2 ?+ ^3 W8 @, [5 r
cnt <= cnt + 1'b1;
# k k f! _ } end
* z: C/ |! V# V8 S6 {( e4 m- N end- S3 G$ F2 }* D
end
. Z l* K9 N9 a) `" i" a
9 w" b3 E% i+ ?7 g |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|