|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
上篇讲到了:单端口同步读写RAM的设计,那里对RAM的读写采用的是同步的方式,也就是和时钟同步,读写都依赖于时钟。& M% g0 W5 F" S
9 M2 b. H9 `% V. G G; W0 R) z9 J
$ o, o* i: T. ]% M* i
这篇博文,我们的写依然是同步的,但是读是异步的,所谓的异步就是指不依赖于时钟,这点我们在后面的代码设计中可以清晰的看出。
3 m# C7 {) ]% g' x7 C+ l# ^2 G2 d
4 r" w* @; ?: J D# I# g3 d7 X( n2 ?7 s: o- O0 O
截取出来:
" N* ]3 p' S2 c/ B F% ~/ L0 v8 G8 \6 w @+ a: W
+ }( v+ n8 Y/ y5 |$ A// Memory Read Block
" i6 J, o' J9 E// Read Operation : When we = 0, oe = 1, cs = 1; |, E$ V- I( H# j
always @ (address or cs or we or oe)
9 f' w8 G8 [5 Wbegin : MEM_READ
t1 _% c# `+ g) S" X) F$ r if (cs && !we && oe) begin
" ^+ I* V( j, t data_out = mem[address];
) `& A/ S! V$ q5 E% V+ p! V" e end
' f7 z7 u! a0 Kend
' k) M0 w; V! N& \+ S* d" L
9 T; H% u; I& c/ ?% k+ W z4 f; Z# y! Y7 {9 \4 b5 i# a
可见与时钟无关,是一个组合逻辑。
+ v R5 g$ B$ o( u6 W5 k2 @( H' `) ^7 k' q0 f! R2 W
7 f* ` R0 {% D5 U8 i
! [1 o. K" U3 C1 [' c x+ K. D8 W" u( P( ^0 ^" K$ |, P5 G( N
0 \3 z7 g$ ^9 X- U4 ? |
|