找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
下载到开发板上遇到一个与仿真不同的问题:波形不一致!! b8 c' ^! ^2 |/ G7 C
1 k3 i' }3 z2 `/ r2 k6 A% b" |
我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致
1 v1 X6 D4 w! I5 c8 w! V1 [比较奇怪
4 }. U0 {% p2 C1 P' B0 z3 x0 G
) x0 N' f( z6 C我的设计思路是通过串口接受数据( ]( I5 ~5 w+ k  d
然后把接收的数据写入sram器件里面去
/ H; r) S! M, m- e2 J
$ q8 H# Y! r+ P- T  B* B9 p但发现那个控制信号与仿真时不一致(见附图所示)4 R6 p  i! ?9 q8 R2 S) t# |+ @
2 C/ c8 r+ U+ u; w7 E4 Y

5 t% [9 F7 A* w$ q7 i跟sram接口相关的代码如下:
7 @6 C1 h+ G. ^& _" d1 h2 l( s8 a/ n: b2 D" i+ k  x
-----------------------------------------------------------------------------------------
always @(posedge i_Clock or negedge i_Reset_n)
# Z! H+ @2 t% ~; W  if(~i_Reset_n)begin  
; `8 j+ \5 n) h8 i) I' g    SRAM_STATE<=`SRAM_IDLE;$ s7 a( u% b) P, f" g6 ^
    Write_ack<=0;; @+ `$ z5 F( X5 {3 ]$ o
    Read_ack<=0;
& M- q# M; P& H9 l0 {+ f, D+ _' L   end
3 o. f8 s- z1 m: {% J* N: T  else begin
2 [3 L, Z4 Z, T    Write_ack<=0; ( K" k/ W1 D6 ~# \1 M" t1 |" a
    Read_ack<=0;
, k/ x( y8 a; ~0 o3 W* b    case (SRAM_STATE)" v& f/ C2 ~# s: K$ r
     `SRAM_IDLE:begin
' z& E! c9 f4 _: i  [' x3 p       Write_ack<=0;
# ^: P% P9 S8 c- A9 q       Read_ack<=0;; J, G) \% u) Y6 @- X0 f; }
       case({Write_req,Read_req})( Q4 E9 E  Z% D( h. A! K4 j
        2'b10:begin  V. ?8 Q8 T" L7 S5 n
          SRAM_STATE<=`SRAM_WRITE; ; H* f* Q7 j( R3 [2 R8 c1 o" i
          Write_ack<=1;
4 h! j8 W% y8 y         end/ s& s7 i) V. _( q4 y% L' v
        2'b01:begin
0 \) P3 G& N- q2 [6 k7 h          SRAM_STATE<=`SRAM_READ;   - |9 R. R. I+ {/ V+ ]$ p
         end) }) G- H1 ?6 z  y" F$ O
        default:SRAM_STATE<=`SRAM_IDLE;" s: f. I* e) U/ j  c0 S1 V7 E
       endcase
- |: s# A0 C: j/ T5 B8 R6 Q      end
- K' o7 w8 W3 v% Q5 f' Z     `SRAM_WRITE:begin 0 W  e, @. D+ E! k& F0 P1 h+ q
       SRAM_STATE<=`SRAM_IDLE;  ! o. O! v; x, F: O- I' L
      end- F  a' J, u5 _& J' ?* k7 f
     `SRAM_READ:begin
* U, l; t3 U' ]9 m! `       SRAM_STATE<=`SRAM_READ_KEEP;, S) `/ u; h3 g9 V3 x8 d6 _) Z0 g
      end
9 I' x5 Q5 w$ m) }( x; a     `SRAM_READ_KEEP:begin
5 Z& @+ L. ~) Z$ J       SRAM_STATE<=`SRAM_IDLE; $ [: B8 c/ f* c. R, K8 k
       Read_ack<=1; # p$ ~( U4 q; S$ V3 G2 s& l# l
      end) n5 c# @; [9 t3 s8 A- r
     default:begin 0 e. p: P+ R. [$ a; f# A  Z
       SRAM_STATE<=`SRAM_IDLE;0 M: j/ F0 i" a9 n1 S* k5 M
       Write_ack<=0;" A( a2 ~8 z8 E5 O8 g
       Read_ack<=0;
/ O& O* I) d0 n      end" u; u! V; C& E  W' X& \, C! q
    endcase
' [) ^- N  v1 |& k" I  N   end
-----------------------------------------------------------------------------------------
assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}}; 2 W, u1 I; J3 W; ^" B
assign Sys_datain    = io_Sram_data;
4 v0 C& R5 }$ r& K, c //9 v5 T" J* v! N; Y' Z' t
always @(posedge i_Clock or negedge i_Reset_n)
, P! b) g# s. ~4 B) ?3 V  if(~i_Reset_n)begin# K1 f4 R, j+ C2 x2 M( P
    o_Sram_CE_n<=1;
' V  G9 J$ Z0 |    o_Sram_WE_n<=1;# G% S- N! `# K
    o_Sram_OE_n<=1;
) C7 `& w" U  F2 [# O    o_Sram_UB_n<=1;. }6 l6 {( u/ t5 }$ s  W, l
    o_Sram_LB_n<=1; 2 V' [6 @* U, C/ V/ m& [' ]
    o_Sram_add<={16{1'b0}};
' K; p& X- C9 J   end: y$ v; r8 l- b' R  x
  else begin! V( H$ `, S9 @% l) _  \; f# r1 C
    case(SRAM_STATE)
