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文章
1269浏览量
124052 -
ROM
+关注
关注
4文章
578浏览量
88546 -
Verilog
+关注
关注
30文章
1370浏览量
114138
原文标题:为了方便仿真这样写个ROM
文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
RISCV指令二进制编码利用matlab生成E203仿真可用文件
鉴于nuclei studio IDE生成的.verilog难懂,为了方便对单条或者几条指令进行测试,我们队伍编写了matlab代码来实现E203仿真可以识别到的文件。
matlab代码如下
发表于 10-22 07:06
Simcenter FLOEFD BCI-ROM和Package Creator模块
优势采用独立于边界条件的降阶模型(BCI-ROM)加速执行瞬态热仿真,同时采用PackageCreator轻松创建电子封装热模型。求解速度比完整的3D详细模型快40,000倍,且不折损精度有效保持
Simcenter Flotherm BCI-ROM技术:与边界条件无关的降阶模型可加速电子热设计
BCI-ROM可生成为矩阵类型、用于电路仿真的电热模型(VHDL-AMS格式)、用于系统仿真(FMU格式)的模型,甚至用于3DCFD的嵌入式BCI-ROM从根据热瞬态测试数
仿真Vos电路
(1) TINA中的仿真 文献[1]中,仿真Vos的电路架构是这样的。 之所以加了Vcm和Vload,并都设置成2.5V,是因为手册上的测试条件是这样子的。 供电电压和输入共模电压的变

为了方便仿真这样写个ROM
评论