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

    文章

    1269

    浏览量

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

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

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

    7路达林顿驱动的16KB Flash ROM的AD型MCU AiP8F3201

    7路达林顿驱动的16KB Flash ROM的AD型MCU AiP8F3201
    的头像 发表于 03-24 10:09 724次阅读
    7路达林顿驱动的16KB Flash <b class='flag-5'>ROM</b>的AD型MCU AiP8F3201

    DLPC3470如何获取boot rom文件?

    作为DLPC3470设计小白,请问如何获取boot rom文件?请大神帮忙解答,感谢!
    发表于 02-19 07:44

    LM3S5749 ROM用户指南

    电子发烧友网站提供《LM3S5749 ROM用户指南.pdf》资料免费下载
    发表于 12-23 17:39 0次下载
    LM3S5749 <b class='flag-5'>ROM</b>用户指南

    Stellaris LM3S1627 ROM用户指南

    电子发烧友网站提供《Stellaris LM3S1627 ROM用户指南.pdf》资料免费下载
    发表于 12-23 16:33 0次下载
    Stellaris LM3S1627 <b class='flag-5'>ROM</b>用户指南

    Stellaris LM3S2678 ROM用户指南

    电子发烧友网站提供《Stellaris LM3S2678 ROM用户指南.pdf》资料免费下载
    发表于 12-23 16:28 0次下载
    Stellaris LM3S2678 <b class='flag-5'>ROM</b>用户指南

    Stellaris LM3S3748 ROM用户指南

    电子发烧友网站提供《Stellaris LM3S3748 ROM用户指南.pdf》资料免费下载
    发表于 12-23 16:26 32次下载
    Stellaris LM3S3748 <b class='flag-5'>ROM</b>用户指南

    Stellaris LM3S1607 ROM用户指南

    电子发烧友网站提供《Stellaris LM3S1607 ROM用户指南.pdf》资料免费下载
    发表于 12-23 16:25 0次下载
    Stellaris LM3S1607 <b class='flag-5'>ROM</b>用户指南

    Stellaris LM3S3739 ROM用户指南

    电子发烧友网站提供《Stellaris LM3S3739 ROM用户指南.pdf》资料免费下载
    发表于 12-23 16:23 0次下载
    Stellaris LM3S3739 <b class='flag-5'>ROM</b>用户指南

    Stellaris LM3S2616 ROM用户指南

    电子发烧友网站提供《Stellaris LM3S2616 ROM用户指南.pdf》资料免费下载
    发表于 12-23 16:21 0次下载
    Stellaris LM3S2616 <b class='flag-5'>ROM</b>用户指南

    Stellaris LM3S1626 ROM用户指南

    电子发烧友网站提供《Stellaris LM3S1626 ROM用户指南.pdf》资料免费下载
    发表于 12-23 16:20 0次下载
    Stellaris LM3S1626 <b class='flag-5'>ROM</b>用户指南

    LM3S3749 ROM用户指南

    电子发烧友网站提供《LM3S3749 ROM用户指南.pdf》资料免费下载
    发表于 12-23 14:23 0次下载
    LM3S3749 <b class='flag-5'>ROM</b>用户指南

    仿真Vos电路

    (1) TINA中的仿真 文献[1]中,仿真Vos的电路架构是这样的。 之所以加了Vcm和Vload,并都设置成2.5V,是因为手册上的测试条件是这样子的。 供电电压和输入共模电压的变
    的头像 发表于 12-18 13:36 1087次阅读
    <b class='flag-5'>仿真</b>Vos电路