mif文件生成方法
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。常见生成方法:
- Quartus自带的mif编辑器生成
- mif软件生成
- 高级编程语言生成
前两种方法都有一定的缺陷,主要介绍第三种方法,按照mif文件格式,使用高级编程语言(Matlab、C)编写生成。
注意: mif文件都是ASCⅡ码,负数应该是用补码处理,否则负数在mif文件中会变成0。
Matlab参考代码如下:
clc;clear;close all;
width = 10;
depth = 2^width;
t = linspace(0,6.28,depth);
sin_val = sin(t);
%cos_val = cos(t);
sin_val = fix(sin_val*(2^width-1)/2 + 0.5); %四舍五入
%cos_val = fix(cos_val*(2^width-1)/2 + 0.5);
sin_val(find(sin_val<0))=sin_val(find(sin_val<0)) + 2^width; %求补码
addr = [0:depth - 1];
file = fopen('sin.mif','wt');
fprintf(file,'WIDTH=%d;\n',width); %该格式对应于mif格式,最后不要变
fprintf(file,'DEPTH=%d;\n',depth);
fprintf(file,'\n');
fprintf(file,'ADDRESS_RADIX=UNS;\n');
fprintf(file,'DATA_RADIX=HEX;\n');
fprintf(file,'\n');
fprintf(file,'CONTENT BEGIN\n');
for i=1:depth
fprintf(file,' %d : %X;\n',addr(i), sin_val(i));
end
fprintf(file,'\n');
fprintf(file,'END;\n');
fclose(file);
mif文件生成方法的更多相关文章
- MIF文件生成说明
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Q ...
- fpga rom 初始化mif文件生成
mif文件的格式 width= depth= address_radix= data_radix= content begin 00: ; 01: ; 02: ; .... end; 关 ...
- Android 中.aar文件生成方法与用法
https://i.cnblogs.com/EditPosts.aspx?opt=1 无论是用Eclipse还是用Android Studio做android开发,都会接触到jar包,全称应该是:Ja ...
- 用matlab生成mif文件
在FPGA中,rom模块的初始化文件分为两种,一种是hex文件,另外一种是mif文件,这两种文件都可以通过Quartus进行手工创建,进行手工输入数据,也可以借助于专用的文件编辑器完成编辑. 在此介绍 ...
- 如何生成各种mif文件,绝对经典!!!
mif文件生成模板,只需要5步,很简单!!!!! 先说明如何操作,1-2-3-4-5步,后面附上模板!!! 下面以汉字去模演示过程: 1.取模软件设置:注意这里是设置的输出数据的格式!!!!!!!!! ...
- 使用MATLAB一键制作mif文件
本文档主要讲解实现一个16384(2^14)点的14位正弦波数据mif格式文件的生成,使用此文件,我们便可以在FPGA上基于直接数字合成(DDS)原理生成标准的正弦波,即实现信号发生器的功能.关于DD ...
- mif文件C语言生成
1:正弦波 用函数 sin (x * π/180°) /************************************************** 正弦波 mif 生成 ********** ...
- 生成mif文件的几种方法总结
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Q ...
- Visual Studio 不生成.vshost.exe和.pdb文件的方法【转】
Visual Studio 不生成.vshost.exe和.pdb文件的方法[转] 使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost ...
随机推荐
- 【leetcode 968. 1028. 从先序遍历还原二叉树】解题报告[待完善...]
思路:用一个栈来管理树的层次关系,索引代表节点的深度 方法一: TreeNode* recoverFromPreorder(string S) { /* 由题意知,最上层节点深度为0(数字前面0条横线 ...
- Cogs 9. 中心台站建设
9. 中心台站建设 ★★☆ 输入文件:zpj.in 输出文件:zpj.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] n个城市之间有通讯网络,从这n个城 ...
- Python中使用Type hinting 和 annotations
Type hints最大的好处就是易于代码维护.当新成员加入,想要贡献代码时,能减少很多时间. 也方便我们在调用汉书时提供了错误的类型传递导致运行时错误的检测. 第一个类型注解示例 我们使用一个简单例 ...
- 从select机制谈到epoll机制
目录 为什么要用select机制 等待队列 唤醒操作 什么是select机制 关于fd_set select使用 poll函数 为什么select效率较低 什么是epoll epoll机制实现思路 e ...
- BZOJ 4892 [Tjoi2017]dna 哈希+二分
自己简直是傻死了...对于位置想错了... 二分出来的是LCP长度$+1$,即每一次二分出来的最后一个点都是失配的,而就算失配也会跳过这个点:所以当$k<=3$且模式串$s2$的指针$>l ...
- Helvetic Coding Contest 2016 online mirror F1
Description Heidi has finally found the mythical Tree of Life – a legendary combinatorial structure ...
- 【ACM】组合数 - 全排列
组合数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 找出从自然数1.2.... .n(0<n<10)中任取r(0<r<=n)个数的所有组合 ...
- 11g 配置 dgmgrl 以及报错 DataGuard ORA-00313,
1参考 https://gavinsoorma.com/2010/03/11g-data-guard-broker-dgmgrl-configuration-quick-steps/ This not ...
- poj(3080)
题目链接:http://poj.org/problem?id=3080 学习博客:https://www.cnblogs.com/acjiumeng/p/6818213.html Blue Jeans ...
- Java匹马行天下之JavaWeb核心技术——JSP
JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要在特定的web服务器上运行,分为web服务器和web客 ...