找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
下载到开发板上遇到一个与仿真不同的问题:波形不一致!' \. ?) }  G, T" Y
5 x; M8 S5 G$ G  Y/ i9 d9 Q
我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致8 R& R' ]$ K7 L# K) W
比较奇怪0 `% |0 m0 d0 t9 I$ Z( p, |
( k# U# S" `  m: P( B: l
我的设计思路是通过串口接受数据
( C- Z) }/ F! A" f/ g+ e然后把接收的数据写入sram器件里面去
; T. y7 G7 G( ^2 D" B
5 l( o, M* }0 R; g7 C6 s/ h但发现那个控制信号与仿真时不一致(见附图所示)
4 s$ H3 a. s2 L: }/ m4 q4 L
7 n. A! C+ `& T3 [
# E3 t( A* M. T: k4 x跟sram接口相关的代码如下:1 _2 B7 c; t- ~+ d# g
# ^3 \( ^( l2 @* S; _
-----------------------------------------------------------------------------------------
always @(posedge i_Clock or negedge i_Reset_n)* x6 Z8 _: p, G- W" }" E
  if(~i_Reset_n)begin  & }: x8 r9 }$ I, [
    SRAM_STATE<=`SRAM_IDLE;
. g6 f  d: d6 w0 w* q. ^    Write_ack<=0;
1 _$ _2 z; s2 m3 n    Read_ack<=0;
/ _+ S2 |# r$ z* z) w, U   end; U) C% U) ?' `$ h& s
  else begin: i0 r- c! m8 \" H
    Write_ack<=0;
