找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
下载到开发板上遇到一个与仿真不同的问题:波形不一致!3 A1 T; t* }: Q0 H. _0 V4 V0 @- P5 Z
- }9 l% K( T( x9 N% H
我用嵌入式分析仪抓数据发现波形与我仿真时的波形不一致3 D1 r& |8 h0 c. d. `0 E+ r
比较奇怪4 x6 {  @, `, T- t3 H
/ A, G' V( i- |4 E* r" \9 g! P& e
我的设计思路是通过串口接受数据  a3 k7 J2 W! N) G  `- o$ x4 h* X
然后把接收的数据写入sram器件里面去+ Q2 o1 t+ c2 S5 y5 U- g% |

) R( |8 H) N2 H9 o, Z$ C但发现那个控制信号与仿真时不一致(见附图所示)" a! w% y# O5 ?$ l0 O% t

( q, h: Y* E! M1 ^! l( D8 g8 p
$ N% A5 f0 E1 V1 Z跟sram接口相关的代码如下:% k  Y6 V6 r/ f

# A& @% d9 z" l( p/ g
-----------------------------------------------------------------------------------------
always @(posedge i_Clock or negedge i_Reset_n)1 j" I! V9 k# \+ T  k0 v! R: I  C
  if(~i_Reset_n)begin  
; }* L9 U, l0 E* W) T    SRAM_STATE<=`SRAM_IDLE;
7 l) ^5 T9 h, }6 h    Write_ack<=0;
) T. r7 w. r# o    Read_ack<=0;7 ~  [6 \" L) g/ `
   end
" s) U9 n& b4 k0 i7 |; z. [  else begin
$ R/ S1 D9 e, {7 _    Write_ack<=0; ! n* }3 d: h* G  b5 {0 I
    Read_ack<=0;
1 [6 Z* U3 e* v% L! R$ @0 W    case (SRAM_STATE)7 \% Y0 i9 t. j' e1 Z
     `SRAM_IDLE:begin
) X5 F6 Q/ s) K: [5 i       Write_ack<=0;
0 A! P" j  s& S: R+ {! S       Read_ack<=0;/ B* C' V+ ?3 C5 l  i, H6 i" V
       case({Write_req,Read_req})$ F2 E8 J: d& d* L- c
        2'b10:begin
6 j7 X+ E: m$ Q6 n8 |/ K2 E          SRAM_STATE<=`SRAM_WRITE;
/ q4 v+ C' \! a" y0 I2 }& K% Q          Write_ack<=1;
7 D4 F: B$ t! g3 t- ?0 l6 X4 F         end. k% I* p: ^0 ~7 ]5 a; C
        2'b01:begin 5 Z1 h$ I( s; [
          SRAM_STATE<=`SRAM_READ;   8 Q' N* g5 K* ?( C1 f; G
         end
% P9 E) {' A" D4 T- r/ t& R        default:SRAM_STATE<=`SRAM_IDLE;, I% t* U1 P# |7 _
       endcase
' z# ~- z' q* g* U& ]      end  O2 k3 a- c" q# z* m% a
     `SRAM_WRITE:begin
4 h! d! \2 q+ J6 [* `- a) I       SRAM_STATE<=`SRAM_IDLE;  2 _5 j3 M- F, l9 p2 j6 f' {
      end7 i' S+ T  v, ~
     `SRAM_READ:begin ! d' {+ Y" H6 m+ N: m/ n
       SRAM_STATE<=`SRAM_READ_KEEP;
# i$ V& m5 v8 v      end
$ o" ?6 d& T$ F$ [     `SRAM_READ_KEEP:begin
# i) L! j( ]2 c5 c" D9 M       SRAM_STATE<=`SRAM_IDLE; % `2 ?/ F  l$ W' a: X- X
       Read_ack<=1;
+ y* W8 b+ P8 d      end  {  d5 k. ]0 w& k0 f2 O! ~4 l3 J
     default:begin
7 G- \- @- ?# E) Y- O7 U       SRAM_STATE<=`SRAM_IDLE;
7 d" C. W. ?  |& _; G; l% {       Write_ack<=0;
- H$ ?+ @- ]2 h       Read_ack<=0;' Q8 V+ Y: `8 L8 U  v/ I
      end! c+ ~, ~: M; r% n
    endcase
