ROM的使用---COE文件的格式问题

以前一直没有把这个文件格式当做一个问题,最近有用到ROM才发现, 之前的格式是运气好,刚好事那么一回事。

今天在网上找到,这么一个方法,如图1.
图1
首先注意变量Mem_width, 对应的注释是存储宽度。其次,到了第一个fprintf,“fid,‘memory_initialization_radix=%d;\n’,Mem_width;”对应的注释又变成ROM写入数值的进制。
在调用ROM IP核中, 也有数据位宽(图2)和数据进制(图3)两个参数。
图2
图3
但是,这两个参数和COE文件里面的存储位宽和进制不是对应的关系。
首先,COE文件里面就没有存储位宽的概念。其次COE文件中的参数进制,是我们COE文件中的数据进制,并不是“我们要以什么进制的形式存入ROM”。
再说到ROM,ROM中的data_width参数是输出端口的位宽,是要根据我们COE文件中的数据来决定,例如:设置为8位,那么能表示的无符号数就是0-255,如果COE文件中有超过255的数据,那就会造成数据截断。ROM中的radix参数,是默认值的进制,和COE文件中的数据进制并无关系。

最后,我COE生成的数据是10进制的,范围在-128-127,MATLAB的代码如下,ROM的数据位宽应设为9位,高位做符号位
图4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值