0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为了方便仿真这样写个ROM

ruikundianzi 来源:IP与SoC设计 作者:IP与SoC设计 2022-12-21 14:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FPGA中有专门的ROM IP Core,如果按照规范用Verilog编写的ROM文件可以被工具综合成RAM资源,而ASIC在需要后端去做专门Memory,前端仿真可以自己编写RAM/ROM/FIFO/RegFile IP。为了方便仿真这样写个ROM,方便初始化。
module single_port_rom(/*autoarg*/
   // Outputs
   q,
   // Inputs
   addr, 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
    $readmemh("/home/IC/Digital_Front_End_Verilog/ip_lib/rtl/DDS/triangular.txt", rom);
  //$readmemb("sin.txt", 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));
整了三个波形,仿真能跑起来。 36bf3126-80ed-11ed-8abf-dac502259ad0.png36df6e46-80ed-11ed-8abf-dac502259ad0.png37024c18-80ed-11ed-8abf-dac502259ad0.png          将设计电路参数化可重复使用,构建自己的代码库,搭建起你的数字积木。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • asic
    +关注

    关注

    34

    文章

    1277

    浏览量

    124929
  • ROM
    ROM
    +关注

    关注

    4

    文章

    579

    浏览量

    89364
  • Verilog
    +关注

    关注

    30

    文章

    1374

    浏览量

    114709

原文标题:为了方便仿真这样写个ROM

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RW612 ROM 引导加载程序卡在 ISP 模式测试

    Issue Description I\'m experiencing a consistent issue with the NXP RW612 where the ROM bootloader
    发表于 04-15 10:13

    深度解析Z90255 ROM与Z90251 OTP电视控制器:功能、特性与应用

    深度解析Z90255 ROM与Z90251 OTP电视控制器:功能、特性与应用 在电视控制领域,Z90255 ROM和Z90251 OTP这两款32 KB电视控制器凭借其丰富的功能和出色的性能,成为
    的头像 发表于 04-04 14:05 581次阅读

    Z86C02/E02/L02微控制器:高性价比的512字节ROM CMOS解决方案

    Z86C02/E02/L02微控制器:高性价比的512字节ROM CMOS解决方案 在电子设计领域,寻找一款既经济实惠又功能强大的微控制器是许多工程师的追求。Zilog的Z86C02/E02/L02
    的头像 发表于 04-04 14:05 840次阅读

    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这个软件不行,其实不是这样的,不管
    的头像 发表于 07-29 11:28 3011次阅读
    胡言乱语:Multisim<b class='flag-5'>仿真</b>准不准?偏置电流错的离谱?

    【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倍,且不折损精度有效保持
    的头像 发表于 07-08 10:32 832次阅读
    Simcenter FLOEFD BCI-<b class='flag-5'>ROM</b>和Package Creator模块

    LMK03318如何使用TICS将程序烧录进ROM

    请问 LMK03318芯片如何用TICS PRO烧录进芯片内部ROM?并且上电时钟就工作,有输出(就是上电程序自启动),急!!!
    发表于 07-07 14:35

    详解ADC电路的静态仿真和动态仿真

    ADC电路主要存在静态仿真和动态仿真两类仿真,针对两种不同的仿真,我们存在不同的输入信号和不同的数据采样,因此静态仿真和动态
    的头像 发表于 06-05 10:19 2279次阅读
    详解ADC电路的静态<b class='flag-5'>仿真</b>和动态<b class='flag-5'>仿真</b>

    Simcenter Flotherm BCI-ROM技术:与边界条件无关的降阶模型可加速电子热设计

    BCI-ROM可生成为矩阵类型、用于电路仿真的电热模型(VHDL-AMS格式)、用于系统仿真(FMU格式)的模型,甚至用于3DCFD的嵌入式BCI-ROM从根据热瞬态测试数
    的头像 发表于 05-28 10:37 1262次阅读
    Simcenter Flotherm BCI-<b class='flag-5'>ROM</b>技术:与边界条件无关的降阶模型可加速电子热设计

    求助,关于FX3 ROM引导加载程序系统重启问题求解

    加载程序。 该问题是否与已知勘误表问题(FX3 自供电时,USB 启动模式下 USB 枚举失败)有关,因为 USB 端口/电路板在系统重置期间不会完全断电? 如果是这样,那么就没有办法解决这个问题,让 ROM 引导加载程序在系统重置后正确显示,而无需执行 FX3 重置,
    发表于 05-13 06:06

    《聊一聊ZXDoc》之CAN总线仿真、面板仿真

    ZXDoc支持CAN总线仿真、面板仿真功能,通过虚拟化通信环境,提前验证、优化和保障系统可靠性,降低开发成本与风险,面板仿真还使其画面实物化,便于操作和理解,仿真功能已成为ECU研发和
    的头像 发表于 05-09 11:30 1720次阅读
    《聊一聊ZXDoc》之CAN总线<b class='flag-5'>仿真</b>、面板<b class='flag-5'>仿真</b>