找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1172|回复: 5
打印 上一主题 下一主题

下载到开发板上遇到一个与仿真不同的问题:波形不一致!

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
跳转到指定楼层
1#
发表于 2009-2-25 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
下载到开发板上遇到一个与仿真不同的问题:波形不一致!
6 p5 i/ o6 J3 O
' r5 ^# M$ P" w2 d我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致
) A0 k5 h* R( H" L, o比较奇怪% ^) S, O6 q/ B6 X% F7 l5 E
8 i* Z& b7 ?6 U1 l
我的设计思路是通过串口接受数据; i+ _6 s% ^1 Q4 x! k
然后把接收的数据写入sram器件里面去
: L; f. p0 G, K+ u0 ^- Z9 {- X, k6 x0 h5 C  d7 c! Q
但发现那个控制信号与仿真时不一致(见附图所示)
. @1 C' N. p7 z* z' f% _5 y  u& J) _, {* ~

" C. I* d& ~9 N) S跟sram接口相关的代码如下:
: J2 U$ _9 `& t/ A3 ~
1 i9 H6 q  U* o& j
-----------------------------------------------------------------------------------------
always @(posedge i_Clock or negedge i_Reset_n)% ?7 w! K- i- z  Z
  if(~i_Reset_n)begin  
- \1 Z- g" ]$ f0 S    SRAM_STATE<=`SRAM_IDLE;
( A* @" c1 M. V$ M+ O! m    Write_ack<=0;' S9 d9 N; p/ Y0 V
    Read_ack<=0;
6 {6 i% u' ^- m* ?: t   end+ k- J2 |& Q5 u  [
  else begin2 G. Q1 y5 X3 G* a. V8 X/ K
    Write_ack<=0;
& p" k% S; n  J' k, ]( a) y2 t; k    Read_ack<=0;
, U7 j2 v3 \! e0 e, k    case (SRAM_STATE). S2 B5 `, Z( N' a8 r  O
     `SRAM_IDLE:begin
5 F7 F! S5 L6 k6 ~" z* Y! q       Write_ack<=0;
, }  M, q9 T7 z       Read_ack<=0;0 y0 @7 l( ~  s7 f& n
       case({Write_req,Read_req})1 Q' l& b- y; X
        2'b10:begin" h0 c) m0 m2 e0 O1 d* T" d, b
          SRAM_STATE<=`SRAM_WRITE; + P" d5 m" g3 W% A* D
          Write_ack<=1;8 P# j" C: I, ^4 ^5 U! ?, t
         end
) S8 \/ h0 f' T' s# s        2'b01:begin 0 M2 }" q- J8 Q" ?) j7 _% a7 x+ b
          SRAM_STATE<=`SRAM_READ;   
3 P) p  F4 e- f8 d6 q         end7 y6 |5 D7 [  y7 G) Y6 y1 \
        default:SRAM_STATE<=`SRAM_IDLE;
0 R) z/ \, I6 V- h/ J       endcase2 E$ V- n2 J3 z( t0 V
      end1 X8 K/ f6 a+ f) m( P
     `SRAM_WRITE:begin
0 S/ f& O- U6 a8 q: `+ |       SRAM_STATE<=`SRAM_IDLE;  
+ m- M% J3 }8 V1 v      end, O) o+ E! S6 [' m* h
     `SRAM_READ:begin
" b3 e: k4 \7 G* H" ?) w# c       SRAM_STATE<=`SRAM_READ_KEEP;
# v( ]+ Q1 s5 |# h6 |7 i      end
% C; K$ S( c/ Y) V3 ]     `SRAM_READ_KEEP:begin
" W% h& X6 n' I       SRAM_STATE<=`SRAM_IDLE; 7 U5 ]: A. x$ z, ]' }9 x! {
       Read_ack<=1;
) b# a, m8 k! M6 q) u2 U2 X      end& Q* y: a2 Y! Y! E2 o$ L
     default:begin 3 k7 D! }5 W5 U* |# ~4 M: b; H# {
       SRAM_STATE<=`SRAM_IDLE;
0 y) i7 V4 o6 z* P& v       Write_ack<=0;
" o5 O# K6 Y" o. F       Read_ack<=0;& h: B  d* I0 u$ _! @& \
      end4 S6 G7 \+ c" S  }, H1 I. F2 Y
    endcase
( X( {% Z4 ?% k8 E2 d" [3 _6 o   end
-----------------------------------------------------------------------------------------
assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}};
1 l8 A* b0 d8 Y: Q3 O7 [ assign Sys_datain    = io_Sram_data;
* c# n- N. u1 |% A0 u5 ?0 O //
7 ]! d" |1 L; T# [- |. c always @(posedge i_Clock or negedge i_Reset_n)
, M& ^8 M# ]- l  Y, [* o) n6 q% Z/ j  if(~i_Reset_n)begin8 z$ Z9 t! V& p; u2 Y8 @
    o_Sram_CE_n<=1;  \9 n" x( ^$ O' q' N9 q/ N3 a. a
    o_Sram_WE_n<=1;* J, \& r; y5 T) a  Y0 z1 Z( R
    o_Sram_OE_n<=1;5 i! T! ]  Y% a) K
    o_Sram_UB_n<=1;5 o9 I; T1 g/ S2 Z
    o_Sram_LB_n<=1;
* u8 E- K5 F$ P) U( @6 G; I    o_Sram_add<={16{1'b0}};
0 l7 P7 o, ?. z0 ]6 ^: M   end
& V9 `2 q$ _4 ~6 K0 [  a* w7 J* o7 a  else begin# M7 d8 e- s4 o' x/ g$ \# k3 a
    case(SRAM_STATE)
1 `; v+ ?9 q+ N* E/ C     `SRAM_IDLE:begin4 {  }+ I& i2 n2 |
       o_Sram_CE_n<=1;
  ^2 Y0 F( q6 A+ x       o_Sram_WE_n<=1;( p0 E  i: Z' o. M# Y6 D
       o_Sram_OE_n<=1;
  A2 g! t7 z' F8 K. d: p/ c6 }; f  u       o_Sram_UB_n<=1;* T' v& Z* I8 s. S( }# Y
       o_Sram_LB_n<=1; 4 R9 M9 D) l: w# t
       o_Sram_add<=Sys_ADDR; ; _2 ~3 I: h1 s! Q* W6 L  t
      end  x+ H6 g9 O4 V: w
     `SRAM_WRITE:begin  $ R; c' f" x  t5 e9 m
       o_Sram_CE_n<=0;* J' h1 L/ P0 e9 g3 t: V
       o_Sram_WE_n<=0;" i* h5 l- |6 q9 s# i
       o_Sram_OE_n<=1;
: U- ]) r$ n: B8 @4 F       o_Sram_UB_n<=0;/ D3 A  P1 u$ {, k( e9 w
       o_Sram_LB_n<=0;
5 H4 a8 E& T6 ?( x; }       o_Sram_add<=Sys_ADDR; ' W: o' @9 o8 T, j! m
      end
% t! U. Z' o' G' Y     `SRAM_READ,5 J9 E8 v/ {3 U" c5 W. o% r
      `SRAM_READ_KEEP:begin
* c$ _2 w2 U0 ?# h1 `7 F       o_Sram_CE_n<=0;
& V) ]5 w; B/ T) s/ r, B4 q# i       o_Sram_WE_n<=1;9 @4 N- U" N1 u  c( G* ~5 Z0 V
       o_Sram_OE_n<=0;) K8 K) v5 L; ?# [4 W1 ]& l
       o_Sram_UB_n<=0;/ \1 l' e, n5 g% s& G$ ?: S
       o_Sram_LB_n<=0;3 V0 B% X7 C1 [/ J6 ]
       o_Sram_add<=Sys_ADDR;, b3 x% X7 P5 i3 a4 I; d
      end
  X4 H2 u0 X  L0 D     default:begin
