verilog之readmemb

1、基本作用

用于读取存储器的值的系统函数。这里首先要知道什么是存储器。在verilog中,有一些比较大的数据是需要存储的,一般需要使用存储器,语法结构类似二维数组。

reg [7:0] mem[256:1];
initial mem[1]=8'hff;

这里的mem就是一个存储器。前面的是位宽,后面的是地址。这个和存储器的结构是十分相似的。对于这类变量,一般用于仿真存储设备。readmemb可以读取存储器,显示为二进制。readmemh可以显示为16进制。通过这两个函数可以将存储器的值显示。

2、实际例子

module readmemb;
reg [7:0] memh[1:256];
reg memb[1:256]; initial memb[128]=0;
initial memh[254]=8'hff;
initial $readmemb("memb.data",memb,128,1);
initial $readmemh("memh.data",memh,128,1); endmodule

memb:

memh:

可以看到存储器的赋值结果。

3、总结

当需要使用存储器来仿真时,readmemb(h)是一个重要的手段来观测结果的变化。

verilog之readmemb的更多相关文章

  1. Verilog学习笔记基本语法篇(十一)········ 常用系统函数

    1)系统任务:$monitor   格式: $monitor(p1,p2,p3...pn); $monitor; $monitoron; $monitoroff; 任务$monitor提供了监控输出列 ...

  2. Verilog篇(二)系统函数

    显示任务:$display,$write, 前者总会输出一个换行符,后者不会.固定输出格式版:$displayb/$displayo/$displayh/$writeb/$writeo/$writeh ...

  3. Verilog读写文件

    在通过编写Verilog代码实现ram功能时,需要自己先计算寄存器的位数和深度再编写代码. 而如果需要在编写的ram中预置值的话,就需要使用Verilog语言编写程序读写文件,来将相应的数据赋给寄存器 ...

  4. 【设计经验】5、Verilog对数据进行四舍五入(round)与饱和(saturation)截位

    一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2  Matlab2016a 仿真工具:Vivado自带仿真器 二.引言 在利用 ...

  5. verilog 仿真时读取txt文件

    :]data; initial begin # clk =; clk = ~clk; end initial begin # rst=; # rst=; end :]data_sin[:]; //// ...

  6. Verilog对数据进行四舍五入(round)与饱和(saturation)截位

    转自https://www.cnblogs.com/liujinggang/p/10549095.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件 ...

  7. Verilog TestBench Coding Style

    Abtract 关于编写testbench的一些经验总结心得. Introduction 1.基本的Testbench结构 1)常用的编码结构 `timescale 1 ns / 1 ps       ...

  8. verilog task1

    问题描述: 设计中需要重复多次施加一种激励,每一次激励的施加过程,都可以划分为4个部分,如图所示. 每一次施加的激励只有第二部分的数据有变化(数据格式无变化).所以顶层的Testbench代码如下: ...

  9. Verilog HDL数组(存储器)操作

    本文从本人的163博客搬迁至此. 引用了http://blog.sina.com.cn/s/blog_9424755f0101rhrh.html Verilog HDL中常采用数组方式来对存储器进行建 ...

  10. verilog语法实例学习(6)

    函数和任务 函数 https://wenku.baidu.com/view/d31d1ba8dd3383c4bb4cd283.html verilog中函数的目的是允许代码写成模块的方式而不是定义独立 ...

随机推荐

  1. win32 - 匿名管道的使用

    目标: 创建一个父进程和子进程,在子进程的控制台窗口输入数据,数据通过管道发送给父进程,父进程的控制台窗口读取数据,最后将数据打印出来. Parent.cpp //CMD.exe #include & ...

  2. Django关于StreamingHttpResponse与FileResponse响应文件或视频的下载请求

    StreamingHttpResponse from django.http import StreamingHttpResponse StreamingHttpResponse(streaming_ ...

  3. 【Docker】使用 Docker 部署 .Net Core 项目 (四)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  4. 简单看下最近的Spring Secrurity、Spring漏洞(CVE-2024-22234、CVE-2024-22243)

    最近的这两个cve我看国内很多情报将其评为高危,所以想着去看看原理,看完发现都比较简单,利用要求的场景也相对有限(特别是第一个),所以就随便看下就行了 Spring Security 用户认证绕过(C ...

  5. 05、secs协议常见问题分析以及如何建立通信

    1.建立通信 在主机和设备之间发送SECS-II消息之前,必须首先"建立"通信.这是通过S1F13(建立通信请求)消息来完成的.这应该是在初始启动后或在长时间不通信之后发送的第一个 ...

  6. com.fasterxml.jackson.databind.exc.InvalidDefinitionException

    @JsonIgnoreProperties 此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响. 写法将此标签加在model 类的类名上 ,可以多个 ...

  7. 【转载】很遗憾,没有一篇文章能讲清楚ZooKeeper

    作为分布式系统解决方案的 ZooKeeper,被广泛应用于多个分布式场景.例如:数据发布/订阅,负载均衡,命名服务,集群管理等等. 因此,ZooKeeper 在分布式系统中扮演着重要的角色,今天通过一 ...

  8. Arrays.asList的坑

    Arrays.asList 方法的坑 此方法接受可变个数的参数 构建一个ArrayList 可此ArrayList 非彼ArrayList ,他返回的是 Arrays 的一个内部类,实现了Abstra ...

  9. typeorm-model-generator 数据库映射Model 命令 - nest

    typeorm-model-generator 数据库映射Model 命令 NestJs中的控制器.路由.Get.Post方法参数装饰器 https://blog.csdn.net/urwddd/ar ...

  10. 一个简易的ORM框架的实现(一)

    一个简易的ORM框架的实现 ORM ORM---操作数据库---对象关系映射 ORM(Object Relational Mapping)框架采用元数据来描述对象与关系映射的细节.只要提供了持久化类与 ...