找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
下载到开发板上遇到一个与仿真不同的问题:波形不一致!8 d# N6 Q' Q3 S( M9 Q

+ [: L) N) a# m3 G3 X0 N6 V我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致  w$ A) x! [6 C  ~7 v
比较奇怪
7 a$ o2 w( Z1 W' K- _' ]& k& E# ?9 j& S1 v8 ]' ?( _  J7 H$ y7 ~
我的设计思路是通过串口接受数据
5 h1 c' v4 x( P) g+ V$ t$ v! X; ]; q然后把接收的数据写入sram器件里面去
1 @4 P/ O: @8 [# V0 G2 S" [; D* r3 ?
( ]# S* k1 p% g7 B1 j- z2 C但发现那个控制信号与仿真时不一致(见附图所示)
% w2 Z" ~2 _& E$ x& j
" A- j# Q5 N) J3 ?: j9 j3 k0 F1 h4 n6 s' M) L) D: q
跟sram接口相关的代码如下:
, l2 d) ~" x1 b# ~: |* ?% K" s1 ~$ \4 I
# n( |6 R+ A6 w  w, h
-----------------------------------------------------------------------------------------
always @(posedge i_Clock or negedge i_Reset_n)
9 W  D8 T$ b/ @  S! k) [7 [  if(~i_Reset_n)begin  
: y' z$ a, B7 \6 ^    SRAM_STATE<=`SRAM_IDLE;5 o6 K8 }" c- y! {- c1 E
    Write_ack<=0;
% l; G( s/ A% p    Read_ack<=0;4 E" c7 P3 U5 r' X8 e
   end
( w/ T9 T$ g8 s' I  else begin( q$ Y& i4 o, {
    Write_ack<=0; & F( A) I: ~  ?6 y* O! s
    Read_ack<=0;. [' H, K0 e% I+ Z  F: J9 z
    case (SRAM_STATE)& A- u  [. Y& L
     `SRAM_IDLE:begin0 P( B) M+ ?; K' ~
       Write_ack<=0;% L* t/ i4 a  {
       Read_ack<=0;0 _$ {! v; l1 ~8 O$ ~8 K( X1 L- q
       case({Write_req,Read_req})/ u; Z! b) J, m0 j# {* ]( \+ v
        2'b10:begin
: v$ b: j+ i$ o2 m: H5 [8 V7 h          SRAM_STATE<=`SRAM_WRITE; - ?3 W! B0 m& {- W( k, t
          Write_ack<=1;
/ ^0 m3 O% t: Q! t         end
4 i/ v9 u; T6 V9 X% e; r9 ]        2'b01:begin 7 V4 I. `5 [. U4 Q8 Y3 l
          SRAM_STATE<=`SRAM_READ;   * G. r8 C) l* I' A4 x
         end  x- a# u3 u2 K+ L
        default:SRAM_STATE<=`SRAM_IDLE;
- U/ f4 p$ j7 X8 q       endcase1 {  b: \6 ^# t0 y' Y* v2 t. J! x- u
      end/ t& r  ^$ {$ }4 k
     `SRAM_WRITE:begin + m  \) {$ g0 w6 T; s$ R
       SRAM_STATE<=`SRAM_IDLE;  
0 ^8 D" b7 V7 `      end
4 f3 W: y- H2 d     `SRAM_READ:begin * R) T/ I4 `4 M0 f7 P
       SRAM_STATE<=`SRAM_READ_KEEP;
0 M# r3 z. q, J$ a6 G      end, F- Y. B' B4 P4 N& U$ [, G
     `SRAM_READ_KEEP:begin
' t6 Z. }& v* P3 ~       SRAM_STATE<=`SRAM_IDLE;
. v* b2 Q+ O! Q3 m# q* y       Read_ack<=1; & {2 m4 y/ g" W3 A
      end
4 K( m# T; T3 S1 E4 z     default:begin
+ y( N! B1 a* j       SRAM_STATE<=`SRAM_IDLE;
0 e$ p+ K. l! e* X* h5 q       Write_ack<=0;
5 C" H7 [( ]  ?7 T4 c% \" Z+ h) J( x       Read_ack<=0;
/ ~4 j7 @$ E0 n+ X      end$ A0 m- Y6 M0 p3 e9 `& l2 P7 S
    endcase
7 [" z% W- o3 `' |   end
-----------------------------------------------------------------------------------------
assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}}; 4 Q+ |5 t: }# F- f% ~- [+ I+ L
assign Sys_datain    = io_Sram_data;
$ k/ J3 o7 x( G" o5 }  C9 t //5 x# Q$ J1 d: o
always @(posedge i_Clock or negedge i_Reset_n)2 D+ e% P4 w: }, B+ H4 h' ?
  if(~i_Reset_n)begin' _+ a, @5 ^4 |0 p3 T+ g
    o_Sram_CE_n<=1;
6 c: x7 p; P! F) V    o_Sram_WE_n<=1;8 u. m7 {" O9 H
    o_Sram_OE_n<=1;
( n0 C* M+ [* m0 S- h    o_Sram_UB_n<=1;# e$ |* [2 A1 N6 \2 A$ e
    o_Sram_LB_n<=1;
1 n: @+ Q: C; n  Y7 D4 w    o_Sram_add<={16{1'b0}};
* V9 O  c0 W7 L3 @2 u2 z   end( I% a! i- o# {, d
  else begin
, O) j9 t4 w. r1 H$ n* m! c6 z    case(SRAM_STATE)
/ ]- B) \& |5 W" {5 b: w! ^     `SRAM_IDLE:begin- O& o8 ?! l+ Y2 @1 i; X6 h& T
       o_Sram_CE_n<=1;- z' E9 F- s; N& l
       o_Sram_WE_n<=1;/ U+ f( D4 M$ F2 c: y* k4 [- ^5 e4 D- X
       o_Sram_OE_n<=1;
2 z$ g% }5 B+ @- y4 K, w# u       o_Sram_UB_n<=1;7 w: g0 O9 J/ u
       o_Sram_LB_n<=1;
) H7 L0 k9 o2 J3 q- @       o_Sram_add<=Sys_ADDR; 6 H% d3 O) I9 A' \: X$ i  R
      end
& x9 O% K$ }# r3 H  D: z     `SRAM_WRITE:begin  0 E. Y0 j  ~2 ^
       o_Sram_CE_n<=0;
9 @0 i/ A' h8 I: ]6 n       o_Sram_WE_n<=0;' e  a! D. l; b, E0 t& a: b
       o_Sram_OE_n<=1;- e1 U9 Q; R3 ]- F6 t8 l  A
       o_Sram_UB_n<=0;9 I$ U; x/ t% \; K
       o_Sram_LB_n<=0;
9 M/ v1 r) ^1 t0 ^$ A* }       o_Sram_add<=Sys_ADDR;
. t  B8 j* v5 y      end
8 n7 ~$ R* A7 O6 a2 \     `SRAM_READ,% R  u; ~, t/ O% _; B# Z6 s7 [
      `SRAM_READ_KEEP:begin
! D- |" F. Y- h: W! C( q; d1 B) [       o_Sram_CE_n<=0;
) J8 N4 v/ A1 ]0 ]9 t" D6 N  E       o_Sram_WE_n<=1;
7 t9 p$ z* E' y% P" [# B8 [       o_Sram_OE_n<=0;, d% n6 X4 v, b$ q, Y4 B( h
       o_Sram_UB_n<=0;) l, H9 r8 r" x/ ?; y9 L
       o_Sram_LB_n<=0;+ {) F- Z, Q3 f3 O/ \1 L
       o_Sram_add<=Sys_ADDR;
8 l' F- z' q+ u& S7 G      end
; d7 J" w2 C( ?' x" x     default:begin 2 d! H* ]4 A. ~! z; [% d+ Z4 V
       o_Sram_CE_n<=1;
% X& g( I# A9 u2 T. W       o_Sram_WE_n<=1;* |0 [# S/ P' E1 {, e" J% [9 Z# J
       o_Sram_OE_n<=1;3 {! \6 l6 E  i9 J1 G* V8 |( U
       o_Sram_UB_n<=1;6 P' a8 q" M$ Z; [' H
       o_Sram_LB_n<=1;( T5 M0 Z# F& T; q( U* z% k9 P
       o_Sram_add<=Sys_ADDR;
$ |  [; _" e$ U4 J      end
8 M; _4 L& A. x* K, i    endcase
% {. l7 R$ a% s8 Q' k- C) {   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传数据 可以正常通过串口调试工具收到数据 0 Z3 G. L5 D0 G0 P
例如我发1234 可以收到这个数据
8 G/ L, @! z3 D4 n
3 D; {' z7 n. s/ Q我在看报告的时候发现这样的提示:
& O& q2 Q% C8 d8 ?1 u; T% eWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND; N- e0 ?5 v' v2 d! R3 Y
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND
- W8 M0 m( ?7 T, t' Q; I, {: u; UWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
6 t" _$ j" `$ J8 lWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND! ?3 H; _" }" Z- s
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND1 ?1 l- T% C$ p- U& _
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND5 D. c% S. T+ z7 b$ t8 s+ R
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND' G4 \& n8 z  b5 p" J4 _- s6 O
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND! ?( d2 p7 f' U8 ^  z! W
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
6 b4 W9 k3 a( f" S5 o5 LWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND% |5 I! Z6 N6 Z5 D8 A$ E
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND
& X$ m5 [0 b5 B: e5 W5 ~Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND
3 F% ^: }6 k- C. h( e3 _; jWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND
: @2 `. ~) y6 [" T# TWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND
1 a3 \1 b8 W2 d: Q1 `. d9 wWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND  C0 S( r/ i$ a8 V9 ], o: A. p
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND8 X0 r: G8 H9 F, R& u+ N( _
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND
( U& J3 U% L4 L  UWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND6 c0 p2 G9 E# f5 K& N
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND
; m9 k8 Q+ e3 R: }7 N& XWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND
+ J6 W9 L3 e4 I5 BWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND
+ ?& Y) b  E! T* G/ [; d+ ?Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND
: p6 W6 [0 U$ M8 @' F- hWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND
7 T" A, e4 h0 D! E/ X" d  H% h1 y3 rWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND- B  C- f" h. N1 |* V
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND
/ I5 N7 L# x9 A) ^) fWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
9 @, z% ?6 I7 v. lWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND* u3 O4 k- Q, e9 u/ Q0 @
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND4 N3 q$ X/ U1 i8 B/ C# X( I0 y
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND& c- y& H* B8 Z
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND- x# K0 `) |# ?& d8 }: ?5 u: D# g
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND
8 s- h) G* q' O, {1 WWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND, c, [) v7 P- a4 A1 ]' t( \( q0 U

6 Y# ^1 {) s# j感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

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, 2024-11-11 10:51 , Processed in 0.064171 second(s), 36 queries , Gzip On.

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

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

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