用MATLAB生成.mif、.hex(QUARTUS II)文件简介(v1.1)
1、使用Matlab产生二进制文件.bin

Matlab中如何实现二进制文件的读写说明:matlab产生的是.bin二进制文件。
.bit是FPGA的比特流文件1、文件的打开与关闭1)打开文件在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。
fopen函数的调用格式为:fid=fopen(文件名,‘打开方式’)说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。
文件名用字符串形式,表示待打开的数据文件。
常见的打开方式如下:‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。
该文件必须已存在。
‘w’:打开后写入数据。
该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。
先读后写。
该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。
文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。
文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
2)关闭文件文件在进行完读、写等操作后,应及时关闭,以免数据丢失。
关闭文件用fclose函数,调用格式为:sta=fclose(fid)说明:该函数关闭fid所表示的文件。
sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。
如果要关闭所有已打开的文件用fclose(‘all’)。
2、二进制文件的读写操作1)写二进制文件fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。
其调用格式为:COUNT=fwrite(fid,A,'precision')说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。
QuartusII软件操作教程

时单击next按钮,进入到最后的汇总窗口,单击finish返回
主界面。
Quartus II 软件操作
2. 使用电路图绘制工具产生设计输入
常用的设计输入方法包括使用电路图绘制工具 和使用VHDL代码。这里先说明使用电路图绘制工 具的输入方法。该工具称为模块编辑器(Block Editor)。
示例:对于逻辑函数
Quartus II 软件操作
第三步 对设计的电路进行仿真 Quartus II包含仿真工具,它 们用于仿真已设计电路的行为功能。 在电路仿真之前,必须先创建输入 波形文件。 1) 使用波形编辑器。 选择File/New命令,在弹出的对 话框中选择Vector Waveform File 选项,单击OK按钮。将文件 命名为example_schematic.vwf并保 存。
Quartus II 软件操作
一. 简介 Altera公司的Quartus II软件提供了可编程片上 系统(SOPC)设计的一个综合开发环境,是进 行SOPC设计的基础,Quartus II集成环境包括 1.系统级设计 2.嵌入式软件开发 3.可编程逻辑器件(PLD)设计 4.综合 5.布局和布线 6.验证和仿真
Quartus II 软件操作
使用Waveform Editing(波形编辑)工具,该工具位于竖 直工具栏内,其形状类似于分别指向左侧和右侧的箭头,也可 以改变输入波形。选择该工具的时候,如果原始波形对应的 值等于0,那么拖过后波形对应的值变为1,如果原始波形对 应的值等于1,那么拖过后波形对应的值变为0。
画出相应的电路图。
f x1 x2 x2 x3
Quartus II 软件操作
第一步 画电路图 在Quartus II 界面中,选择File/new命令,在弹出的窗 口中,选择Design Files中的Block Diagram/Schematic File选项并单击ok按钮。此操作打开了模块编辑器窗口。在 该窗口中画出电路图,可以产生设计中需要的模块图文件。 1)导入逻辑门符号。 双击模块编辑器的空白区域,或者选择Edit/insert symbol,或者在工具栏中单击与门符号,在左面的libraries 方框内,列出了Quartus II 提供的若干库。单击 c:\quartus\libraries旁边的“+”号,然后单击primitives 旁边的“+”号,最后单击logic旁边的“+”号,选中and2, 放置到模块编辑器窗口。用同样的方法再放置一个两输入与 门,一个非门,一个两输入或门。
quartus和modelsim中使用mif和hex文件

quartus和modelsim中使用mif和hex文件
.mif和.hex文件都是Quartus支持的数据文件格式,常被用作内存初始化文件。
可是,M odelSim却不支持.mif文件,只支持.hex文件格式,这意味着如果你的设计采用了.mif文件
,你的设计将无法在ModelSim中进行仿真。
所以,我们需要用Quartus打开.mif文件,再另存为.hex,然后才能使用。
.hex文件时,需要对ModelSim做如下配置:
1、将quartus50\eda\mentor \modelsim下的convert_hex2ver.dll拷贝至ModelSim的win32 目录下。
2、打开ModelSim安装根目录下的modelsim.ini文件,找到; List of dynamically loaded objects for Verilog PLI applications,在它的下面添加如下一行:
Veriuser = D:/Modeltech_5.7f/win32/convert_hex2ver.dll
经过这样两步后,ModelSim才支持对.hex文件的仿真。
另外我再插一句,modelsim.ini有两个,一个是你的工程里,一个是默认的modelsim安
装目录下面,其实只改工程里的就够了,但是我建议大家要改都改,将来有新工程就不用再
改了。
改了之后一定记得重新启动modelsim,如果还不能用,把工程删了新建一个!
这样肯定能用。
quartus ii实验报告

