1.
Write first | Read First | No Change
区别在于:en & wr的时候,dout是什么,三种case对应于: dout = din; dout = mem[addr]; dout = last dout;
这个其实是个非重要参数,因为Design并应该去不关心 en & wr的时候dout 是什么。
2.
dout latency,因为现在的memory都会分块,行分成多个segement,列分成多个column,速度都比较快,但是在某些情况,比如CPU的L2 cache,这个memory很大,CPU速度又很快,dout可能会有多个latency,具体要看细节。
3.
另个问题是dual port mem两个口的地址冲突问题,同时读写了怎么办,需要一个处理。一般来说不太用的上,也是跟Design细节有关,要具体讨论。
4. clogb2函数,已经mem的深度,求对应的地址宽度, width of mem_addr = clogb2(depth-1)