找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
下载到开发板上遇到一个与仿真不同的问题:波形不一致!- c6 n0 H; o: m2 W, I8 l4 D. A& J
0 G! }) l7 y" J
我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致
9 M& N$ [/ f+ p4 C8 t比较奇怪$ u; u8 t3 r( j9 \
( l$ B( a6 C7 B: I4 o: F8 q0 L
我的设计思路是通过串口接受数据
) q" w7 X7 g/ S0 }7 Y0 f# m* f然后把接收的数据写入sram器件里面去9 C7 m  x/ m: v* L1 v9 d. [. _
$ F0 n8 M# W' F2 z: P# O
但发现那个控制信号与仿真时不一致(见附图所示)) U5 A  j/ a: b
) e: s" x5 U- h+ H- V! N& t  C

( ]$ L3 B; ]6 R/ s  e" k' W0 E跟sram接口相关的代码如下:& ?, _0 w4 q  y8 H- I9 u6 T

  q/ C' l1 J) f* i: S6 r
-----------------------------------------------------------------------------------------
always @(posedge i_Clock or negedge i_Reset_n)
3 l8 _# o+ B8 Z! c+ F5 O  if(~i_Reset_n)begin  
9 G+ W7 @8 Y7 V4 c9 {$ M    SRAM_STATE<=`SRAM_IDLE;/ D0 P# \4 V- D0 U5 D: L. |
    Write_ack<=0;! J$ q" `) J* l8 n* |4 h
    Read_ack<=0;
