cnn_AVS_proj中的文件数据读写
来源:互联网 发布:西班牙4g手机网络制式 编辑:程序博客网 时间:2024/06/08 03:09
简述
在verilog中读写数据是,数据存储的顺序非常重要,即,对于单个数据,high significant的byte是放在存储器的高地址还是低地址上,就是通常所说的big endian和little endian的问题。
不论是在硬件设计还是硬件验证中,只要设计读写文件的操作,都应该考虑这个问题。
系统函数数据读写顺序
$fread函数
这里只描述$fread函数读取二进制文件的情形,在读取二进制文件的时候,数据存储的顺序非常重要,在读取二进制的数据时,fread函数一次性读取一次性读取32-bit的数据,fread函数要把读取的数据放到程序的某个寄存器或者寄存器组中,如果寄存器的数据长度大于32-bit,那么fread函数会把首先读取到的数据放到寄存器的高位上,如下如所示:
在把寄存器的值移入到别的寄存器组中就要注意,寄存器的high significant的值要对应到寄存器组中的地位地址中。对于如果在某一个时钟读入的数据没有把寄存器填满,要记得寄存器中high significant位置的数据才是有效数据。$fwrite
fwrite写入二进制的数据的顺序正好和fread过程相反,fwrite是程序中寄存器中的值写入到二进制文件当中,寄存器的high significant的值会首先被写入到二进制文件的低地址中。$fseek
fseek是对文件进行重新定位,对于fseek有两点要注意:fseek一定要带返回值,这一点我也是摸索了很长时间才发现,在vcs编译器下,如果fseek不带返回值,会一直编译不过去。
fseek定位以byte为单位,重定位中的偏移值都是表示偏移了多少多少byte。
后续待补充。
- cnn_AVS_proj中的文件数据读写
- 读写存储文件中的数据
- 读写存储文件中的数据 二
- Android文件读写操作--读取Assets中的文件数据
- 流运算符重载,方便读写文件中的数值数据
- matlab读写txt文件中的数据并画图
- iOS iPhone 开发中的文件读写及数据存储
- iOS iPhone 开发中的文件读写及数据存储
- 读写SharedPreferences中的数据
- 读写SharedPreferences中的数据
- 读写配置文件中的数据
- 读写SharedPreferences中的数据
- 数据存储&&文件读写
- C#中的读写文件
- c中的文件读写
- Java中的文件读写
- python中的文件读写
- PERL中的文件读写
- CentOS使用yum命令安装vsftpcentos
- HTML5_03
- jQuery中动画效果
- Mellanox RoCE卡调试笔记
- c:forEach中的 varStatus
- cnn_AVS_proj中的文件数据读写
- 今天学习c++时编译出现了error C4996这样的错误
- ACM——————母牛故事
- 电脑经验 sublime 编写HTML,运行时中文部分出现乱码
- unity-unet-设置player的开始位置
- 内存不足的解决方法
- DFS深度优先搜索(3)--hdu2181(哈密顿绕行世界问题)(基础题)
- 网页恶意代码的十一大危害及其解决方案
- ARMv8 Load / store 指令学习重要笔记