$ s5 d2 R* m( ]  \" o     `SRAM_IDLE:begin% k1 B3 M' _6 ~
       o_Sram_CE_n<=1;
, \. {: Y, N# t9 R! ?       o_Sram_WE_n<=1;  `7 y& b  J! o" @; q, B3 k
       o_Sram_OE_n<=1;  [/ [. e0 C8 d) f
       o_Sram_UB_n<=1;
+ ?, f! t) h% S       o_Sram_LB_n<=1;
' K, y0 D. p$ {$ o6 B       o_Sram_add<=Sys_ADDR;
$ w* {5 X, a! O      end. \& Y( t7 ^2 U9 R( ?$ R, }
     `SRAM_WRITE:begin  
; \) A) X4 Z+ [, H) @       o_Sram_CE_n<=0;; s1 f! Y: \% V, ^! r2 d' Z
       o_Sram_WE_n<=0;3 N: w0 s' |4 f7 D! }* H
       o_Sram_OE_n<=1;8 ]6 i" u. C  m8 C" I
       o_Sram_UB_n<=0;
7 P3 O' f4 d1 e: m7 u  N" v2 D9 U       o_Sram_LB_n<=0; ! z( ?, f+ o' a1 ^' ]
       o_Sram_add<=Sys_ADDR;
. F5 U8 c4 {* k5 M* P' p      end) M( ^5 j+ x! L* n: E. {
     `SRAM_READ,+ ]6 ?1 R( {$ f3 u5 E
      `SRAM_READ_KEEP:begin
+ t- X) Q7 i/ b; q1 ~       o_Sram_CE_n<=0;
/ X; `' y. ?: ~       o_Sram_WE_n<=1;
+ Z) m. Z6 W! @       o_Sram_OE_n<=0;, T0 P5 i5 g0 D+ H' S
       o_Sram_UB_n<=0;( R+ Q& I5 t' G, q& I
       o_Sram_LB_n<=0;; W: ]  @& ], v7 G8 b$ d7 a
       o_Sram_add<=Sys_ADDR;
$ d2 p' g/ ^* `3 i/ C! z$ N+ m9 N      end
: B. |1 S3 W) k0 J/ \" [8 n% `  B* m     default:begin ! N1 F* Q8 G8 O6 Q/ o; F3 W4 `' l9 M1 l
       o_Sram_CE_n<=1;6 H. w( M$ h, S  h+ l" k/ J
       o_Sram_WE_n<=1;
: Z& f3 _# E5 I& W4 I       o_Sram_OE_n<=1;0 q6 T6 }  E# V& h
       o_Sram_UB_n<=1;, y/ f' ~  M/ c1 n1 O
       o_Sram_LB_n<=1;
+ d' p6 j+ y2 V9 l       o_Sram_add<=Sys_ADDR;
. ~) }8 R' L1 V4 q( m      end , j; U3 j' }, s3 m. z* K6 L
    endcase$ G2 Y! W9 @2 C  T$ y7 }' Q3 H; l. l2 Y
   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传数据 可以正常通过串口调试工具收到数据 * Y! @; S5 l2 F" r; Q
例如我发1234 可以收到这个数据
- x9 B. K3 Q  E! t# m6 R, T
7 ^3 Y5 M" d: z6 \我在看报告的时候发现这样的提示:
4 M" H# {: a$ W, N6 r3 K. V2 rWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND' t- c# u2 R% ?! G) a& Y0 S( c
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND
# u# Z& X9 T2 |Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
0 [6 x3 V# \9 F2 g9 mWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND
$ M1 Q! q+ ]4 r: D& d, JWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND1 J  j) v, a. D. B: V- d( R/ a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND
3 E+ Y: r, R. S' d% u' W6 KWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND9 B; q' v, A3 \$ U; ]6 ?
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND+ c# V9 _: D0 u& H1 |
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
2 z8 M3 ]" Y* w6 IWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND
, c; q" ]4 Z* R" V7 c2 @Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND+ B/ L# h4 i5 s
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND
- g$ G' E2 V9 j) CWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND6 \0 F3 `1 n. y9 d8 H# J2 {
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND  T7 {; q1 K9 G- i4 |8 c  a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND
  R& W* s) q- _6 UWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND0 Q7 B; ^. ^2 _( o9 X8 n1 a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND1 `' K& j% l' F/ A
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND& A4 z" G0 v- u4 X8 v2 _( j5 r# |
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND
& [* A6 \5 D3 o. WWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND9 l1 U3 r' o0 z& h2 x& `; B
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND1 B7 q, D6 v7 u3 B5 F# S! m3 o
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND$ f" |# U8 h. \7 R, `
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND
1 W; z0 h! Z" A1 v5 x- c/ v% cWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND7 p$ E( @$ D* a2 S. n
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND
: n  S9 Z! {+ b/ uWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND+ k6 [& @3 i4 R/ @
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND( S  N4 z9 H$ `, v; f; [6 |5 N6 X
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND$ Y! O; O$ C. a0 O8 N6 ]1 J" ]
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND# A( i' |+ t- h3 Z
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND
0 f; b* L, {/ N7 P$ AWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND
1 R8 {- o& e8 u( C! bWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND
% L* [5 C7 J& A4 V' |. E9 ~( f* n! x. f7 d& t/ ^
感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

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-19 06:54 , Processed in 0.062413 second(s), 36 queries , Gzip On.

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

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

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