FPGA中有专门的ROM IP Core,如果按照规范用Verilog编写的ROM文件可以被工具综合成RAM资源,而ASIC在需要后端去做专门Memory,前端仿真可以自己编写RAM/ROM/FIFO/RegFile IP。为了方便仿真这样写个ROM,方便初始化。


将设计电路参数化可重复使用,构建自己的代码库,搭建起你的数字积木。
module single_port_rom(/*autoarg*/
Outputs
q,
Inputs
clk
);
parameter DATA_WIDTH = 8;
parameter ADDR_WIDTH = 8;
input [ADDR_WIDTH-1:0] addr;
input clk;
output reg [DATA_WIDTH-1:0] q;
reg [DATA_WIDTH-1:0] rom[2**ADDR_WIDTH-1:0];
initial begins
rom);
rom);
end
always @ (posedge clk)begin
q <= rom[addr];
end
endmodule
系统函数$readmemh和$readmemb分别用来读取十六进制文件和二进制文件。貌似没有读十进制的。txt中的数据每行一个不需要逗号和最后一个数据后面的分号,数据格式对应。更多使用可以查询IEEE的Verilog语法手册。例化方式和rom IP一样可参数化配置任意大小
single_port_rom
#(
.DATA_WIDTH(DATA_WIDTH),
.ADDR_WIDTH(ADDR_WIDTH)
)
u_sin(/*autoinst*/
// Outputs
.q (dout[DATA_WIDTH-1:0]),
// Inputs
.addr (addra[ADDR_WIDTH-1:0]),
.clk (clk));
整了三个波形,仿真能跑起来。


将设计电路参数化可重复使用,构建自己的代码库,搭建起你的数字积木。
审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
asic
+关注
关注
34文章
1285浏览量
125202 -
ROM
+关注
关注
4文章
581浏览量
89596 -
Verilog
+关注
关注
31文章
1375浏览量
114985
原文标题:为了方便仿真这样写个ROM
文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
从实验室到量产:3D高斯泼溅仿真还缺什么?
一、引言在一线从事高阶ADAS仿真测试的工程师,大概率都经历过这样的困境:在CARLA等传统仿真器中表现良好的感知算法,一旦部署到实车上,就会出现漏检和误触发。根本原因在于,传统图形学仿真
干涉测量的非序列仿真
Mirau干涉测量法是一种众所周知的技术,它可以以高达所用波长的百分之一的精度测量表面。为了充分研究和设计这样的系统,非顺序仿真方法很有帮助,因为它会自动将系统内部反射产生的干涉效应考虑在内。
因此
发表于 05-27 08:21
几个常见机器人仿真软件的比较(详细版)
写在前面:本文是一篇关于CoppeliaSim与其他主流仿真工具(如MuJoCo、Gazebo、Webots等)的详细对比分析,内容全面、观点清晰。康谋作为CoppeliaSim的合作伙伴,看到这样
【SOA仿真7】多层膜仿真练习
本文摘选自ETOP 2009 会议论文 原作者:Daniela M. Topasna、Gregory A. Topasna 摘要 为了更好的理解多层膜仿真,本文选了几个多层膜仿真练习案例,理论公式
深度解析Z90255 ROM与Z90251 OTP电视控制器:功能、特性与应用
深度解析Z90255 ROM与Z90251 OTP电视控制器:功能、特性与应用 在电视控制领域,Z90255 ROM和Z90251 OTP这两款32 KB电视控制器凭借其丰富的功能和出色的性能,成为
Z86C02/E02/L02微控制器:高性价比的512字节ROM CMOS解决方案
Z86C02/E02/L02微控制器:高性价比的512字节ROM CMOS解决方案 在电子设计领域,寻找一款既经济实惠又功能强大的微控制器是许多工程师的追求。Zilog的Z86C02/E02/L02
Hummingbirdv2 E203 仿真排坑之路
在仿真时读入rom,判断功能是否正确。
3.1编译工具
编译需要用riscv的GNU工具,可以在[官网下载](https://nucleisys.com/download.php
发表于 10-31 09:22
Nucleistudio+Vivado协同仿真教程
内部ROM启动,故需要修改 .cfg 配置文件,位置如下?
双击打开后,将划线的flash启动部分注释掉
然后修改Build选项,使反汇编生成机器指令文件:右键工程,点击properties
在
发表于 10-23 06:22
RISCV指令二进制编码利用matlab生成E203仿真可用文件
鉴于nuclei studio IDE生成的.verilog难懂,为了方便对单条或者几条指令进行测试,我们队伍编写了matlab代码来实现E203仿真可以识别到的文件。
matlab代码如下
发表于 10-22 07:06
请问谁家串口屏屏幕支持在线仿真功能,这样我们做界面更加方便
发表于 10-13 09:06
胡言乱语:Multisim仿真准不准?偏置电流错的离谱?
这是很多同学都会问到的一个问题,Multisim仿真究竟准不准?很多同学在仿真时发现Multisim仿真结果和手册的差距太大,然后说是Multisim这个软件不行,其实不是这样的,不管
【RK3568+PG2L50H开发板实验例程】FPGA部分 | ROM、RAM、FIFO 的使用
接口列表
该部分介绍每个顶层模块的接口。
ram_test_top.v
rom_test_top.v
fifo_test_top.v
3.代码仿真说明
本次的顶层模块实际就是例化 IP
发表于 07-10 10:37
Simcenter FLOEFD BCI-ROM和Package Creator模块
优势采用独立于边界条件的降阶模型(BCI-ROM)加速执行瞬态热仿真,同时采用PackageCreator轻松创建电子封装热模型。求解速度比完整的3D详细模型快40,000倍,且不折损精度有效保持
LMK03318如何使用TICS将程序烧录进ROM?
请问 LMK03318芯片如何用TICS PRO烧录进芯片内部ROM?并且上电时钟就工作,有输出(就是上电程序自启动),急!!!
发表于 07-07 14:35
为了方便仿真这样写个ROM
评论