找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
下载到开发板上遇到一个与仿真不同的问题:波形不一致!
+ }- W1 o3 n7 Z& J  {
9 |6 [# E/ @0 E3 q) t# z+ i, ]- k我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致: G0 s$ I4 N9 i+ l% q
比较奇怪
3 J1 L: T' g! q  v! |
1 Z7 ^5 D% n# O4 A3 i- t6 A0 {我的设计思路是通过串口接受数据
6 o+ n1 @- |5 O7 \# t然后把接收的数据写入sram器件里面去* y3 ^( O: G. B

3 n* f; y, U) k9 f" h但发现那个控制信号与仿真时不一致(见附图所示)* M0 ~# b5 j3 x. u  E

" X; h) d0 t9 D9 p* {
; A5 g, J; H1 \- z( L) d跟sram接口相关的代码如下:
) x, z  _5 t' F  }$ @: w5 x
/ p& n4 w3 ~$ [/ S, j% N
-----------------------------------------------------------------------------------------
always @(posedge i_Clock or negedge i_Reset_n): C4 q+ ]) d% s+ [
  if(~i_Reset_n)begin  
. p" Z6 R1 p+ T( c1 W    SRAM_STATE<=`SRAM_IDLE;
4 ~7 M5 y. R3 a* G    Write_ack<=0;- ?0 f6 |" S5 \8 T+ ~" q5 Y1 V
    Read_ack<=0;
0 q$ ?: O  ]" Q, L" S' R   end
9 q) w; s0 h1 B8 X2 q  else begin
1 u# K$ t/ @$ g( q. }    Write_ack<=0; 7 Y) s1 g, p) n* X) C! ?3 Y% ?
    Read_ack<=0;
