找回密码
 注册
关于网站域名变更的通知
查看: 1760|回复: 5
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    擦汗
    2020-1-14 15:59
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    下载到开发板上遇到一个与仿真不同的问题:波形不一致!
    0 T# ]: B# `* E; R8 M/ w  `/ I+ {. k% B4 A% F% u
    我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致
      a7 P: [# l1 ?7 M% o3 {比较奇怪
    ! R2 w2 B5 ^1 l0 O/ L' m; H9 X4 }. H7 K6 p% c9 }- S
    我的设计思路是通过串口接受数据: o8 D0 G4 [# r
    然后把接收的数据写入sram器件里面去
    ! Y. R0 s+ s' K
    & O  @) Z2 v& g4 N! G2 d2 C. p但发现那个控制信号与仿真时不一致(见附图所示)
    5 R, |, j9 J6 U9 |  Q7 o+ H/ \) l, N/ p4 m
    6 f$ F( I( R) ^$ ]5 p
    跟sram接口相关的代码如下:
    * v' y# Z) m+ d" Q& \: _! N# W# \% ?1 P5 q! A. p
    -----------------------------------------------------------------------------------------
    always @(posedge i_Clock or negedge i_Reset_n)) S- r/ m) \; K) E
      if(~i_Reset_n)begin  2 T6 h' y( d3 D" M" P
        SRAM_STATE<=`SRAM_IDLE;5 u8 B5 M1 ?8 G" z- K
        Write_ack<=0;
    ! {0 W; h* U/ J: _9 }    Read_ack<=0;) y( W& J1 T0 i( ?
       end4 l; D( z4 K2 v1 X  J" o
      else begin
    * J% E/ n2 W8 I4 i  G    Write_ack<=0;
    8 p: P8 g- Y; R    Read_ack<=0;( a$ s8 z7 n4 ^  i+ }8 Y
        case (SRAM_STATE)3 O2 n; D# m( r" k
         `SRAM_IDLE:begin- e$ H- g3 F9 N% |6 {
           Write_ack<=0;
    . Y. E, z, E( t: b2 O       Read_ack<=0;, y5 {$ X4 `' v" d
           case({Write_req,Read_req})( `. w/ H4 v. g0 w( F7 A4 m4 X
            2'b10:begin/ a# D: M5 g" S9 q2 O: [- e0 ?
              SRAM_STATE<=`SRAM_WRITE;
    $ l; q' E+ S6 `2 C9 L. E          Write_ack<=1;4 r4 o0 V* T0 F$ M6 w
             end& ~# y( N# f( ^0 H! I( ]
            2'b01:begin : b# B0 j, a+ c8 I; o) h" n
              SRAM_STATE<=`SRAM_READ;   ; P; u9 T( K8 h/ n: a9 F; B
             end
    $ y* N7 A( n) J' f* Y        default:SRAM_STATE<=`SRAM_IDLE;, B. p( a( G: G- J1 @) _4 W
           endcase
    ( H7 Q0 P1 W4 _% G4 `      end
    5 U$ N6 x5 D, F# s% p& n' {     `SRAM_WRITE:begin / |- n  X9 H; f0 P. q* z
           SRAM_STATE<=`SRAM_IDLE;  
    . T" ~% |6 a" M6 m      end
    ; S: m- H1 Y9 p( x     `SRAM_READ:begin
    8 y; J* c* z9 U$ k- k       SRAM_STATE<=`SRAM_READ_KEEP;" L6 S. h0 C' g8 x
          end( g: p: r: R( D& g! r( a
         `SRAM_READ_KEEP:begin 1 e6 t0 U% ]$ p3 C) g3 Z
           SRAM_STATE<=`SRAM_IDLE;
    . m' d& t1 \1 z2 n/ b, J0 `- w       Read_ack<=1;
    ' J# ^2 X8 h) ~- e- P      end9 F, ^+ u) u$ x* ^3 e' }
         default:begin
    " S- B+ R2 y: M5 T       SRAM_STATE<=`SRAM_IDLE;
    5 e5 j! l8 [% z! C& Z8 s: i0 ^       Write_ack<=0;1 [$ X! z2 J1 V  R7 u
           Read_ack<=0;& l7 Y1 o, s' X4 j# C2 B
          end- q; R* r. h+ t, w8 N( E
        endcase
    ( W! N" R* |1 u& B* a   end
    -----------------------------------------------------------------------------------------
    assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}}; 7 m' E- g# J+ ~& t
    assign Sys_datain    = io_Sram_data;
    + @" Y4 M' o( w. e: h2 @6 H0 [ //
    / _5 [% c; [9 ~* N always @(posedge i_Clock or negedge i_Reset_n)
    . |& t) g0 q; g6 q" C9 z  if(~i_Reset_n)begin
    + W- f+ _2 M. O* u$ C, m% D    o_Sram_CE_n<=1;
    0 A; b' N5 V5 H1 J. \' c" Y! E. \4 O- d    o_Sram_WE_n<=1;
    : S. W" h8 y; s    o_Sram_OE_n<=1;
    6 ?8 P4 ]3 x# n  T) `  |    o_Sram_UB_n<=1;& Y5 U" U5 h8 L) o0 F
        o_Sram_LB_n<=1; * z: ~- Q" a! }/ g
        o_Sram_add<={16{1'b0}};( q8 M. b6 a" g; U" `; J& c* J
       end
    & g$ S, G, Q4 R/ x- F0 j  else begin$ ~3 x; _" d4 l4 F  `/ \
        case(SRAM_STATE)
    ! n/ J1 [9 a  A8 J# i' S6 f1 Q     `SRAM_IDLE:begin
    ) u% v/ d" o9 |) H* s$ O       o_Sram_CE_n<=1;! d# @% \1 N) q1 z) J
           o_Sram_WE_n<=1;1 A& N8 z' X/ j
           o_Sram_OE_n<=1;
    ' @5 S+ [, F. _- x       o_Sram_UB_n<=1;
    6 |4 Z5 ~, d6 e: C- [( O, k2 s7 n       o_Sram_LB_n<=1;
    + ]/ u6 w& Y, F! v: _       o_Sram_add<=Sys_ADDR; + P! u; Z: e! B# ~
          end  U* z. v+ w0 O/ O, c
         `SRAM_WRITE:begin  
    9 o; N2 Q* k& A! {( S# [5 @* ?       o_Sram_CE_n<=0;( B/ R- L3 l( x4 ^5 @; R- y
           o_Sram_WE_n<=0;
    0 F' O+ @) V( e2 ]- s' ]       o_Sram_OE_n<=1;- I; Z4 x3 H4 H0 t% v: ]8 E
           o_Sram_UB_n<=0;
    2 t/ I9 I. \6 F% K& N- l3 Y       o_Sram_LB_n<=0;
    + C1 o( u3 F  I$ y3 W/ S       o_Sram_add<=Sys_ADDR; 8 u7 g! J/ d( D0 H. C  @" F# B
          end  }) s4 ]1 N* `% W  T
         `SRAM_READ,
    ! d$ K* h: h: t6 p! [      `SRAM_READ_KEEP:begin
    ' |& k& N0 k1 g! T8 Z- p6 m       o_Sram_CE_n<=0;
    % L+ P  _! F) m0 c8 i% @. |       o_Sram_WE_n<=1;6 S& N& I" p) E0 s" N
           o_Sram_OE_n<=0;# [1 F* b8 y0 X
           o_Sram_UB_n<=0;$ M' q( x& S4 g% c. k7 Z
           o_Sram_LB_n<=0;' V' g1 x( p" m8 v" r# d
           o_Sram_add<=Sys_ADDR;
    8 i& b. s2 P# Y9 s      end' w6 u, E) E1 c
         default:begin
    2 ^$ H. [0 z4 c7 F! H$ p       o_Sram_CE_n<=1;
    ( R5 [# }$ u& N- n       o_Sram_WE_n<=1;+ `8 }' u# p7 C5 B
           o_Sram_OE_n<=1;" l  {$ e' ?$ O; O" i3 ]6 J% j% L
           o_Sram_UB_n<=1;9 q1 u3 m' H8 i, L6 t3 J+ h
           o_Sram_LB_n<=1;6 |- s* T$ |  M
           o_Sram_add<=Sys_ADDR;
    - @9 t3 f% Q/ M. b1 m      end
    - ], A, C  _5 D8 X8 I1 I    endcase
    0 I" e7 y9 o" U' u   end
    -----------------------------------------------------------------------------------------

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

    Snap1.jpg

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

    Snap2.jpg

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

    Snap3.jpg
  • TA的每日心情
    擦汗
    2020-1-14 15:59
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    该用户从未签到

    3#
    发表于 2009-2-25 11:48 | 只看该作者
    你的时钟是多少?仿真是前仿真还是后仿真,综合时加约束了吗
  • TA的每日心情
    擦汗
    2020-1-14 15:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2009-2-28 10:34 | 只看该作者
    我单独用uart发送模块给pc传数据 可以正常通过串口调试工具收到数据 # ^3 b0 F4 d, x8 I4 l( T
    例如我发1234 可以收到这个数据$ D! {8 X+ K) w! G
    * V9 K/ A; D7 Q4 g
    我在看报告的时候发现这样的提示:
    # y! ^' K5 M. U2 Q7 WWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND
    2 Y4 e$ y. d5 V9 s: _3 X! t! bWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND  P; G) c- b7 {$ }, }
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND+ u8 U2 s* y9 ~3 u; u9 a5 W" J! O
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND
    ' e' X3 D# |1 ?9 W' `  CWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND4 g& R. d, d8 Z& w
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND! q. }! T. B7 ~* R$ b+ q8 t
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND+ k5 }* j! h  i* K
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND
    : G) U* O2 m& @# ]/ Z1 M" @- LWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
    1 D9 v4 |. }8 J- o' }Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND* H7 k! @9 {7 M5 }1 M/ O7 c
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND
    , _% r$ g( I" n! f2 |+ A7 l. cWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND
    7 u! G3 u, D; ]' c$ bWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND  f6 j1 g2 q9 A$ X' r+ I, c% z
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND2 H+ u0 X$ k- h: `- p, i8 b4 E
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND* w( i! b" ^" h' \3 M) a. z/ y
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND+ I$ Z9 l% m% I9 ?3 k8 U
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND
    " I7 [6 C! q  t- o3 D6 |: k1 tWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND6 V: ]+ R  ?" ~4 h: {
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND
      P5 y5 l) A- ]( ]9 aWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND3 W/ s9 q2 S$ z8 E8 T# r
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND
    $ \; i; C7 z* nWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND
    + d+ b! |9 M' A/ bWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND: S8 V9 C0 h; t1 Q- t
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND
    5 C& |: E2 Z0 J' S/ GWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND
    , P# q3 e: K' YWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
    , S$ ?2 }" D: E4 j- b) L0 r9 x# Y+ ]Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND3 S$ _  c! h( Z! C
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
    2 u0 G" G7 C0 h1 S2 `2 [) BWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND
    1 R& W- F! h& {4 F# `( W) s+ a' XWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND, M2 |2 j6 D( Y! H! K8 G5 R1 V
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND
    5 ?+ g0 I1 P" u+ t- C4 NWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND
    ! e4 ]! v  {, j2 d# u
    5 Y8 ~5 t8 U) G感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

    该用户从未签到

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

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-20 06:31 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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