, G5 y( ]6 @/ C8 E* P. s. }- P    Read_ack<=0;
* w0 M9 G0 \3 k. n9 o* z" F    case (SRAM_STATE)! `& ?& @- b* q& @3 L3 m" @
     `SRAM_IDLE:begin6 m$ E2 x5 Y* n* y
       Write_ack<=0;
- ?) t8 s1 `. c1 B& K9 w       Read_ack<=0;
! L6 g; {/ |5 q1 |       case({Write_req,Read_req})
2 \3 Z8 P5 e$ T/ p        2'b10:begin' R: m3 V  U( f0 X0 |3 @) U& M  g
          SRAM_STATE<=`SRAM_WRITE; # N* I( |4 _& E
          Write_ack<=1;) c& L  b) U; ^; n, O
         end6 X) _: t" k  d; W0 K9 R
        2'b01:begin
# U( v5 ~: h+ [9 Z9 z: i4 u3 t, o          SRAM_STATE<=`SRAM_READ;   
2 J5 s* H: z( X$ I3 I$ h9 X, |% W         end8 S, u$ K: p7 o! L- q: v
        default:SRAM_STATE<=`SRAM_IDLE;
' K+ [3 R: ]3 M) t1 Q' t       endcase
$ K; _8 ]8 Q8 ^: M3 r( I  q/ S      end
$ I  O5 {' q2 ?4 x& \/ G7 {6 E/ n     `SRAM_WRITE:begin ( u! F  j* ?: f$ x
       SRAM_STATE<=`SRAM_IDLE;  0 I* X. P( o' k9 r+ u3 V  e
      end
9 D1 @8 @  V( w' }! O     `SRAM_READ:begin
* @6 H9 B: c8 [0 f6 L5 N       SRAM_STATE<=`SRAM_READ_KEEP;
" [2 U( R+ ~, K* m7 `/ n; T) S      end
0 {( S8 A- ^, P4 Y     `SRAM_READ_KEEP:begin
! o8 B0 j% H+ e2 x6 ?8 y       SRAM_STATE<=`SRAM_IDLE;
. E' N2 V0 ]7 B* D: @- J% h! k       Read_ack<=1;
- m6 s  ?3 M& ]  o" f0 E' a) X      end* }" P/ K7 T( B: @! T/ l( ?; T
     default:begin
: j$ Y' g* w; f7 J       SRAM_STATE<=`SRAM_IDLE;
& q( w! U# c! S5 K' z; a       Write_ack<=0;
* |5 Z% {% X( d$ S* E4 [6 U       Read_ack<=0;" n9 t; Q7 X3 `3 T5 s% R
      end! \. Y5 a& T" v& y- p+ |* O* l- `
    endcase2 \% [' r+ u$ Z% w6 p( v
   end
-----------------------------------------------------------------------------------------
assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}};
* G( Z! f  k* l" K assign Sys_datain    = io_Sram_data;
2 S# P& G/ h' n" O. `* { //- J( }4 K& G$ A* b, c: `
always @(posedge i_Clock or negedge i_Reset_n)8 W/ C# t- H* g9 X* T" N- R9 W! L
  if(~i_Reset_n)begin
5 V& G, i2 e& c* L    o_Sram_CE_n<=1;
6 k9 O, u- n% A+ ~8 i5 K9 E    o_Sram_WE_n<=1;; x2 N) m; `% e' ?9 V/ @
    o_Sram_OE_n<=1;
; Z6 s( e- l9 A5 B! |/ w3 I, R    o_Sram_UB_n<=1;
  a- {* y% ]. b  W2 j* ?1 ~& j" g    o_Sram_LB_n<=1; ) T# P$ l# e& M
    o_Sram_add<={16{1'b0}};
: ]7 m: L6 y+ d: C' F   end
1 _6 k! c* G9 x2 `6 c9 s- r  else begin8 c) r' y, K4 N: p) V# }, g# q
    case(SRAM_STATE)2 |' U0 Z8 M- ~' u! m. t
     `SRAM_IDLE:begin9 L5 D) E$ _2 s& k
       o_Sram_CE_n<=1;5 R. q% q* `% |! Z- a2 @
       o_Sram_WE_n<=1;
. ^4 N( E9 s+ N! `4 T       o_Sram_OE_n<=1;" |0 c% y) H  ^4 V2 y! T* h
       o_Sram_UB_n<=1;* f/ P" r; g. N
       o_Sram_LB_n<=1; ; ^2 g5 w& x6 U5 Q
       o_Sram_add<=Sys_ADDR; . ^. A/ d8 y' {% D$ L% ]
      end1 Y% I" \- {. m( Y% g" v
     `SRAM_WRITE:begin  
' w6 x9 T! W* s; h/ l- W       o_Sram_CE_n<=0;
  S4 y+ k( U. K6 K       o_Sram_WE_n<=0;# I1 _1 c! {1 b4 d8 {. {) o8 k; f
       o_Sram_OE_n<=1;
2 D. k- d# M) B2 G       o_Sram_UB_n<=0;/ [: L1 w5 H9 s/ }
       o_Sram_LB_n<=0; 4 y6 s* \1 w1 G3 Z: Y( L' _
       o_Sram_add<=Sys_ADDR; 5 y7 C. F* J" l$ i! Z
      end
4 ^1 l. v+ k1 `6 Q1 x5 H4 J) a     `SRAM_READ,) y) \% j2 b+ u. C4 }
      `SRAM_READ_KEEP:begin
6 Y% D2 p! b  [5 u; N4 z       o_Sram_CE_n<=0;
' E/ b/ V; O" z4 A       o_Sram_WE_n<=1;
: m( {+ D& R  E$ Y, y2 U       o_Sram_OE_n<=0;! _$ t9 S2 Q" h$ `; J
       o_Sram_UB_n<=0;
2 h, F3 n+ g% C, E       o_Sram_LB_n<=0;" P! W2 v3 o, n3 d
       o_Sram_add<=Sys_ADDR;
3 g) }. n: [0 C7 T; P# X( Q  @      end
( e5 l. n9 k% y5 b; }# h& Q     default:begin
/ ?  @$ A# u6 B       o_Sram_CE_n<=1;
: j! S% B6 o8 S: ]       o_Sram_WE_n<=1;
" D; W% F, {+ p) q9 \3 o. h, p9 Q& d       o_Sram_OE_n<=1;1 T9 v* k1 h2 V9 A
       o_Sram_UB_n<=1;
9 z! f, [( ]: z% F9 J       o_Sram_LB_n<=1;
, ]* @& b0 I! i1 {3 H" ~9 d' G; g       o_Sram_add<=Sys_ADDR;
8 C4 x5 }: z. l" s0 @  s      end
0 ]' h. C% V) v. O5 u    endcase
- h. Y; T2 J! `1 G7 J8 z4 Z   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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

7

主题

54

帖子

852

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

17

主题

371

帖子

3268

积分

五级会员(50)

Rank: 5

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

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
4#
 楼主| 发表于 2009-2-28 10:34 | 只看该作者
我单独用uart发送模块给pc传数据 可以正常通过串口调试工具收到数据 9 u* E0 F) m9 w
例如我发1234 可以收到这个数据
5 D0 q5 m0 E3 |) v; W1 x& P7 R" _5 j2 v. T$ l% c8 f) D
我在看报告的时候发现这样的提示:
" c4 X$ r, G. b2 f) i( [0 IWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND. h7 O) i; o4 t: m& b4 y8 f
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND2 p( _6 W; R% `
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
/ {8 b* h; V; l: j- A. r: U2 Q  _8 h' XWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND
4 t4 j5 u) `2 J8 ^# @Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND% R0 r4 ^/ ]/ f
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND* y5 r3 x! ^$ v1 g" ~
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND
0 J' I) t- h3 {( I( \* h/ O& }Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND1 x& e  A! K  P' B' z
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
6 W, c* |& a7 b" ?/ YWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND, k! Y! o  Q+ G  m! ~) j+ `. \
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND0 A  u2 U5 I% n* F9 E! ^+ F! a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND
4 K( |# }, g" e+ Q5 d/ x! AWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND0 |* `/ ~2 ]: p( w
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND
1 W( o& |9 o  j$ E4 H5 i4 cWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND
  b* f$ v0 ~5 s$ M) sWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND
8 L4 L' N' `9 O& V5 L. c0 G6 }* jWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND& u# l" ^1 m6 p
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND
9 w% p4 r) ?# c+ Q8 jWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND" `- g/ ]* a" V/ ~% t4 A( D! I0 F
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND
* T5 z, J% u$ L2 G0 p, vWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND* z4 o1 }$ d$ R, q1 s
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND/ d4 g1 B5 O# H; b' A' s
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND
( O0 E& \$ j4 @( O6 eWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND/ Z5 ?1 v2 c, X
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND7 ]$ l* Q# Y  k- R( P$ ^
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
3 U! G, e! z8 V+ K/ k! wWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND
5 C: q4 o7 L$ i' H' OWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
5 ]" I9 C; A+ TWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND
. l% f5 s9 [' Q% Y- x2 j" GWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND9 P6 S& t& [# _( H( R1 `
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND
( L) j/ m( X3 [" U8 i( J- ZWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND
( m& K5 ?! T  z; `& F# k& [5 ?8 d. J6 ~& ]1 t! i
感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

17

主题

371

帖子

3268

积分

五级会员(50)

Rank: 5

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

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
2#
 楼主| 发表于 2009-2-25 10:26 | 只看该作者
而且也发现o_TX的波形也是与仿真时的波形时反向来着
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-21 03:31 , Processed in 0.063958 second(s), 37 queries , Gzip On.

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

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

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