quartus ii实验报告Quartus II实验报告引言:Quartus II是一款由Intel公司开发的集成电路设计软件,广泛应用于数字逻辑设计和FPGA开发领域。
本实验报告旨在介绍Quartus II的基本功能和使用方法,并通过实际案例展示其在数字逻辑设计中的应用。
一、Quartus II概述Quartus II是一款功能强大的集成电路设计软件,它提供了从设计到验证的全套工具。
Quartus II支持多种编程语言,如VHDL和Verilog,使得用户可以根据自己的需求选择适合的语言进行设计。
此外,Quartus II还提供了丰富的库和模块,方便用户进行快速原型开发和验证。
二、Quartus II的基本功能1. 设计入口Quartus II提供了多种设计入口,包括图形界面、命令行和脚本等方式。
用户可以根据自己的习惯和需求选择适合的方式进行设计。
图形界面友好易用,适合初学者;命令行和脚本则更适合有一定经验和需求的用户。
2. 设计编辑Quartus II提供了强大的设计编辑功能,用户可以在其中创建和编辑设计模块、信号线和电路连接等。
设计编辑界面清晰简洁,用户可以方便地进行设计布局和调整。
3. 仿真和验证Quartus II内置了仿真和验证工具,用户可以通过仿真来验证设计的正确性和性能。
仿真工具支持波形查看和信号分析等功能,帮助用户进行设计调试和优化。
4. 综合和优化Quartus II具备强大的综合和优化功能,可以将设计代码转化为硬件描述,进而生成逻辑电路。
综合工具会根据用户的约束条件和优化目标,自动进行逻辑优化和资源分配,提高设计的性能和效率。
5. 布局和布线Quartus II提供了先进的布局和布线工具,可以将逻辑电路映射到实际的FPGA芯片上。
布局工具可以根据用户的约束条件和性能要求,自动进行电路元件的位置分配;布线工具则负责将电路元件之间的连接线路进行规划和布线。
6. 下载和调试Quartus II支持将设计文件下载到目标FPGA芯片上,并提供了调试工具来验证和调整设计的正确性。
【MATLAB代做】基于QuartusII的信号发生器设计

仿真是用Quartus II 9.0软件仿真的,语言是verlog hdl,生成矩形波,脉冲波,正弦波,4级m序列(m序列输出一个就行)。
程序下载到开发板后,示波器要能观察到波形。
我的cpld的开发板是emp240的。
最好能够通过开发板上按键实现选择输出要的波形,不能的可以分开输出。
设计说明:
这个设计中,我们将四种波形使用选择开关进行选择输出。
外部连接两个按键,00输出矩形波,01输出脉冲波,10m序列,11输出正弦序列。
系统的仿真效果如下所示:
00:
01:
10:
11:
使用本程序的注意事项:
上面就是我们的系统,这里使用的QII软件为8.1.
然后整个系统有管脚
i_clk,//clock
i_rst,//rest,
i_key,//key
o_signal//4 kind of signal
一种四个接口,我这里给你做了最简化处理。
然后我看了下你的板子,貌似你的板子没有多路数字信号输出的功能,所以正弦信号可能没法直接看。
其余的脚我都给你弄好了,
如果有问题,再修改。
用c语言matlab生成mif文件的操作步骤

用C语言Matlab生成MIF文件的操作步骤导言在数字电路设计中,M I F(Me mo ry In it ia l iz at io nF il e)文件是一种用于初始化存储器的文件格式。
通过编写M IF文件,我们可以在硬件描述语言(如Ve ri lo g)中初始化存储器的内容。
本文将介绍如何使用C 语言结合Ma tl ab来生成MI F文件的操作步骤。
准备工作首先,我们需要确保计算机已经安装了以下软件工具:-C语言编译器(如g c c或Vi su al St udi o等)-M at la b软件步骤一:编写C语言代码首先,我们需要编写一段C语言代码,用于生成M IF文件。
以下是一个简单的C语言示例代码:#i nc lu de<s td io.h>i n tm ai n(){F I LE*f il e;f i le=f op en("ou tpu t.m if","w");f p ri nt f(fi le,"DEP T H=256;\n");f p ri nt f(fi le,"WID T H=8;\n");f p ri nt f(fi le,"ADD R ES S_RA DI X=HE X;\n");f p ri nt f(fi le,"DAT A_R AD IX=H EX;\n");f p ri nt f(fi l e,"CON T EN T\n");f p ri nt f(fi le,"BEG I N\n");//在这里根据需要生成MI F文件的内容//...f p ri nt f(fi le,"END;\n");f c lo se(f il e);r e tu rn0;}在上述代码中,我们使用了标准的C语言文件操作函数来创建并写入M I F文件。
QUARTUS II 使用入门

