广告

原创 FPGA学习之Quartus II及Modelsim软件的使用

2017-5-11 19:18 730 0 分类: FPGA/CPLD

自从2015年Intel公司以167亿美元收购Altera公司之后,FPGA一时名气大噪,世界几大生产FPGA公司的股票几乎同时上涨10%左右。那么FPGA与传统的MCU相比有什么区别和优点呢?从今天开始,我们进入FPGA的学习之中,一起探讨FPGA的魅力所在。

俗话说“工欲善其事必先利其器”,今天我们先来学习FPGA编程软件及仿真软件的使用,即Quartus ii软件和Modesim软件。这两个软件均可在Altera公司网站下载:http://dl.altera.com/13.0/?product=#tabs-2

640.webp

下载安装之后,打开软件,新建工程:

640.webp (1)

第一页是对新建工程的步骤介绍,所以什么也不用选,直接“Next”:

640.webp (2)

这里需要注意,第一栏为工程路径,不能出现中文路径;其次第二栏为工程名字,也不能出现中文。选择目录及工程名之后“Next”:

640.webp (3)

这里是选择你的设计文件,如果是第一次设计,那么这里什么也不用选,直接“Next”:

640.webp (4)

这是特别关键的一步,需要选择你的编程器件,如果你有开发板或者试验箱,那么必须选择与之对应的芯片,否则程序下载不进去,如果只是简单的FPGA编程练习,那么随便选一款芯片即可。这里我使用的 Cyclone III EP3C16Q240C8芯片。

640.webp (5)

然后“Next”:

640.webp (6)

这里我们需要选择仿真软件和仿真语言,这个视个人所装的软件和所使用的编程语言而定。在这里我选择Modelsim-Altera和VerilogHDL。然后“Next->Finish”:

640.webp (7)

这就是新建成的工程,从这里我们可以看出,这个工程什么也没有,所以需要增加文本文件,点击左上角白色文件图标进行文件的新建:

640.webp (8)

在这里,我们可以新建好多文件,有原理图文件“Block Diagram/Schematic File”、VHDL文件、VerilogHDL文件及Tcl脚本文件等等,这里我们选择VerilogHDL文件。这里好多人肯定会问,VHDL语言和VerilogHDL语言,我该选择哪一个?其实要我说,视个人情况而定,你会哪个就选择那个语言。如果说你两个语言都不会。。。那么我建议你学Verilog语言,只要你有C语言基础,那么这个语言很容易上手。哈哈哈哈。。。扯远了,言归正传。

640.webp (9)

640.webp (10)

这就是文本编辑窗口,这里是我写的一个简单的计数器程序。还有一些常用快捷按钮的使用,这里只举出其中三个常用的按钮,剩下的大家自己去探索。

自己的代码编写完成之后,开始“编译”,编译无错误之后,可在左侧的任务栏观看硬件原理图等。下图是刚才计数器代码综合编译之后的原理图。

640.webp (11)

代码综合编译无误之后,开始仿真验真。仿真是至关重要的一步,只有仿真通过之后,才可将程序下载到硬件电路板中。FPGA的仿真需要编写测试文本TestBench,在Quartus II软件中可自动生成TestBench文件,不过需要配置一下。首先需要配置Modelsim-Altera软件所在的文件位置,点击“Tools->options->EDA Tool Optios”:

640.webp (12)

然后点击“Assignment->Settings”,在这里需要选择仿真软件的名字,测试代码的语言,以及仿真的时间刻度:

640.webp (13)

这就配置完成了,然后开始测试文本的编写。点击“Processing->Start”:

640.webp (14)

然后就会生成仿真需要的测试文本。在工程文件的“simulation/modelsim”下课找到.vt格式的文件,打开如下图所示:

640.webp (15)

我们可在这里加入自己所需的测试代码,然后编译。现在需要最后一步的设置,便可看到仿真波形。点击“Assignments->Settings”:

640.webp (16)

640.webp (17)

640.webp (18)

上述按照步骤设置完成之后,一路“ok”即可。回到编辑窗口之后进行再次的全局编译。没有任何错误之后,点击“Tools->Run Simulation Tools”:

640.webp (19)

然后会启动Modelsim,这个时候就会看到仿真的波形,也就是之前编写的代码所能实现的功能:

640.webp (20)

Modelsim软件仿真没有错误之后,开始代码的下载。回到Quartusii软件中,首先进行引脚分配,这个是对硬件电路指定的引脚进行分配:

640.webp (21)

引脚分配结束之后,再次进行全局综合编译编译,没有错误之后,进行代码的下载:

640.webp (22)

至此,FPGA的编程软件Quartus ii和仿真软件Modelsim说明完毕,你学会使用了吗~~~~


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
小马哥电子 2017-08-17 17:17
数字收音机制作(1)
之前一直想做一款数字收音机来着,但是由于各种原因,刚画完原理图就放弃了。这次抽出时间,重新设计方案,制作一款小巧mini型的数字收音机。    本次重新设计方案之后,该收音机目前可具备的功能有:   ...
小马哥电子 2017-06-06 12:11
项目实战之MOS管啸叫
最近做一个点火器项目时要使用单片机的IO口控制一个36V的P沟道MOS管的开关,但是在电路的设计验真阶段,出现了MOS管的啸叫。MOS管竟然啸叫,我的天,这还是第一次碰到。下面我来还原一下场景。 首先...
小马哥电子 2017-05-23 22:21
FPGA学习之基于TLC549的直流电压采集及显示
最近由于毕业论文的事,小编是忙的不可开交,今天抽出点时间写篇文章,冒个泡,以防大家把我给遗忘了,哈哈哈哈~ 言归正传,今天我们的任务是通过FPGA控制TLC549模数转换芯片(ADC)采集直流电压值,...
小马哥电子 2017-05-18 18:55
FPGA学习之高速ADC采集
ADC(Analog-to-Digital Converter,模拟-数字转换器)在硬件电路中是经常见到的器件,音频信号的采集、温度的采集等等,凡是涉及到模拟信号转数字信号的电路,都会用到ADC。 A...
小马哥电子 2017-05-15 11:19
FPGA学习之基于动态数码管的时钟显示
动态数码管的原理之前已经说过,但是之前说的只是它的工作原理,今天我们来说说动态数码管的应用。今天通过FPGA编程,驱动8个动态数码管显示“时-分-秒”。 下图是4位共阳动态数码管的工作时序。某一时刻控...
小马哥电子 2017-05-12 22:44
FPGA学习之基于74HC164的静态数码管显示
今天我们通过两个静态数码管实现0-99的计数,且每500ms计一个数。 我们首先来看看基于74HC164的静态数码管显示的电路原理图~ 这就是两个静态数码管的原理图。大家从图中可以看出,两个数码管的...
我要评论
0
0
广告