! [0 u, G( J5 y9 M5 Z5 c2 O$ T    case (SRAM_STATE)4 T  Q- {/ ~* e7 @: X! Y4 f
     `SRAM_IDLE:begin/ G. u, V0 R3 B8 l# ]
       Write_ack<=0;+ |5 B8 y0 N  ~; l
       Read_ack<=0;' i/ M( V( F! j. J# N' c6 D5 X
       case({Write_req,Read_req})0 M. L* ^( l( v
        2'b10:begin
6 T: g9 f3 ?) I" @% i. N          SRAM_STATE<=`SRAM_WRITE;
0 @# B' @/ M2 U          Write_ack<=1;6 g- O. s+ k: n! ~
         end
0 ~& `  U: D# o, A  y9 ~% l; ~        2'b01:begin
1 l" }& k: X% G  ~+ C; }          SRAM_STATE<=`SRAM_READ;   
! ~' R$ q% T( U( U6 v$ g         end7 h4 _$ t2 K6 ?6 n( X/ c
        default:SRAM_STATE<=`SRAM_IDLE;+ }& b/ @3 c) t3 W" r
       endcase
* \) f% \  `/ z/ R      end& e; ^' k  _% J! \! n& {
     `SRAM_WRITE:begin - P$ O& M' f; t: d
       SRAM_STATE<=`SRAM_IDLE;  
. _& G; |5 L! y; ]# O5 ], A      end& [9 g7 C/ l. j  s
     `SRAM_READ:begin 1 I  s8 R1 K/ w1 r
       SRAM_STATE<=`SRAM_READ_KEEP;
. t$ b$ Z9 d& I6 I! J# Z. k      end
$ ]2 v0 s; b! [     `SRAM_READ_KEEP:begin
8 I- G. x4 x5 J4 I- `* v: ?* i       SRAM_STATE<=`SRAM_IDLE; / T! V! l3 u' q
       Read_ack<=1;
4 U/ K; @6 ?- S! _4 `      end
& G( C0 N, J! ^2 C" ?2 w9 q     default:begin 0 E5 Z) c- y) R8 e& l8 D+ t
       SRAM_STATE<=`SRAM_IDLE;0 ?- I% O  A/ T) _( q, X
       Write_ack<=0;( e+ h( t. B& D. j1 B
       Read_ack<=0;
1 v' w; x, Y* x2 l; x' u9 t2 e      end( l/ K; }7 {* H5 D' v, R+ T
    endcase& X! L0 @1 @) _- K% o/ ~6 \# V2 j! t: W
   end
-----------------------------------------------------------------------------------------
assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}}; : v, T# |: P: t; Y0 z# s: I
assign Sys_datain    = io_Sram_data;2 d( T0 a4 w6 N  {$ C. b
//
0 F6 L/ l* v! [/ v, d8 o8 _ always @(posedge i_Clock or negedge i_Reset_n)
4 P9 F( J) O4 T4 Z! }  if(~i_Reset_n)begin8 v( x: F8 @6 M6 M- l
    o_Sram_CE_n<=1;
) r+ T  w* t' R* E! J/ i0 p    o_Sram_WE_n<=1;
) N: g' m8 t6 c. @; x7 m    o_Sram_OE_n<=1;
/ n: l, H7 ^0 u# @2 a4 o9 m    o_Sram_UB_n<=1;
4 E. w+ a# i& Z! g7 T4 M9 K    o_Sram_LB_n<=1; 1 z: L6 G7 _) `# t
    o_Sram_add<={16{1'b0}};
7 R% p  ?! g- L' v5 O5 C   end
  A5 h# C% V! S4 a& h/ t  else begin
7 v* `- a& x( |, q! |/ [& `. Y    case(SRAM_STATE)
7 F1 e3 R. Z1 C( v! P     `SRAM_IDLE:begin
0 J3 t9 A  m  p       o_Sram_CE_n<=1;/ ^0 s' S7 e5 h
       o_Sram_WE_n<=1;
- y1 c. X/ @# t' E. d       o_Sram_OE_n<=1;: t/ a# E4 B" M9 C# B: g0 e8 P  I& S
       o_Sram_UB_n<=1;; J8 t) j* }# A* b+ R8 ]7 F
       o_Sram_LB_n<=1; 0 y! ^0 K7 f0 _' a+ ~3 \+ w0 C
       o_Sram_add<=Sys_ADDR;
$ `! N  t( P. d. J3 j      end: V% O* R5 s0 i+ r
     `SRAM_WRITE:begin  6 a2 ]4 T: d1 L9 d6 d: o: [9 z
       o_Sram_CE_n<=0;
1 I( R! V8 o% J  W( i; L& N       o_Sram_WE_n<=0;
, B* b2 H  [) v; ~3 O8 e       o_Sram_OE_n<=1;9 ?! \0 I* W" s
       o_Sram_UB_n<=0;; d  U# c9 o* s* M
       o_Sram_LB_n<=0; 9 c, z: T0 N, Z( }7 d  s) v8 i
       o_Sram_add<=Sys_ADDR;
! f0 ^; i$ H- N1 o      end
& Z; r$ ~- T4 o. \6 c- |% h$ m     `SRAM_READ,& w4 m5 o! `+ F  x7 v6 Q+ i
      `SRAM_READ_KEEP:begin
8 f$ u1 d7 h9 A) z- a9 C$ ~       o_Sram_CE_n<=0;
5 p, N+ ]: U/ G6 w& W. `       o_Sram_WE_n<=1;/ I  A* b1 B+ [5 W. e# [
       o_Sram_OE_n<=0;
  C# O5 C: m4 |# _* W+ c! A       o_Sram_UB_n<=0;
# E6 p3 Y( N  f' z0 _  P       o_Sram_LB_n<=0;5 c0 J# U* b5 H2 ~& F" h
       o_Sram_add<=Sys_ADDR;  g+ K8 A$ L& n- L8 E) Z0 w7 ?
      end
$ _: d  {, d) f1 ^; f  W: V: V+ q( x- K     default:begin
, a$ U$ G' ], d6 R  q6 b       o_Sram_CE_n<=1;
& n: O7 R4 ~$ i; {       o_Sram_WE_n<=1;2 f- q" I$ e2 c# j
       o_Sram_OE_n<=1;% n" X! j5 \& @" v: m8 [9 c
       o_Sram_UB_n<=1;
& E3 W- [- }- y: b+ C  b' E       o_Sram_LB_n<=1;$ ~" C: O7 [" n5 ?2 W( q/ W
       o_Sram_add<=Sys_ADDR;
$ z. `! v5 F7 [" y8 F# ?      end
/ R1 V/ M: n7 w2 G- m    endcase
% y2 A) N8 A3 L8 @   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传数据 可以正常通过串口调试工具收到数据 ' E- {! ?$ }" L: S# ~
例如我发1234 可以收到这个数据
/ p: W1 Q9 {" @& Q) x- J" v" s/ y) O/ ]+ n, k) C5 ~
我在看报告的时候发现这样的提示:0 Z4 a8 d' {4 T, o" Y5 F
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND0 w( |- X+ R4 d7 i+ s# F; V' @
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND0 u8 L7 i' b5 C. w4 s
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND7 r8 B: S, I( ~5 {, |% _" z
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND' r5 `( f7 h! Q, P. a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND
' g7 c  z/ A$ o% d$ z$ G; yWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND+ z" `  P2 b& g7 h, E2 ]( P
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND4 {6 B) e( v3 j/ ]7 [
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND3 K& C1 _; ~9 }5 P* v; i
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
$ i/ M# H) I2 qWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND  V7 [6 D5 \, j" P' z8 k( p
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND
! P7 K; ^& `: vWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND/ ]1 O6 A. Z3 {+ V
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND
4 |) S4 ^* C) j, q: sWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND
$ T+ r, w/ ]( e2 nWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND
. t& W5 i3 i% KWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND) W2 k* g% M1 r' [( s* S
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND- e" T/ W1 H6 a
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND
$ {2 V7 Z( Z$ _3 ~Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND
( Z. T% H& {; [# h; hWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND
1 d7 r% A$ N" K4 R1 VWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND
1 S+ f9 C" A/ g0 s8 o6 \: M$ sWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND# q+ K. q1 ^6 h) S$ @9 O
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND
  W6 P; T* p. |0 `' B5 ^Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND
/ |6 x# A& Z; l" u3 i* IWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND
' `4 E. F: ?1 }7 L. ~9 z7 U3 B  qWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
- c( C) }* ^! e* o! |Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND* u. R) a0 b& i8 ~7 k
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
: \- X: h6 Z$ H( a* a0 J1 uWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND, T/ H  @: v9 l4 [
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND
/ x" A* T& l5 R3 ~  z+ m; A: P+ G* uWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND
  L" z  F( q* o7 h3 D: `Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND
, h/ l4 Q3 c2 g" m* S
: l8 h/ ^# u7 H. n" Y5 ^感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

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, 2025-2-19 06:42 , Processed in 0.062429 second(s), 35 queries , Gzip On.

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

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

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