|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
上篇讲到了:单端口同步读写RAM的设计,那里对RAM的读写采用的是同步的方式,也就是和时钟同步,读写都依赖于时钟。# t; D% G( V/ S! T* ^
F+ X S+ z& o- |1 Z( L
+ p9 B B4 d2 B, b这篇博文,我们的写依然是同步的,但是读是异步的,所谓的异步就是指不依赖于时钟,这点我们在后面的代码设计中可以清晰的看出。1 V- E" |2 x5 C0 j
) K6 m* P. w% h3 c5 W9 C$ Z3 {4 \. G2 t0 e0 h+ B! n) F* n. e
截取出来:
0 `; ~" m& B# a8 N7 m
L m1 V' b; _3 B* ~5 F
$ k Y8 _. g4 j# U( {% Y// Memory Read Block
* [+ l# n4 w5 e' j' u- z: R* ^// Read Operation : When we = 0, oe = 1, cs = 1
3 R7 K: [4 S1 Lalways @ (address or cs or we or oe)! P: \. Y; d' y; ?, K% Y
begin : MEM_READ
' X$ z4 B, C7 }2 {" U* s if (cs && !we && oe) begin
( a& d0 P% g/ b9 ^9 D data_out = mem[address];
! l" Z" p. d! o: H4 c end4 k2 n7 n4 E) d4 \! R* e3 C& l
end
7 K) S$ z* p# F% q0 q; l7 B% E* ^* b+ f, n/ V5 O" j5 V
; R) d4 @( a: y+ |5 q% z/ }) M. Y可见与时钟无关,是一个组合逻辑。( n& g" h9 s# ^+ b. S
0 i- ]" |" b/ {
& R/ p7 b+ {0 P, V; H9 m7 X7 z! N1 p
% w; V, z0 b9 m; {% J& w: C) I. d6 W' S5 P6 ?0 q7 n
|
|