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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    下载到开发板上遇到一个与仿真不同的问题:波形不一致!! Q  v9 N" B& l& d. |

    : ^6 ~3 L* A! \/ C我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致
    1 p0 X4 l; e9 S- V$ f6 e2 w比较奇怪
    - B8 g! G. @& D1 q5 j& o" J; E" H7 T
    我的设计思路是通过串口接受数据
    7 g& j9 j2 \: F  t然后把接收的数据写入sram器件里面去
    6 I5 {/ F9 }3 i  i3 Q
    # M+ l2 I! p+ s! G( w1 O但发现那个控制信号与仿真时不一致(见附图所示)
    ' C) H) R- p3 u0 F9 }. ^8 L: Z
    4 p- R5 D# X1 S- R8 }% a( e9 W+ {
    跟sram接口相关的代码如下:
    - j! ~3 ~  _& L: A, s; d; u+ U' [. P( F+ V* d) ^, s) ^: z
    -----------------------------------------------------------------------------------------
    always @(posedge i_Clock or negedge i_Reset_n)' m5 p7 H' M( {$ M
      if(~i_Reset_n)begin  
    $ H  t# U: l( @4 ]    SRAM_STATE<=`SRAM_IDLE;
    7 ^9 _& o) R( c" M    Write_ack<=0;; Y2 N: v4 f& H2 G" T6 Q
        Read_ack<=0;
    9 [$ U$ P* j; X: I2 ~   end
    # ]7 B- x) k; [* u  else begin) I9 i$ }9 Q0 r7 q; A
        Write_ack<=0; , q! I7 N1 J4 k- P1 F
        Read_ack<=0;
    % `% z! B8 ^) w* V4 J+ s  ?    case (SRAM_STATE)
    5 Z7 q( h/ {: M     `SRAM_IDLE:begin6 x; s9 u" j. s8 {& H
           Write_ack<=0;
    - I# B0 {, g" r5 t0 n) u       Read_ack<=0;# K5 {0 c. p8 N
           case({Write_req,Read_req})
    % w# |  M" D* i2 g  X        2'b10:begin
    4 R, E& q6 Q3 J' b; O. [          SRAM_STATE<=`SRAM_WRITE; ! `3 s. ]/ d% m2 q4 e5 m* l2 t! h
              Write_ack<=1;! T9 l$ D7 c; z
             end; Y7 S5 S+ d" a$ w" a) t7 W
            2'b01:begin 6 q1 T* U( B% h, d3 F( B$ T
              SRAM_STATE<=`SRAM_READ;   8 N- z/ N& {, w3 Y! c' v* a% U
             end( Z9 P+ w0 ^2 A$ C4 ^
            default:SRAM_STATE<=`SRAM_IDLE;) D0 f5 d3 r4 b$ l' X, M  j2 x$ {
           endcase
    4 Y  C; T; r' N& N  a. I      end
    1 D6 W. ~* _' D     `SRAM_WRITE:begin   g5 Y8 a- ?' [  |7 A) y
           SRAM_STATE<=`SRAM_IDLE;  8 y3 X% R! [& ?+ n1 _9 r( S; P
          end* v# D" r+ z  `3 i2 u8 N
         `SRAM_READ:begin 9 R" [. Q1 U( y' p* c& ]
           SRAM_STATE<=`SRAM_READ_KEEP;
    ; B8 i. _( D- F9 ^5 n; \4 ?+ A      end
    9 v2 z( ]- }% ~     `SRAM_READ_KEEP:begin 6 {7 P% M. \% ^. V. \* C) X
           SRAM_STATE<=`SRAM_IDLE;
    , I: \# U# h2 p8 H* l       Read_ack<=1;
    ) @1 V8 ]' a" J( M      end8 M3 v6 O' \( h7 ]
         default:begin
    . x, ?% Z9 u/ S8 d# U4 _: c6 W       SRAM_STATE<=`SRAM_IDLE;7 d+ A" w( k& [, G
           Write_ack<=0;: K0 E$ [. H1 w( S. O9 p8 L
           Read_ack<=0;
    ( W- c  K( {, R( j: b1 k" f% T! g      end: G% _4 W& R- h8 T) Q3 c1 H
        endcase
    + r5 K" _5 s7 E8 X4 B/ {8 N   end
    -----------------------------------------------------------------------------------------
    assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}}; % ^! x3 u6 [7 X( h5 Y) D
    assign Sys_datain    = io_Sram_data;
    ( ^+ R' f  z. z0 ]) g* Q //
    ; W, q5 b, X  n* w always @(posedge i_Clock or negedge i_Reset_n)
    & A# i0 x% S8 R8 C3 x; Z% s; J  if(~i_Reset_n)begin# m$ ?/ O9 C4 h8 l" b
        o_Sram_CE_n<=1;
    ( u8 B% f1 B( n0 o" _8 V    o_Sram_WE_n<=1;# _: H4 A* ~6 i3 i
        o_Sram_OE_n<=1;$ G. l. e8 \& L3 [$ B. U
        o_Sram_UB_n<=1;3 b- A) a3 h- ?( v$ ~- }
        o_Sram_LB_n<=1; # Q& ~; A5 I3 Y0 m, K0 B
        o_Sram_add<={16{1'b0}};; [1 o" @1 ~0 ?( R3 t
       end
    ' i- K% S2 \" j, Y5 I  else begin3 N: n' i, D+ z' {& }- W! h
        case(SRAM_STATE)
      w/ v+ _5 `; e1 q) D     `SRAM_IDLE:begin
    5 p. L* v: F4 p: l5 \( @       o_Sram_CE_n<=1;
    ' F, R! r! z9 }4 e/ x       o_Sram_WE_n<=1;1 f2 L9 U& F7 z6 h0 c6 m2 n) j
           o_Sram_OE_n<=1;  q! D1 G2 r+ l/ z8 J5 k
           o_Sram_UB_n<=1;1 B8 ^4 u8 w8 H! N  X, G
           o_Sram_LB_n<=1;
    2 F1 q* \3 m: Z       o_Sram_add<=Sys_ADDR;
    9 a( O: z: y5 C, q, ~8 l      end
    + T4 Q. O# p8 _. W/ k/ ?1 z; |+ x     `SRAM_WRITE:begin  
    + v8 J; F3 W  X. Z: Y, a4 m$ {' c       o_Sram_CE_n<=0;# M# i. r9 r( k; r0 H  }& C. n
           o_Sram_WE_n<=0;7 r) `- J! x" w  `
           o_Sram_OE_n<=1;! W" N- J5 `4 f7 h. b' g! b, z
           o_Sram_UB_n<=0;* E3 Y1 ?# ^; L
           o_Sram_LB_n<=0;
    4 _6 k3 w8 b! C) a; {6 L4 m       o_Sram_add<=Sys_ADDR; 5 J/ G# f/ I. H% z, ?& Y! `0 {; q
          end
    6 }! u( }& f) F# M     `SRAM_READ,! Y6 K' f6 S4 m* `
          `SRAM_READ_KEEP:begin / Q) w) b, b* I# }/ E2 k
           o_Sram_CE_n<=0;  x9 W4 f* [, u
           o_Sram_WE_n<=1;
    + B8 o! `' a6 q9 G, Z( N       o_Sram_OE_n<=0;# i% |! m5 ?7 b+ K/ Y
           o_Sram_UB_n<=0;
    3 B" \) K# \8 k: W       o_Sram_LB_n<=0;
    4 s7 C- Q4 u6 W       o_Sram_add<=Sys_ADDR;6 L7 P4 J& O  q( o% h% d* x
          end
    ( X7 a0 f5 H9 j9 Z& I* a     default:begin ! }% O, I0 _+ I( |7 ]# a* N: B8 T
           o_Sram_CE_n<=1;
    1 {) f% n" k0 y3 X+ |0 F; [- }1 q       o_Sram_WE_n<=1;+ q* V' H9 I% V
           o_Sram_OE_n<=1;: K/ E. u: B0 s$ J, w
           o_Sram_UB_n<=1;
    : x& }/ W; H( V  c, _       o_Sram_LB_n<=1;: Z, _  O. z0 t! p/ Q, I
           o_Sram_add<=Sys_ADDR;) \: @/ w5 N9 i$ b5 T5 q+ L
          end $ S$ M; F& V9 M8 ^) |; t; e
        endcase
    $ g# [, v. a7 [   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传数据 可以正常通过串口调试工具收到数据 ) D/ T$ u; w9 [
    例如我发1234 可以收到这个数据
    " d/ [# D: a. r: g) w4 Q2 e; k, G2 `- }+ K3 f
    我在看报告的时候发现这样的提示:' g8 v8 X# O1 Q4 U0 @4 Y3 t8 x
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND
    # v4 V" d# v* S0 z2 S5 MWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND8 J6 s/ H- p3 o& ]; ^- N
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
    ; }# N9 n6 P  P$ q4 k  dWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND
    # T% T6 v% t6 [Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND
    % I# ~9 l. @4 S8 J  fWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND( a8 t. K; k5 p- p' |' u
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND, \4 B% O$ Z" `0 ]3 |' ?
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND
    2 w8 Z  r5 C, m# F1 b% wWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
    / ~! c. T& q0 S2 A2 M/ KWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND& E2 ]9 v. ^" E. V, @
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND: I8 q0 k3 Q* t* e% _5 y+ H
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND
    7 I! a! `# }& j) _9 w- NWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND0 z1 X: I$ p" p3 }8 r
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND8 k4 E  F. F4 I% v: m3 f# @
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND
    2 I& w) E0 D' h) I8 Q# Q9 kWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND& I' H1 P2 s- C( K+ @+ M8 O* S
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND6 ^3 Z: H+ I; u: Q; n5 R) x6 ?* P- l
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND* R7 B/ q8 @* }. n9 L+ s
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND: F+ m, I% o" f* E8 D
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND$ e! _8 n, }5 |. U" k8 _. p
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND
    5 o% S3 B- `9 N* B# C( MWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND" S3 u6 }, N$ _8 k" s% K2 N! M
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND
    9 F6 O' S& Q% _" T: ^7 \8 GWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND+ m7 z) |& b1 h, e) a7 J' y! ~  G2 z
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND, k7 h' R* G9 P, k, e% t
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
    + H7 V; Q; C: `+ F& oWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND
    8 e: X4 @( b) v, |, F2 q  ^: {Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
    " s5 p9 c0 d+ x( Y/ J8 UWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND3 K/ X: ^* }  L
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND
    % K, H* z# P0 u5 g4 B1 {  tWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND6 M# E; B( Q2 C
    Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND
    : i3 i. q! J& l0 z3 \5 r: Y- Y
    1 ?: w' \; f5 K2 s& L" t  w感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

    该用户从未签到

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

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-5 05:09 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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