目的:
使用vivado 使用IP核 ,完成读写模块,使得写模块能够从ram核中写入数据,读模块能够从ram寄存器中读取数据
简介:
ram IP核有单端口,双端口之分,单端口是只能读或者写,双端口又可以分为伪双单口和真双端口的分别,伪双端口是有两个端口,但是一个端口只能读,一个端口只能写,真双单口是两个端口都可以进行读和写,为了避免冲突,大部分设计采用的是伪双端口ram,伪双端口的A端只能写不能读,B端只能读不能写。
伪双端口模式下要避免读写冲突,真双端口模式下要避免读写冲突和写写冲突
读写冲突是指在同一时刻读写同一个地址,此时在数据线上地址还没有进入到ram寄存器中,所以读取的数据是ram寄存器中的默认值
写写冲突是指两个端口写使能同时有效并且在同一个地址上写,此时需要关断一个写。
为了避免读写冲突,这次实验在写到一半的时候进行读操作,这样可以把读写地址错开,避免读写冲突。
欲实现一个读模块,写模块,写模块按地址递增依次在ram中写入递增数,读模块在写数据写道一般的时候开启读,这样可以避免读写冲突。读写模块中间采用flag连接,写模块写到一半的时候flag拉高,启动读模块
设置IP核,采用伪双端口
数据位宽8bit,熟读深度64
B端口的数据保持和A端口一致
打包IP核
完成写模块
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2024/03/14 14:32:31