1 A* e* R& @8 j       o_Sram_CE_n<=1;
* Y2 `1 G7 P; H- O2 Y! K       o_Sram_WE_n<=1;) D) L: {. h( N0 n- u' z8 f
       o_Sram_OE_n<=1;4 g& L6 m& ^; j# j- G3 h
       o_Sram_UB_n<=1;9 L* _1 [3 N0 f- z, b- U" _
       o_Sram_LB_n<=1;4 J& P2 q! F$ ]# Q) S; m6 `3 I. m
       o_Sram_add<=Sys_ADDR;8 n( d6 w5 v8 H/ ~& P
      end
- P( j0 D6 q- G! E    endcase
. d! B2 a6 q' Y+ d9 A' s, i   end
-----------------------------------------------------------------------------------------

Snap1.jpg (99.17 KB, 下载次数: 1)

Snap1.jpg

Snap2.jpg (55.94 KB, 下载次数: 2)

Snap2.jpg

Snap3.jpg (69 KB, 下载次数: 1)

Snap3.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
2#
 楼主| 发表于 2009-2-25 10:26 | 只看该作者
而且也发现o_TX的波形也是与仿真时的波形时反向来着

17

主题

371

帖子

3268

积分

五级会员(50)

Rank: 5

积分
3268
3#
发表于 2009-2-25 11:48 | 只看该作者
你的时钟是多少?仿真是前仿真还是后仿真,综合时加约束了吗

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
4#
 楼主| 发表于 2009-2-28 10:34 | 只看该作者
我单独用uart发送模块给pc传数据 可以正常通过串口调试工具收到数据
: p% ~$ w8 w# J2 ]4 k, d3 l例如我发1234 可以收到这个数据7 N, S. I1 k" x! ]$ J

, x% p9 y  c& b6 j# [我在看报告的时候发现这样的提示:
9 _+ o! C$ H; ^" OWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND
) x! M. z# s/ ]9 G5 B- |Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND, m% u& x! d1 p' T" C5 n
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
/ K# q1 e. f( D3 RWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND$ K3 Z6 g3 e1 y, N
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND
$ `, |7 C& L- z# |* @Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND
9 {: l* _' T& ~% R9 Z. w4 _Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND3 |, ^7 I* j" V( O
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND
* N: A+ L. M5 s( pWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND3 p# V2 @- L1 E
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND7 X; O# D6 I. t/ ]" `
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND" z: |" s6 O( o0 v
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND
/ ?4 ~2 {. n. z# c4 Z+ Y2 Z  bWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND# F* N/ M1 K3 B  Y+ B) G& j! o
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND& p1 B" j, g# m0 Z! _* D
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND- z( O8 |' v3 ?- s' K. ?6 W+ J
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND9 e8 J. n/ q* G4 ~
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND
% V9 d5 J6 b6 ?Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND
7 S$ x) c: u: a+ x# m2 I9 a+ `Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND
. P# `- ~: R' fWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND7 g- T; ]& ~5 @! W
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND
9 e" w' N0 {/ k5 YWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND; d# d/ Y. P4 b. S
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND
* x( j2 I/ a# ^1 z* u. J! iWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND+ d8 }, e$ `# O# @; p
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND. t. l4 P  r, [- N! [
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND8 V* v6 ]: N+ Q9 T, w( Z+ W
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND
9 x' M& B2 S% z, yWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
/ I8 Y# B1 `$ k7 K8 l" \Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND
+ a- V+ O. a: K6 V: X# h( w" qWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND0 z& Z1 F6 }4 a* u# a0 ~' R1 b
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND
5 q' ^4 f% D, @) P5 W, C2 q1 HWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND+ y9 b- R( z8 M- \$ ]1 k

/ ^, U1 J6 J: l感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

17

主题

371

帖子

3268

积分

五级会员(50)

Rank: 5

积分
3268
5#
发表于 2009-3-1 10:54 | 只看该作者
这些寄存器都没有实际使用到,所以软件才会默认接地,应该是程序有问题

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
852
6#
发表于 2009-3-4 14:00 | 只看该作者
你可以直接去看综合以后生成的 RTL 电路。看看出错的这部分对应的逻辑是否正确
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-22 05:29 , Processed in 0.061931 second(s), 35 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表