4 ~5 y$ F" S* S: V4 v1 `   end
1 q% E9 r8 u3 V9 X6 D' _  else begin
$ j( {& y' h. n) o    Write_ack<=0;
& E9 T5 `% _3 @6 r. ?+ C4 X    Read_ack<=0;
4 o, `) Z# R% O0 c    case (SRAM_STATE)4 s2 h  c7 }6 P) C6 k, U8 `
     `SRAM_IDLE:begin% x: p) B  H- y( [# ~
       Write_ack<=0;
+ w6 v* }$ y! y  H9 c' U" V. W       Read_ack<=0;
- \) A2 I7 G' p) y/ n2 g2 R/ T; X* J       case({Write_req,Read_req}); e# E# X: g' X
        2'b10:begin
3 c. U" A: d) W- C          SRAM_STATE<=`SRAM_WRITE;
5 E# L, o: M9 @7 q+ L6 f          Write_ack<=1;
# t; c# m6 i; J. U5 Z         end; q& i9 {" n. u1 t  s) c
        2'b01:begin
* j* k# R  U; ^! q          SRAM_STATE<=`SRAM_READ;   
$ X4 [' y# f( I4 T2 Q- ]         end
. t' s% Q( A# Z" }, f        default:SRAM_STATE<=`SRAM_IDLE;
9 l; H  l0 j0 l; @0 y% ?       endcase
3 d9 Q& b& a+ b4 t      end: z8 |; G9 ~2 c& q
     `SRAM_WRITE:begin : z  a. L+ S7 Q1 w7 N
       SRAM_STATE<=`SRAM_IDLE;  / Y# x7 P; s7 y5 D0 ]8 Q0 p3 M
      end
# H8 X* L, S* M# q8 Z1 b) T1 }  u     `SRAM_READ:begin
9 S: w  [6 S/ a, j+ [       SRAM_STATE<=`SRAM_READ_KEEP;
6 p- x. Q3 j9 K) l5 L: n* x0 Z      end3 B  O2 W& V( |$ g3 Q$ N" v8 g
     `SRAM_READ_KEEP:begin
% f0 T9 e8 E/ ?9 k7 l4 y       SRAM_STATE<=`SRAM_IDLE;
$ L1 a# s) A3 G- O( V/ |0 ?       Read_ack<=1;
! K$ v" {$ @( T9 M2 |, p      end1 O, X$ F0 ?) r" n
     default:begin 4 V% J6 M8 a# {* \  x) U, z
       SRAM_STATE<=`SRAM_IDLE;
1 Y: v  Y; T7 u6 w! F7 J1 P& C       Write_ack<=0;( q! g; t# M/ C) h) o. K
       Read_ack<=0;! u" O8 r# M" h: b; M' ~0 R1 o7 i
      end  {' d6 Y0 j/ m6 B) `
    endcase
! b+ y' q" c; x' x/ {   end
-----------------------------------------------------------------------------------------
assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}};
* h+ U% Y( R5 g  ~; g assign Sys_datain    = io_Sram_data;2 [. ?; o) n" S4 [" ], c; l6 B$ Y
//& j' z' D9 x9 _! ~  z+ I6 u
always @(posedge i_Clock or negedge i_Reset_n): j1 \6 F/ t7 i
  if(~i_Reset_n)begin7 [3 }6 d% k3 H" @! f( N3 E* T' Y
    o_Sram_CE_n<=1;& E  ]! a% j! E! w( f% L8 ?5 P
    o_Sram_WE_n<=1;
( z: D3 R! T3 s! A    o_Sram_OE_n<=1;9 K$ J2 Z7 `$ f3 s
    o_Sram_UB_n<=1;: p6 Q+ S8 H6 U" G
    o_Sram_LB_n<=1; / P: q& t" `6 o% O/ \2 L
    o_Sram_add<={16{1'b0}};
# {( n5 y4 Q  y( f# e1 H- |$ |, J   end4 H/ O+ p9 Z- \9 ^7 _: W
  else begin$ \( x! n1 R( O7 J& m+ F
    case(SRAM_STATE)
, C$ b1 b" z; x: n7 f' s7 l     `SRAM_IDLE:begin/ ~& f' |9 x- t5 q% Q8 d
       o_Sram_CE_n<=1;+ M/ e. `+ `4 t- g
       o_Sram_WE_n<=1;
& `5 W# S  q) C* X* M       o_Sram_OE_n<=1;6 H" h5 p5 G) @7 k8 F0 g
       o_Sram_UB_n<=1;9 X* O% c; c; ]' r4 d$ U
       o_Sram_LB_n<=1;
- e: f" e' a# S/ S8 [; E8 O       o_Sram_add<=Sys_ADDR; ) _0 r  l; ]6 {2 o) Q2 ~
      end
- A# p1 i2 g/ u- K, q( I7 ?     `SRAM_WRITE:begin  
: H9 x- s1 o) N       o_Sram_CE_n<=0;: A1 _* k6 O7 a: ?! D) a
       o_Sram_WE_n<=0;" l* j7 u% f4 }6 L  G
       o_Sram_OE_n<=1;% g. f; R8 @  Y( `2 B
       o_Sram_UB_n<=0;
( S( o$ D9 g5 n# Q2 \3 A* y       o_Sram_LB_n<=0; + D- C6 _, s. f! `0 E" L) J! M- V
       o_Sram_add<=Sys_ADDR; % K. W1 B7 f8 @) T! h1 V6 T! O3 o
      end
! C% `7 X1 t7 b1 s( k0 I" a1 L0 r     `SRAM_READ,9 K0 z8 ]; \% Y. a1 @* Z1 Z
      `SRAM_READ_KEEP:begin
. d* g9 u; q6 O$ J$ f       o_Sram_CE_n<=0;  J9 [9 ]) g* H) H9 I! a, y
       o_Sram_WE_n<=1;9 I! A6 d. T8 t( E' X. x% h* J( x
       o_Sram_OE_n<=0;9 y1 F$ C6 x' c: M
       o_Sram_UB_n<=0;
8 R( v: O! g, `) r# T       o_Sram_LB_n<=0;
; I# w" c) T: g6 I4 f7 h$ E       o_Sram_add<=Sys_ADDR;8 c; J- B6 C3 X  k' I5 |
      end% q2 q9 ?; p; O5 r9 r5 ^
     default:begin
- V  J( f+ A  r' E       o_Sram_CE_n<=1;- K0 E5 b+ I9 N. ]$ A1 L9 f7 Q7 X
       o_Sram_WE_n<=1;. i! K# O/ d8 v' C
       o_Sram_OE_n<=1;
4 a& O8 f2 a3 b# Q: ?. F0 x; p. ?, @       o_Sram_UB_n<=1;( p' o/ X# K5 D6 P
       o_Sram_LB_n<=1;2 O  ?; k7 \, `% e" y
       o_Sram_add<=Sys_ADDR;
+ g$ R  G8 e  ]      end
; b) j! H1 w* C- y" ]    endcase: c( G  \0 t7 |  Z+ D: x
   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传数据 可以正常通过串口调试工具收到数据 8 w7 h& d" E# f' `, p( R
例如我发1234 可以收到这个数据
7 F& Y- A1 _6 C4 ?( h' L- x! U  Q/ y5 O1 l. D! d1 }
我在看报告的时候发现这样的提示:
+ J- d0 ]6 N) AWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND3 [) P+ m" d! z7 W5 F1 X" E/ q0 L
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND& G+ `8 _8 l( E: E
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
  }- z8 S9 W/ b3 Q6 cWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND: a$ t) |+ ]  M% W: K7 E1 t, W
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND
9 z3 W6 Z* T4 U  r# }Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND0 R0 S( P! ]5 b  v% [' @
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND8 s$ P  i2 p, n* m; m, V' H
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND  _1 D2 X6 S7 c. R
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
6 o8 {5 W- V2 w6 X$ z* wWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND
3 `5 m7 D" V8 S: p2 nWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND. T* H" _  L/ r* d
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND, v6 ~# I4 J. g, X
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND
% b+ L/ f$ [) _4 `1 tWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND( f$ E+ f  j, i  `
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND
' Z8 H2 o/ s, k% [Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND
7 n4 }$ y0 a6 JWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND
, E6 t7 y: x7 _! |1 ~2 Z3 FWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND" s& W8 l6 v% [( L4 q! D
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND4 N6 s1 Q; ~/ ~# \9 a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND8 Y2 N  d& h: P! I4 u6 I6 u
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND
2 }1 t: ]7 ]& sWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND
8 ^! j( `, B0 ]) s2 q6 vWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND
4 V; B" z' a, b- v& z; NWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND" g' X6 W; ?+ a" Q: S! w
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND
- D. B# H' M7 yWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
; e$ E" v( l- zWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND
) ^2 @  h; c6 D) m- @9 tWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
- G5 S7 a9 v" U# V2 @  MWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND
( h8 J2 s- R4 M! a/ |- p" o" q% H. K4 ^Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND
8 C2 N4 }5 ^/ \& ~) w. x4 VWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND" B1 Y( K# e: S2 e! }3 a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND# X2 K0 T3 R  Q6 X5 p1 k

  d0 Y; q' [+ \" J9 ~- _感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

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-13 17:51 , Processed in 0.062756 second(s), 35 queries , Gzip On.

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

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

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