使用Quartus建立第一个FPGA工程

欢迎使用sina微博@颠覆的饕餮进行讨论,一起探讨学习~ ~嘿嘿

www.altera.com.cn 免费申请到Quartus网络版并且安装,这个过程非常简单。

安装好Quartus后,我们开始建立第一个FPGA工程,我们开始建立第一个FPGA工程。

打开后界面是

clip_image001

单击左上角 file->new project wizard 出现下面的界面

clip_image002

当然是next

之后在指定建立工程的路径

clip_image003

注意路径不能有中文!!

之后就是工程名,同样不能使用中文。

clip_image004

软件自动完成顶层设计名~嘿嘿

之后next,出现

clip_image005

要我们加入已有文件,当然我们没有任何文件加入,直接next~

之后就是选择型号了~如图

clip_image006

我是用

clip_image007

clip_image008

然后next,出现

clip_image009

让你选择外部工具,注意都我用的是

clip_image010

同样从 www.altera.com.cn 申请modelsim初学版,免费的~~然后呢我们用的是verilog进行开发所以选verilog HDL

之后出现汇总表,

clip_image011

当然是next。

这样工程就建立ok了~~

开始我们敲我们的代码~首先我们必须建立一个空文本,如图

clip_image012

点击圈圈中的图标,出现

clip_image013

选择

clip_image014

然后输入:

/*******************************************************

module:                        first_test

author:                        TT       

description:        Just the first FPGA project.

*******************************************************/

module first_test (a,b,c);

input a;

input b;

output c;

assign c = a&b;

Endmodule

先对代码进行分析/* */内的是注释,不用管它

module指定模块名字,括号里面的是端口列表,我们有3个端口 a b c

之后指定端口的类型,很明显的 input和output。

再然后是对c进行赋值,这里使用到关键字assign 一般assign表示描述的是组合逻辑。

很明显,我们只是描述了1个与门,c等于a与b。

最后的Endmodule代表模块结束

之后点击:

clip_image015

进行综合布局布线

会弹出是否保存,当然yes,跳出保存文件名称,软件已经自动生成,不要改动~直接ok

一路通过,但是出现12个警告~

clip_image016

3个Parallel compilation is not licensed and has been disabled表示你使用的是多核cpu,并行编译不被许可,这个是网络版的限制,可以不理他

Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature.这个同样是网络版的限制,也不理他

No clocks defined in design.没有使用时钟,这个是由于我们只描述了一个组合逻辑,没有使用时钟,无伤大雅

Found 1 output pins without output pin load capacitance assignment这个是没有指定输出引脚后面的电容,跟以后的门级仿真有关,我们先放过,其实一般也就让它过去了。。。。。

The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'.这个表示你没有指定没用到的管脚状态。。。我们要解决的就是这个。

首先先为我们的与门分配管脚

clip_image017

跳出

clip_image018

我们只要在

clip_image019

上面输入选择的指定管脚就ok了,当然你也可以拖动

clip_image020

上面的管脚到

clip_image021

上面完成分配

我们随意指定为

clip_image022

直接关闭~

然后点击

clip_image023

再点击

clip_image024

选择

clip_image025

然后一路ok~

然后重新进行我们的综合

clip_image026

就是圈圈的位置~~

大功告成~只有10个警告了~都是可以无视的~~

看看报表

clip_image027

只用了一个门,也是我们意料中的~~

看看

clip_image028

如图

clip_image029

也是意料中的~~

然后我们进行仿真

clip_image030

之后在

clip_image031

打开我们生成的test bench

在们工程目录的

clip_image032

中,一般文件名与工程名一样,后缀是vt

clip_image033

我们只要拉到45行,把原来的

initial

begin

// code that executes only once

// insert code here --> begin

// --> end

$display("Running testbench");

end

改为

initial

begin

a=1'b0;

b=1'b0;

#10;

a=1'b1;

b=1'b0;

#10;

a=1'b0;

b=1'b1;

#10;

a=1'b1;

b=1'b1;

#10;

$stop;

end

然后

clip_image034

clip_image035

点击test benches

再接下来的对话框点击New

出现

clip_image036

我们回到

clip_image033[1]

的文本中,到28行

clip_image037

然后回到这里

clip_image038

我们的

clip_image039

就是文件的名字,不需要vt

clip_image033[2]

clip_image040

就是刚刚我们在28行得到的模块名

之后在

clip_image041

加入文件,点击Add

一路ok

然后点击

clip_image042

进行仿真。

posted on 2012-10-05 17:18  颠覆的饕餮  阅读(842)  评论(0编辑  收藏  举报