EDA365电子工程师网

标题: 版主帮我看看这个时序该怎么写(版主已答) [打印本页]

作者: icelucent    时间: 2008-7-22 11:45
标题: 版主帮我看看这个时序该怎么写(版主已答)
两幅图片是ad6652配置寄存器的读、写时序,版主帮我看看这个时序该怎么写,特别是write时序中wr和read时序中rd这两个信号怎么处理,它们不是在时钟的上升沿产生也不是在时钟的下降沿产生,到底要怎么写这个时序,以前没遇到过这样的。
* }9 e$ ?; F$ m2 }1 Q+ p2 s7 _6 C2 y8 t! Z2 [% s, P( g
[ 本帖最后由 newpost 于 2008-8-22 13:43 编辑 ]

read.jpg (1.46 MB, 下载次数: 23)

read.jpg

write.jpg (1.46 MB, 下载次数: 15)

write.jpg

作者: mengzhuhao    时间: 2008-7-22 19:41
我的理解是你说的rd与wr都是在cs有效情况下才有效的8 S7 y* _2 x1 M3 c' C& x  U9 F( {
和cs信号同步就行吧
1 m, C! t7 ?% O
+ P$ I) z' b: n8 Z4 Z# r个人看法不一定对
作者: dabieshan    时间: 2008-7-30 15:26
使用状态机描述吧
作者: newpost    时间: 2008-8-22 13:42
这个时序还是非常简单的。
: k) B; y' {0 }- x1 i6 H  m不要拿到时序就害怕,看看具体就明白了。
4 P/ @2 P/ J" f  N2 S+ K' M至于使不使用状态机,这个可以再议一下。8 K/ t4 |5 V3 c/ K. |
我说下我的理解,也是草草看了一下,有不对的地方请朋友们指正。9 k1 q7 g! K1 M7 ]. \& N
7 A9 o2 i8 H1 v
我只以读的时序来说明:时钟上升沿检测读写信号,发现读的时候,并同时cs信号为低(否则,没意义,但以前是高是低无所谓)令RDY信号为0,坚持TACC(根据要求)时间后置1,此时数据位置上的数据是要读出的数据。
作者: LHDDSHL    时间: 2008-8-22 19:55
标题: 现在工作上几乎不碰这个了,晕
不过以前做这种时序都用状态机来做的,效果不错
作者: chenlei2004    时间: 2008-9-8 13:48
标题: 这是本人以前写过的代码中的一段,已经应用到实践中去,给你做参考
input CLK; //时钟* x" V; J1 z' z2 b8 R
inout[7:0] FLASH_D; //数据线
, v5 Z8 w$ H" rinput[2:0] FLASH_A; //地址线5 f' @- l! U) }. Q8 j) g
input FLASH_CS; //片选线5 t6 O  z3 q2 _" m
input FLASH_WE; //写信号
% ^" y9 V7 H& D" kinput FLASH_OE; //读信号9 D3 ^, x( w& k6 W4 S& L
assign databuf_en = FLASH_CS | FLASH_OE ;
9 q& X* k/ Y- l" qassign FLASH_D[7:0] = (databuf_en == 1'b0) ? data_out[7:0] : {8{1'bz}} ;
0 w& ~3 D3 l) G' Nalways@(negedge FLASH_WE or negedge CLK  or negedge databuf_en)8 i. ~* S4 x& `4 l( ^2 Z% l
begin
: J- R  V1 ]/ ~% D/ J3 }  * z+ U+ _9 k# x! y: \  j1 T
   if(!FLASH_WE)        $ X6 d0 h+ R1 x& O4 B, e- d( X% j
     begin/ L% `7 X0 Z1 |1 v/ W6 c+ R
         case(FLASH_A)
) \2 i' a5 O- ~& _: B                        //写的状态,以下自己可以添加4 h8 o! s9 E* ^- u  z& c
  j4 Z  [8 l5 W) U3 v, S) G
                                                   ( r0 J& k" `% J  m9 A
                                                 ! Y. K% @1 T" d: f
        endcase
) q. t# y" }$ A- z$ \: Z               
+ g$ v9 u6 _* @   end        , y* E1 G* a! D2 w6 H
if(!databuf_en)  . g( r& L0 H$ w! d5 ^5 S
        begin1 a  }/ L7 }+ u( Z& ?$ Q; |# p
         case(FLASH_A)
5 T/ r+ m% {. H1 k9 @                          . B2 F& O% W( W" d
           //读的状态,以下自己可以添加0 k! ?9 T: S# e; i4 o  T
        endcase   1 j2 ]1 v. R9 q
        end   
! G' o: c" K3 k7 @2 y                  
: I4 }+ V) `  C$ d! Q( @2 nend
作者: cookei    时间: 2009-4-26 19:42
6# chenlei2004 2 K! Y& Y! `" T* y
学习
作者: yaojunhao1111    时间: 2009-5-18 16:46
学习
* Y  m" Z: I) M3 G0 z不会
作者: plaserjet    时间: 2009-7-9 19:44
读写都要在一个进程里处理,有优先级么?




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2