2 r- c' {3 b! v# x   end
-----------------------------------------------------------------------------------------
assign io_Sram_data  =(o_Sram_OE_n) ? Sys_dataout:{16{1'bz}};
# l5 T; f, M6 P9 L assign Sys_datain    = io_Sram_data;) G6 M. l: q9 G8 {+ }- @$ V, H# @
//
6 \# ^% d8 a) y4 G! a& j3 h always @(posedge i_Clock or negedge i_Reset_n)1 P' j1 H3 v* L7 b: D
  if(~i_Reset_n)begin  ?5 Q! Y, }  w7 R* J! N. n
    o_Sram_CE_n<=1;
, Y9 D. x( E, O3 [* ~' p    o_Sram_WE_n<=1;
6 \$ R7 K4 m# E. \; j' Z# c    o_Sram_OE_n<=1;
% V7 f4 P" v$ X9 o: s: O    o_Sram_UB_n<=1;
/ u. |' _( I* C# D4 J. L" X3 U    o_Sram_LB_n<=1; - N' X; {( |+ M- ]3 {( J7 l3 X
    o_Sram_add<={16{1'b0}};
. q$ |' O8 y2 k6 A   end) i  a) A1 n0 }5 A  x
  else begin
2 r' h; B5 |* \) R* [; I7 T7 P* y    case(SRAM_STATE)0 P3 y5 X7 o$ x: _8 V" s
     `SRAM_IDLE:begin! Y6 b( f! g, H
       o_Sram_CE_n<=1;
& @3 ]1 w2 i1 _$ H- W: O, r3 F       o_Sram_WE_n<=1;: P2 X1 c9 o, e9 w9 |0 i
       o_Sram_OE_n<=1;
; v3 L4 m! D  L4 R2 `- T, y; j       o_Sram_UB_n<=1;$ a7 v+ W8 B$ q3 g# ^/ q3 S% ^- c
       o_Sram_LB_n<=1;
4 m+ x6 E8 o5 B/ Y: m* x       o_Sram_add<=Sys_ADDR; 1 l* h( h7 ?" y' H" q
      end3 M5 ?, S/ `9 s, _" s6 Z% j
     `SRAM_WRITE:begin  
6 c+ Q+ X. _1 n" {9 ?( u. i: j       o_Sram_CE_n<=0;8 J% Z1 c1 _9 c) H7 P1 J
       o_Sram_WE_n<=0;
" K8 _6 E5 d; w+ c0 z7 w! S       o_Sram_OE_n<=1;
  S7 U$ E5 Y% v4 L- ~       o_Sram_UB_n<=0;
# L9 O8 @& T. x       o_Sram_LB_n<=0; % G4 {. R- r6 f. W* z, g$ M
       o_Sram_add<=Sys_ADDR;
; n, b* u. E; u, {9 F      end2 o9 q/ S6 K* d, n1 M4 m
     `SRAM_READ,
5 m; q$ y. D. {/ ~      `SRAM_READ_KEEP:begin
3 @, w3 `! R! V       o_Sram_CE_n<=0;
& z; `, O( O7 R8 c       o_Sram_WE_n<=1;* D% }# ^4 Y7 {5 i4 ?
       o_Sram_OE_n<=0;  A" U: q  `0 T* l* J
       o_Sram_UB_n<=0;+ ]+ K# h* V' E+ \0 \% B. N
       o_Sram_LB_n<=0;
3 \1 m9 \. \0 ?1 ~/ V0 J2 Q       o_Sram_add<=Sys_ADDR;- }1 N, {0 p/ g' V0 j
      end% ^; e! j' Q* e2 t# L& O9 }* ?4 e
     default:begin
9 {( b$ L2 {6 t1 r4 t6 ]9 r       o_Sram_CE_n<=1;
3 m0 M$ k: N6 |8 H: Q1 v       o_Sram_WE_n<=1;/ W% R7 Z1 o) m% R: ^" B, a6 G
       o_Sram_OE_n<=1;' b( P; k3 {: F
       o_Sram_UB_n<=1;
1 i! F% |2 D' H( _# z" B       o_Sram_LB_n<=1;
/ j; J3 r: J) P1 G8 p       o_Sram_add<=Sys_ADDR;
& \: i  l6 ~7 Y! s' J& D8 k7 |- r      end 8 I/ Q6 g$ ^$ k+ \7 A- r
    endcase
! c. V) V$ M9 m0 @, T# N0 L# m; ]   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 P' d+ h9 ~1 y8 x例如我发1234 可以收到这个数据/ y" R6 C/ w0 b% j1 Y

- E) y+ A7 ~# n' G, P) d我在看报告的时候发现这样的提示:# o  S: Z8 c" q! d' [0 |$ b
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|Write_req" with stuck data_in port to stuck value GND" O* n8 `: l6 F; f+ _
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[15]" with stuck data_in port to stuck value GND5 c$ j; ?6 z/ q, j
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[14]" with stuck data_in port to stuck value GND
6 {1 f& T! [4 [) z; e: s% k; PWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[13]" with stuck data_in port to stuck value GND
" Q: E$ N) G; b* Y6 r7 gWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[12]" with stuck data_in port to stuck value GND4 V% Q7 r- b0 H, x$ z
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[11]" with stuck data_in port to stuck value GND/ e% k' o5 g8 l) m- I' `+ t7 v4 w/ d
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[10]" with stuck data_in port to stuck value GND
" w( a- L# o/ M3 T9 m  i1 fWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[9]" with stuck data_in port to stuck value GND
5 J/ L- U) J* SWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[8]" with stuck data_in port to stuck value GND
5 B( X4 G$ a: k7 aWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[7]" with stuck data_in port to stuck value GND# O$ C- J- t8 @5 ~- |4 z
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[6]" with stuck data_in port to stuck value GND
% f- s8 w8 B5 q3 g4 b" |  e" @Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[5]" with stuck data_in port to stuck value GND
9 @  k9 R6 I6 XWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[4]" with stuck data_in port to stuck value GND9 `6 m$ L% x* f5 [& b
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[3]" with stuck data_in port to stuck value GND3 [1 h- q: {! t6 R3 \  X7 U+ ?
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[2]" with stuck data_in port to stuck value GND' s* F! L" s% C4 k. ?! d( g
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[1]" with stuck data_in port to stuck value GND
, ^$ O: H8 k! V. \6 n7 O* A/ JWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|SRAM_Sys_dataout[0]" with stuck data_in port to stuck value GND8 S1 s7 X4 j! e8 v% T
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[15]" with stuck data_in port to stuck value GND
& ~: \( W% y# E% U/ h- vWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[14]" with stuck data_in port to stuck value GND& ~5 P, d( I) b4 D  t6 B* j
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[13]" with stuck data_in port to stuck value GND- _( F" v- G" [( ]) a0 ]
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[12]" with stuck data_in port to stuck value GND
' O3 N( O2 N2 V% KWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[11]" with stuck data_in port to stuck value GND2 t9 B$ K! X4 q# ~0 r8 \
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[10]" with stuck data_in port to stuck value GND. [, \( Y) a0 }2 S6 h
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[9]" with stuck data_in port to stuck value GND
  {2 c+ p. I. x0 g" fWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[8]" with stuck data_in port to stuck value GND* M+ I+ X: C" b7 d8 d
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[7]" with stuck data_in port to stuck value GND
$ G4 a8 d% ?  V: K. TWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[6]" with stuck data_in port to stuck value GND
% @4 L# l0 R3 Q+ ^2 g- X: L* HWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[5]" with stuck data_in port to stuck value GND
4 H1 ^1 h2 |; v& F2 gWarning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[4]" with stuck data_in port to stuck value GND! h! E8 m; @, _$ M9 p) Q" z5 K
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[3]" with stuck data_in port to stuck value GND7 t" x6 q: z' [0 L/ v  q
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[2]" with stuck data_in port to stuck value GND7 v  K8 N" V+ E+ V
Warning: Reduced register "CRT2SRAM_DATAPATH:CRT2SRAM_DATAPATH|UART_Sys_dataout[1]" with stuck data_in port to stuck value GND
7 v4 l+ ]2 f' y( b& ]& }: O9 g4 ~8 f  v& {
* B; O1 u7 {' d/ z感觉是不是那个地方可能写的不对导致综合后给优化掉了还是怎的?

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-14 16:33 , Processed in 0.063346 second(s), 36 queries , Gzip On.

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

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

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