世界快消息!Verilog基础之十三、ROM实现

2023-07-02 22:06:31

一、前言

对于工程中的存储逻辑分为两种,一种是可读可写的RAM,另一种是只能读取的ROM,两者的数据读取都是通过地址来查找。对于ROM,因为是只能读取不能写入,里面的数据在初始化时进行存入。

二、非IP核设计

通常ROM的实现是调用IP核,在IP核创建时使用coe文件进行初始化,coe文件中存储了初始化的数据,工程设计中IP核和data文件(如txt文件)读取两种方式来设计ROM。

工程设计文件读取初始化


【资料图】

设计用初始化ROM使用txt文件的数据,使用了正弦波,方波,三角波三种波形的txt文件数据,初始化都再对齐进行读取,存储器的数据宽度为8,深度为512。

测试代码

仿真结果

结果中红色,绿色,粉红分别为正弦波,方波,三角波,因clk周期为2ns,深度为512,故一个大波形周期为1024ns,根据1、2号框的坐标差3169-2145=1024ns符合预期。

三、IP核创建ROM

本章节介绍使用ROM的IP核穿穿件ROM,并通过coe文件进行初始化ROM,再进行读取,使用的器件为xc7k480tffv1156-1

 IP核生成ROM

Flow Navigator窗口中IP Catalog进行创建

双击IP Catalog进入创建界面,在Search栏输入ROM,选择分布式方式创建

memory config配置界面中Depth为存储器深度,Data Width为存储数据的宽度,类型为ROM

Port config配置界面默认即可,重点为RST&Initialization界面

coe文件格式,第一行指定数据的进制,第二行为数据,以空格区分不同的地址,如7d和7b表示两个不同地址的数据。

设计代码

获取地址的代码

文件结构

测试代码

仿真结果

输出结果为正弦波,周期为1024ns

四、modelsim设置

模拟信号显示

modelsim默认显示数字信号,需要显示模拟信号时,如上述章节结果中的正弦波,三角波显示时,进入“Format->Format->analog(automatic)”,即显示为模拟信号

信号范围显示设置

在中设置模拟信号显示后,容易出现该信号与其他信号重叠  ,下图中不仅重叠,也显示不全

原因为信号显示的高度height默认为17,将其调大即可,设置路径Format->Height

此处为140

设置后显示信号完整直观

五、数据文件

初始化用到正弦波,三角波的数据文件coe和txt获取路径,下载后将文件直接放入和.v文件同路径目录下即可无需修改源文件中代码路径直接使用

链接:/s/1MEsTEZJdDjaxNTUB9RF8ww  

提取码:60eu

关键词:

银行更多»

收藏