2、 QUARTUS II系统安装
2.1 QUARTUS II安装
对于安装Quartus II 7.2版本的系统必须满足以下最低要求: 硬件:运行速度为866MHz或更快Pentium III 以上计算机,
系统内存容量大于256M。
操作系统:Microsoft Windows 2000或Microsoft Windows XP。
编译的启动方法:
选择Processing菜单的Start Compilation项即可启动全程编译
编译过程中,status窗口会显示出当前的编译的进度。
下方的process栏中会显示出编译信息,如果有出错信 息就会在其中显示。双击出错的条文,即会弹出对应的
VHDL文件。
如果编译成功,就会出现一个编译成功的信息窗口 。
3.5 应用RTL电路观察器
Quartus II支持网表文件对应的RTL电路的生成。方法如下: 选择菜单Tool中的Netlist viewers项,在出现的次级菜单中选 择RTLviewer,即可观察到设计文件对应的RTL电路结构
3.6 引脚分配
所谓引脚分配就是将设计项目的输入输出端口分配到目 标芯片的对应管脚。引脚的分配可以由分配编辑器实现,也
(3)将设计项目的端口信号选入波形编辑器。 选择菜单Edit中的Insert Node or Bus项,弹出Insert Node or Bus对话框 .
单击Node Finder按钮出现Node Finder对话框
在Node Finder对话框的Filter框中选择“Pins: all”,然后单 击List按钮,此时在下方的Nodes Found窗口出现设计项目 中的所有端口的名称。
Quartus II的许可文件的设定步骤如下: 选择菜单Tools/LicenseSetup,弹出图7.2 所示 “LicenseSetup”对话框。 单用户许可方式(single-user licenses):在“License file”对话框,点击“…”按钮选择License.dat 文件即可。 最后单击OK,完成设定。文件所许可的AMPP and MegaCore functions会出现在“Licensed AMPP/MegaCore functions”窗口中。
quartus学习笔记

