一 嵌入式存储器结构由一列 列 BRAM(块 RAM)存储器模块组成,通过对这些 BRAM 存储器模块进行配置,可以实现各种存储器的 功能,例如:RAM、移位寄存器、ROM 以及 FIFO 缓冲器。
RAM和ROM区别是: RAM 是一种随机存取存储器,不仅仅可以存储数据,同时支持对存储的数据进行 修改;而 ROM 是一种只读存储器,也就是说,在正常工作时只能读出数据,而不能写入数据。
三种端口:BRAM 全部是真双端口 RAM(True Dual-Port ram,TDP),这两个端口都可 以独立地对 BRAM 进行读/写。但也可以被配置成伪双端口 RAM(Simple Dual-Port ram,SDP)(有两个 端口,但是其中一个只能读,另一个只能写)或单端口 RAM(只有一个端口,读/写只能通过这一个端口来 进行)。

DINA:RAM 端口 A 写数据信号。 ADDRA:RAM 端口 A 读写地址信号,对于单端口 RAM 来说,读地址和写地址共用同该地址线。 WEA:RAM 端口 A 写使能信号,高电平表示向 RAM 中写入数据,低电平表示从 RAM 中读出数据。 ENA:端口 A 的使能信号,高电平表示使能端口 A,低电平表示端口 A 被禁止,禁止后端口 A 上的读 写操作都会变成无效。另外 ENA 信号是可选的,当取消该使能信号后,RAM 会一直处于有效状态。 RSTA:RAM 端口 A 复位信号,可配置成高电平或者低电平复位,该复位信号是一个可选信号。 REGCEA:RAM 端口 A 输出寄存器使能信号,当 REGCEA 为高电平时,DOUTA 保持最后一次输出 的数据,REGCEA 同样是一个可选信号。 CLKA:RAM 端口 A 的时钟信号。 DOUTA:RAM 端口 A 读出的数据。
二 实验任务:本节实验任务是使用 Xilinx BMG IP 核,配置成一个单端口的 RAM,然后对 RAM 进行读写操作,通 过在 Vivado 自带的仿真器中观察波形是否正确,最后将设计下载到启明星 Zynq 开发板中,并使用 ILA 对 其进行在线调试观察。
主要设计思路:使能信号拉高后,cnt计数器从0计数到63,单通道读写共用一个地址。0~31写使能拉高,32~63负责读值。写的值就是0~31.
创建ip核 BLOCK Memory Generate,

三 程序设计
ram_rw.v :读写控制计数器计数从0~63,0~31写,32~63读。
读写地址信号计数0~31.
ip_ram.v :例化ram_rw.v .和ram模板
重点:对addr计数 cnt,wr计数。
四 联合仿真,ILA在线调试
在线调试:run sytheisv -> set up_debug 把nets下要观察的信号添加到nets to debug下,finish->gennera Bit. 连接开发板 下载程序。 熟悉ILA进去后的按键使用。与其他仿真基本类似。
1万+



被折叠的 条评论
为什么被折叠?



