|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 ulppknot 于 2019-7-11 16:29 编辑
4 f7 M! `3 S, q3 A- X: _' H. G9 y% J9 ?: M+ X
这篇讲异步读写:# P( [+ S, L: b$ k% ]7 {
* l: T- L+ R7 a, J5 V
" ^5 i" V6 Y* O: f在单端口RAM的设计(异步读、同步写)中已经对异步读与同步读进行了比较,这篇要对同步写和异步写做一个比较:
) e5 [1 |/ o; L& o
" Q- O/ p( K' \3 `
; i4 S5 b; a2 X5 @" o/ C* u首先是代码上的区别:易知,所谓异步写,也就是不依赖于时钟的写,只要给一个地址,且写使能有效(当然片选也得有效)就可以写一个数据:' K/ ^7 {5 [3 K8 ?0 _
a. {! d8 y; `/ }$ o" T
6 `+ i7 n4 Q# t; z1 f0 L- // Memory Write Block
- // Write Operation : When we = 1, cs = 1
- always @ (address or data or cs or we)
- begin : MEM_WRITE
- if ( cs && we ) begin
- mem[address] = data;
- end
- end& E# {5 N* y7 O7 S
" p7 `/ B- a5 j
: I( [; S& N0 R7 n7 U1 `! \
) T3 e. U6 i" h+ W- g! o% {4 Z! F+ ?异步读自然也是如此:
, g' E6 i* `1 A8 L v/ t U6 x: r! w7 D! X7 ]! ~
2 m$ ]" z" u4 r P5 h( d" R/ U# F* _
1 E! d0 t/ G4 v9 G, f! f! \+ p7 M
( o |* }% X% N' {6 L+ T% w
. F; i* p- H8 P$ \7 ~/ j& `
+ W& S* E& B8 k6 w8 U+ h+ y+ [% Y$ M
: _, ^1 d l8 v; E+ B$ ~# U( `. a
! ~9 {( _- [4 c( |( e5 o) }# Z+ `6 N3 H9 ~) c+ O8 `
|
|