关于quartus的功能学习:总体设计过程是这样的:Step1:创建工程Step2:文本输入Step3:编译包括:1、Analysis&Synthesis:分析和综合2、Fitters:布局布线3、Assembler:编译生成输出文件(sof,pof)4、Timing analyzer:时序分析5、EDA netlist writer:网表写入这五步。
注意编译后会有非常详细的编译报告。
也分别包括是这五步的报告,从硬件角度进行了非常完整的描述,可以通过点击工具栏的compilation report选项来看,包括:(一)compilation report:总体报告1、Flow summary:流程总结:包括最基本的工程信息,包括两个方面,一是工程,包括工程名,软件版本,是否时序分析等。
二是器件,包括器件型号,(1)LE使用率:combination连线使用率,logic register寄存器使用率。
这肯能正是LUT和LATCH结构(2)Pin占用率:(3)Virtual pin 占用率(4)Memory bit占用率(内嵌SRAM单元占用率)(5)Embedded multiplier 内嵌乘法器占用率(6)PLL占用率。
2、一些设置,log(二)Analysis&Synthesis:分析综合报告:(synthesis即为map)1、summary:与上面相同2、settings:非常详尽的综合设置,包括内嵌单元的使用方式,时空权衡,等等。
3、resource使用情况4、messages:警告与错误(三)fitter:布局布线报告:1、summary:同上2、settings:非常详尽的布线设置3、pin out file:固定引脚的分配情况,对引脚说明非常详细4、resource section :更为详尽的resource 使用情况。
以及介绍。
(四)Assembler:输出文件报告:1、generated files:输出文件的名称、位置2、device options:sof的配置,介绍3、device options:pof的配置,介绍(五)Timer analyzer:时间分析报告:1、频率2、建立保持时间等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用MATLAB生成*.mif、*.hex(QUARTUS II)文件简介(v1.1)
macro_qian@
以前写过一个“用MATLAB生成*.mif、*.hex(QUARTUS II)文件简介”,由于时间和水平原因很粗糙,并且有一些错误。
现在修改一下,升级到v1.1。
以前的称为v1.0吧。
做FPGA设计时经常要调用芯片内存。
特别对于ROM,内存的初始化就显得比较重要。
当然你完全可以手工在QUARTUS II打开mif文件的表格里逐个输入,几十项或许你还可以接受,但上千项估计能累的人吐血!
一般内存的初始化数据都是有规律的,符合一定的函数,我们完全可以用MATLAB来完成(如果没规律只能逐项手工输入了)。
1.使用MATLAB直接生成*.mif文件
首先,我们应该知道*.mif文件的格式。
它是文本格式。
随便打开一个mif文件,你会发现它具有如下的格式:
-- Copyright (C) 1991-2008 Altera Corporation
-- Your use of Altera Corporation's design tools, logic functions
-- and other software and tools, and its AMPP partner logic
-- functions, and any output files from any of the foregoing
-- (including device programming or simulation files), and any
-- associated documentation or information are expressly subject
-- to the terms and conditions of the Altera Program License
-- Subscription Agreement, Altera MegaCore Function License
-- Agreement, or other applicable license agreement, including,
-- without limitation, that your use is for the sole purpose of
-- programming logic devices manufactured by Altera and sold by
-- Altera or its authorized distributors. Please refer to the
-- applicable agreement for further details.
-- Quartus II generated Memory Initialization File (.mif)
WIDTH=8;
DEPTH=256;
ADDRESS_RADIX=UNS;
DATA_RADIX=DEC;
CONTENT BEGIN
[0..3] : 127;
[4..6] : 126;
[7..8] : 125;
9 : 124;
10 : 123;
……
……
[253..255] : 127;
END;
下边笔者来说明用MATLAB产生所需*.mif文件方法。
由于笔者的语文水平仅脱盲,如果空洞讲解很表述清楚并且会很枯燥。
所以笔者仍使用一个例子来说明。
对[0,2*pi)(包括0,不包括2*pi)256点采样,每点用8位有符号数表示。
生成*.mif文件的MATLAB代码如下:
clear all;
close all;
clc;
index=linspace(0,2*pi,2^8+1); %由于linspace函数包括前后两个边界点,所以多加一点除去
%cos(2*pi)的值
cos_val=fix((2^7-1)*cos(index)+0.5);%求COS值、倍扩成8位有符号数、fix是去尾求整数,
%加0.5变成四舍五入求整数
fid=fopen('E:\…\cosine.mif','w');%将cosine.mif文件创建到您老的QUARTUS工程目录里。
当
%然你也可创建到指定的目录,然后拷贝到QUARTUS工程目录。
fprintf(fid,'WIDTH=8;\n');%指定每个数值的字宽(本工程用8位)
fprintf(fid,'DEPTH=256;\n');%指定数值的个数,即ROM的深度(本工程用256个)
fprintf(fid,'ADDRESS_RADIX=UNS;\n');%指定地址的数制(UNS:无符号数。
推荐UNS)fprintf(fid,'DATA_RADIX=DEC;\n'); %指定数据基数(DEC:十进制(有符号数),推荐DEC)fprintf(fid,'CONTENT BEGIN\n'); %固定格式
for j=1:256%数据段数据
i=j-1;
fprintf(fid,'%3d',i);
fprintf(fid,' : ');
fprintf(fid,'%3d',cos_val(j));
fprintf(fid,';\n');
end
fprintf(fid,'END;\n');%固定格式
fclose(fid);
运行此MATLAB程序,得到cosine.mif即可使用。
2.MATLAB变量空间拷贝法
此方法更简单。
QUARTUS II下菜单File\New\选择Memory Initialization File,Number of words=256, Word size=8,保存为cosine.mif。
按照图1、图2提示在画红圈的地方右击分别修改修改地址数基为十进制、修改内存数基为有符号十进制。
图1 修改地址数基为十进制
图2 修改内存数基为有符号十进制
MATLAB下Command Window中执行:
index=linspace(0,2*pi,2^8+1);
cos_val=fix((2^7-1)*cos(index)+0.5);
在工作空间中双击cos_val,在Array Editor的表格中打开cos_val的变量值,复制前256个(图1),然后粘贴到QUARTUS II中打开的cosine.mif文件的表格中(图4)。
得到如图5的结果。
保存cosine.mif文件,OK!搞定!
图3
图4
图5
3.对于*.hex文件,更简单。
大家生成mif文件后,用QUARTUS II打开,然后另存为hex
文件就可以了。
笔者:希望这个教程对大家有帮忙。
有什么问题可发邮件到macro_qian@与笔者讨论。
本文中用到的MATLAB程序将一同打包奉上。
所有代码均为本人编写,由于水平有限,有什么不合适的地方请大家指正,欢迎大家SHARE。
如果对你有帮助,可发邮件感谢我一下,让我也虚荣一下,以后更有心情写些其它的教程。
哈哈,取笑了。
思想有多远,人就能走多远!
昨日惊悉饭岛爱君辞世,心中悲痛不已,在此悼念。
老钱 写于2008年圣诞
Powered by macro_qian Digifee CO., LTD.
PS:Digifee CO., LTD.是本人虚拟公司,等我有条件时会让她成为现实,希望大家别和我抢注,Digifee中包含了我心爱女子的名字,是我美好的理想。