lcytms
发表于 2016-11-18 12:43:35
仿真运行结果
设置好仿真之后,可以看到仿真结果。
可以看到复位完成后,wren写使能信号交替为1-0-1-0。
wren=1时观察写入数据data,wren=0时观察读出数据q(有一拍延迟)。
依次如下:
① wren=1,此时写入数据data为0~255变化;
② wren=0,此时读出数据q为0~255变化,与写入一致(有一拍延迟);
③ wren=1,此时写入数据data为128~255 - 0~127变化;
④ wren=0,此时读出数据q为128~255 - 0~127变化,与写入一致(有一拍延迟);
⑤ 同①
⑥ 同②
⑦ 同③
⑧ 同④,以下依次循环。
将写入数据data和读出数据q设置为模拟数值显示,更便于总体观察。
仿真运行结果与设计要求一致。
lcytms
发表于 2016-11-18 12:45:18
查看RTL视图——altsyncram
lcytms
发表于 2016-11-18 12:45:42
好了,今天的课程就讲到这里。
通过今天的课程,我们学习了RAM(随机存取存储器)的基本概念,然后实际演示了一下应用RAM的IP核来进行RAM逻辑电路的建模与仿真,并通过仿真查看效果。
希望大家掌握RAM的基本概念,并熟练运用Verilog语言调用对应的IP核编写相关逻辑。
更复杂的知识和技巧我们将逐步通过后面的课程展现给大家。
课程到此结束,谢谢大家的关注!
芙蓉王
发表于 2016-11-18 16:22:50
牛
Nigulasi
发表于 2016-12-5 22:53:01
begin
start_num <= start_num + 8'd128;
wren <= 1;
addr <= 0;
data <= start_num + 8'd128;
state <= 1;
end//这句不太懂
lcytms
发表于 2016-12-6 21:22:28
本帖最后由 lcytms 于 2016-12-6 21:26 编辑
Nigulasi 发表于 2016-12-5 22:53
begin
start_nu ...
是为了让写入的数据有所变化,起始数(start_num)加128(256的一半),这样方便观察。
要不然每次都一样,看不出变化。当然也可以调整增加的步长,比如说128变为64,32等。
希望能帮到你。
可以参考21#楼
仿真运行结果
设置好仿真之后,可以看到仿真结果。
可以看到复位完成后,wren写使能信号交替为1-0-1-0。
wren=1时观察写入数据data,wren=0时观察读出数据q(有一拍延迟)。
依次如下:
① wren=1,此时写入数据data为0~255变化;
② wren=0,此时读出数据q为0~255变化,与写入一致(有一拍延迟);
③ wren=1,此时写入数据data为128~255 - 0~127变化;
④ wren=0,此时读出数据q为128~255 - 0~127变化,与写入一致(有一拍延迟);
Nigulasi
发表于 2016-12-7 09:30:58
谢谢懂了
Esmiamor
发表于 2016-12-27 17:38:22
感谢分享。
fpga_wuhan
发表于 2017-1-6 11:04:27
FPGA初级课程第十五讲 RAM
陈飞龙
发表于 2017-1-18 14:45:04
:lol:lol:lol:lol