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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    下载到开发板上遇到一个与仿真不同的问题:波形不一致!
    . h  c, G! l! h  w  d+ E
    * Z8 i  N( i8 u我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致! L& m* i- U9 m! d! h) Y1 u
    比较奇怪
    5 R: |5 {# o- u' S/ \4 s$ `: C9 k6 J1 x5 j) T: z, x
    我的设计思路是通过串口接受数据
    ( E8 }& O5 [6 Y5 ~然后把接收的数据写入sram器件里面去0 h' R: l/ c) s
    " i- E0 A+ ^; X+ g4 T( t9 U. M
    但发现那个控制信号与仿真时不一致(见附图所示)
    6 K& v+ B& D, `) U- x
    / Y  r+ A9 b- G  I1 _
    * G$ P4 r. Q; Y- G跟sram接口相关的代码如下:: ?0 s' q7 b$ d6 Y/ V8 @

    8 c+ e6 R0 R5 \  R1 w
    -----------------------------------------------------------------------------------------
    always @(posedge i_Clock or negedge i_Reset_n)( m/ R" x" P; S
      if(~i_Reset_n)begin  
    & H: C* j7 s4 ]( |3 P5 @    SRAM_STATE<=`SRAM_IDLE;
    ( c: c+ M$ c" c; A; @6 k: F    Write_ack<=0;! @' e! h/ A  R" q, c5 `3 \
        Read_ack<=0;% v4 G7 y) W# L, A! M( s
       end" R/ s0 }5 K. Y$ \
      else begin* T) n/ [) ?/ L/ j
        Write_ack<=0;
      Z& b1 I7 d1 \, v    Read_ack<=0;  R0 `7 J+ k, R$ V5 {& U
        case (SRAM_STATE)- I+ @7 S7 g3 j1 i5 r* l+ ~% ]
         `SRAM_IDLE:begin
    $ Z2 `' o* Z. u       Write_ack<=0;1 E) |0 ~" D" o; X8 C8 M! D+ O
           Read_ack<=0;
    * r8 J! p! N9 G  l( J       case({Write_req,Read_req})* l8 w8 X. E) Q  |
            2'b10:begin
    9 u& a) ?4 l4 K$ f          SRAM_STATE<=`SRAM_WRITE;
    : S- V9 y" I: M' l          Write_ack<=1;& \) R3 L; L  f+ o
             end6 Y& f7 ?6 R% H8 m6 o" F
            2'b01:begin $ U  `6 }6 T& j+ l8 K
              SRAM_STATE<=`SRAM_READ;   
    5 w' @; Y/ ]5 U0 Y- R1 f* f         end
    7 o+ d' T' p; L" Y        default:SRAM_STATE<=`SRAM_IDLE;
    0 x- K( g% [# Y       endcase/ B+ L1 n9 }% E* ~8 M
          end
    ' B$ U  |! l1 \) k     `SRAM_WRITE:begin 8 n' b. o! l% l: ?
           SRAM_STATE<=`SRAM_IDLE;  - L3 N/ }( ?/ e) L& `& C  s* R
          end
    3 u( b" q# [" A% X7 t     `SRAM_READ:begin 0 S" A* {+ u( k0 ]+ H. q$ @/ j
           SRAM_STATE<=`SRAM_READ_KEEP;
      S9 K2 c' |& K8 w; z2 E5 i      end' h0 \" w0 X. q* O3 B1 S2 E% }" i
         `SRAM_READ_KEEP:begin . g5 F1 c: ^$ u4 n' o
           SRAM_STATE<=`SRAM_IDLE;
    . r$ _! a: w6 n& t* J* C       Read_ack<=1;
    7 y1 w4 [" _7 m8 U& A; ]) r! w      end" C0 v2 N9 `* e, }( w
         default:begin   |3 o; W5 Y! e+ Q' O7 b- s4 [
           SRAM_STATE<=`SRAM_IDLE;: u8 ?: s1 I3 g1 M. u* v, b" m+ x  R' a3 _
           Write_ack<=0;% B3 W# n  @- M3 p' ~
           Read_ack<=0;
    + w7 z4 @1 b6 A( z      end
    ! ?( |$ p* z4 r& m' f+ p" I- t    endcase% @7 p0 q0 h1 i. n$ t# }( d
       end
    -----------------------------------------------------------------------------------------
    assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}}; 5 `8 v# Y- D) K; w$ i
    assign Sys_datain    = io_Sram_data;
    1 H$ h  g  ]* |- k& ?4 C. w //
    / \) v, ?" b, g& O. v always @(posedge i_Clock or negedge i_Reset_n)2 F7 r, r1 j' e
      if(~i_Reset_n)begin
    ' `; U+ P3 x8 V% e    o_Sram_CE_n<=1;$ ^% [% Q) ^! v! s' P! O) ~
        o_Sram_WE_n<=1;% _) a8 K- |. E0 I" @- n& F. o
        o_Sram_OE_n<=1;8 ~, j- p# K9 o! r- M: J
        o_Sram_UB_n<=1;7 Z& R: o3 G1 y) g* ]1 z2 c/ M% L  L
        o_Sram_LB_n<=1;
    ! h) g- `% L& c8 m' _) s8 b    o_Sram_add<={16{1'b0}};
    $ Z1 ^1 w! S9 M, g8 W6 u, g   end+ g: H% W. V& D9 h- d" G! c
      else begin: n; b/ I8 e4 f2 a% v9 v& F
        case(SRAM_STATE)1 T0 D5 L; v/ Z, @& M/ T
         `SRAM_IDLE:begin
    + B$ j! Z1 K- r% f8 Z" T       o_Sram_CE_n<=1;- ]& a6 n( |, {( ~5 J
           o_Sram_WE_n<=1;
    % I+ Q+ X/ q- J       o_Sram_OE_n<=1;# E2 D' Z# X  H* Y
           o_Sram_UB_n<=1;, P' q% V. s8 i6 s5 P7 T  x
           o_Sram_LB_n<=1;
    % P0 G+ O: F8 b+ H" L       o_Sram_add<=Sys_ADDR; 1 H' E+ C2 E( K; {( I( u7 f
          end
    * }8 q  c5 J( P+ j0 O     `SRAM_WRITE:begin  4 P: l* K  [3 |. P) ]
           o_Sram_CE_n<=0;
    * T. Y! Q5 N9 @* c' n# }! f       o_Sram_WE_n<=0;6 d: \" C% J! Y7 U7 }$ \1 ^
           o_Sram_OE_n<=1;
    6 _* z! B- `8 b1 |) r2 V       o_Sram_UB_n<=0;% h1 T7 K' N3 d0 n
           o_Sram_LB_n<=0;
    ; n' ^6 e3 J% x( y; ^3 ~       o_Sram_add<=Sys_ADDR; ( o5 ~5 w. U1 G8 S4 D3 A' L! h0 C
          end
    / Y/ ?( F" t; k     `SRAM_READ,
    + L7 A- j6 q' V# {      `SRAM_READ_KEEP:begin
    8 a* I, q# }; n6 f+ R       o_Sram_CE_n<=0;
    7 \/ K) C# `3 Z0 ]5 w$ H       o_Sram_WE_n<=1;
    . i& j( M3 ~2 z+ F) F$ l       o_Sram_OE_n<=0;$ \- V3 n& Y2 a& {" J" z
           o_Sram_UB_n<=0;
    5 \( u8 R. t1 A  L       o_Sram_LB_n<=0;
    ' W: w9 Z3 [( E7 O$ G8 r       o_Sram_add<=Sys_ADDR;+ K' ?6 ~5 T/ x6 p' H
          end' @/ M- M1 @7 J1 @+ D0 m' I
         default:begin
    ! F0 w8 B) Y0 `0 `       o_Sram_CE_n<=1;
    2 J8 |6 y5 P( i. M& l) r; D0 ]       o_Sram_WE_n<=1;
    1 d) y1 V7 ^) ?$ a, O* M6 L3 }) X       o_Sram_OE_n<=1;0 Y8 z* |0 Z: e' U3 M- y3 k
           o_Sram_UB_n<=1;: W: c7 y0 l3 H
           o_Sram_LB_n<=1;
    5 r5 S5 E$ p2 I       o_Sram_add<=Sys_ADDR;
    8 d7 h5 P2 h" ~4 {      end - A! T6 A5 H1 Q6 E) c1 `% M
        endcase; a9 E) L' L. n0 |" q  L
       end
    -----------------------------------------------------------------------------------------

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

    Snap1.jpg

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

    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传数据 可以正常通过串口调试工具收到数据
    5 P7 Z1 m& E" g例如我发1234 可以收到这个数据# \2 ]# z6 d9 g

    : r& v7 `- j8 R7 D我在看报告的时候发现这样的提示:7 ~4 z8 _1 e. H! v
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND" N- L# g% R# w! [6 r/ o; E
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND' l  J+ r7 D  a/ X( |
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
    ! a  O, z. y/ i+ G0 \& _Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND  H! @  |1 _% X3 M
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND
    % O) o1 Y1 u4 i' s3 zWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND- h- D* u, u' P* _6 J$ N
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND: o* Y0 n* J, b5 @
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND0 j5 K0 o* T# @
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND, }3 |. Q7 a2 `* Q$ I
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND0 s$ m$ o; Y4 d  z
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND
    % I, {4 k0 Z) P4 W2 D5 c2 w9 sWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND6 n  E3 H6 R* a# E) l) a4 I* ]
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND
    1 n& e& [2 E- H' eWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND
    0 L! C/ P% l8 i4 gWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND, |$ v/ a) y6 l# [3 {
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND6 p; R7 f; T' ~$ @6 f; ~
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND
    % K8 K8 b  C7 Z! D) \) [2 f1 rWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND
    / }2 M8 A8 g2 o" T! T( m$ E6 DWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND+ W9 J6 D# o3 |8 w
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND3 w1 n' h8 H) U% N
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND! K7 p  Z% {; d5 c& L
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND
    # C! T$ D, Z) h# g8 V$ jWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND. ^1 Y6 G# \$ N7 S! k
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND0 P4 ?" }' c# Q: d1 m. g4 s+ }
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND
    2 H; D+ v- c; yWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
    ( R6 d8 s( ]+ d% SWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND! R4 {+ o- N7 T% W6 N. r
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
    7 C2 W! Y6 D4 W9 `- eWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND
    * {% y, g$ j, EWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND! J; I& s  |: r9 N
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND
    # }) v" l5 R0 I' NWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND# N( \2 W' o3 {

    ! D" m& z7 C6 J, F" h* i! C8 I) q. q5 Q感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

    该用户从未签到

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

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-19 11:03 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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