使用Quartus建立第一个FPGA工程
2012-10-04 12:47
211 查看
到 www.altera.com.cn 免费申请到Quartus网络版并且安装,这个过程非常简单。
安装好Quartus后,我们开始建立第一个FPGA工程,我们开始建立第一个FPGA工程。
打开后界面是
![](file:///D:\temp\msohtmlclip1\01\clip_image001.png)
单击左上角 file->new project wizard 出现下面的界面
![](file:///D:\temp\msohtmlclip1\01\clip_image002.png)
当然是next
之后在指定建立工程的路径
![](file:///D:\temp\msohtmlclip1\01\clip_image003.png)
注意路径不能有中文!!
之后就是工程名,同样不能使用中文。
![](file:///D:\temp\msohtmlclip1\01\clip_image004.png)
软件自动完成顶层设计名~嘿嘿
之后next,出现
![](file:///D:\temp\msohtmlclip1\01\clip_image005.png)
要我们加入已有文件,当然我们没有任何文件加入,直接next~
之后就是选择型号了~如图
![](file:///D:\temp\msohtmlclip1\01\clip_image006.png)
我是用
![](file:///D:\temp\msohtmlclip1\01\clip_image007.png)
![](file:///D:\temp\msohtmlclip1\01\clip_image008.png)
然后next,出现
![](file:///D:\temp\msohtmlclip1\01\clip_image009.png)
让你选择外部工具,注意都我用的是
![](file:///D:\temp\msohtmlclip1\01\clip_image010.png)
同样从 www.altera.com.cn 申请modelsim初学版,免费的~~然后呢我们用的是verilog进行开发所以选verilog HDL
之后出现汇总表,
![](file:///D:\temp\msohtmlclip1\01\clip_image011.png)
当然是next。
这样工程就建立ok了~~
开始我们敲我们的代码~首先我们必须建立一个空文本,如图
![](file:///D:\temp\msohtmlclip1\01\clip_image012.png)
点击圈圈中的图标,出现
![](file:///D:\temp\msohtmlclip1\01\clip_image013.png)
选择
![](file:///D:\temp\msohtmlclip1\01\clip_image014.png)
然后输入:
/*******************************************************
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代表模块结束
之后点击:
![](file:///D:\temp\msohtmlclip1\01\clip_image015.png)
进行综合布局布线
会弹出是否保存,当然yes,跳出保存文件名称,软件已经自动生成,不要改动~直接ok
一路通过,但是出现12个警告~
![](file:///D:\temp\msohtmlclip1\01\clip_image016.png)
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'.这个表示你没有指定没用到的管脚状态。。。我们要解决的就是这个。
首先先为我们的与门分配管脚
![](file:///D:\temp\msohtmlclip1\01\clip_image017.png)
跳出
![](file:///D:\temp\msohtmlclip1\01\clip_image018.png)
我们只要在
![](file:///D:\temp\msohtmlclip1\01\clip_image019.png)
上面输入选择的指定管脚就ok了,当然你也可以拖动
![](file:///D:\temp\msohtmlclip1\01\clip_image020.png)
上面的管脚到
![](file:///D:\temp\msohtmlclip1\01\clip_image021.png)
上面完成分配
我们随意指定为
![](file:///D:\temp\msohtmlclip1\01\clip_image022.png)
直接关闭~
然后点击
![](file:///D:\temp\msohtmlclip1\01\clip_image023.png)
再点击
![](file:///D:\temp\msohtmlclip1\01\clip_image024.png)
选择
![](file:///D:\temp\msohtmlclip1\01\clip_image025.png)
然后一路ok~
然后重新进行我们的综合
![](file:///D:\temp\msohtmlclip1\01\clip_image026.png)
就是圈圈的位置~~
大功告成~只有10个警告了~都是可以无视的~~
看看报表
![](file:///D:\temp\msohtmlclip1\01\clip_image027.png)
只用了一个门,也是我们意料中的~~
看看
![](file:///D:\temp\msohtmlclip1\01\clip_image028.png)
如图
![](file:///D:\temp\msohtmlclip1\01\clip_image029.png)
也是意料中的~~
然后我们进行仿真
![](file:///D:\temp\msohtmlclip1\01\clip_image030.png)
之后在
![](file:///D:\temp\msohtmlclip1\01\clip_image031.png)
打开我们生成的test bench
在们工程目录的
![](file:///D:\temp\msohtmlclip1\01\clip_image032.png)
中,一般文件名与工程名一样,后缀是vt
![](file:///D:\temp\msohtmlclip1\01\clip_image033.png)
我们只要拉到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
然后
![](file:///D:\temp\msohtmlclip1\01\clip_image034.png)
![](file:///D:\temp\msohtmlclip1\01\clip_image035.png)
点击test benches
再接下来的对话框点击New
出现
![](file:///D:\temp\msohtmlclip1\01\clip_image036.png)
我们回到
![](file:///D:\temp\msohtmlclip1\01\clip_image033.png)
的文本中,到28行
![](file:///D:\temp\msohtmlclip1\01\clip_image037.png)
然后回到这里
![](file:///D:\temp\msohtmlclip1\01\clip_image038.png)
我们的
![](file:///D:\temp\msohtmlclip1\01\clip_image039.png)
就是文件的名字,不需要vt
![](file:///D:\temp\msohtmlclip1\01\clip_image033.png)
![](file:///D:\temp\msohtmlclip1\01\clip_image040.png)
就是刚刚我们在28行得到的模块名
之后在
![](file:///D:\temp\msohtmlclip1\01\clip_image041.png)
加入文件,点击Add
一路ok
然后点击
![](file:///D:\temp\msohtmlclip1\01\clip_image042.png)
进行仿真。本文出自 “学无止境” 博客,请务必保留此出处http://freedomboy.blog.51cto.com/2870641/1012168
安装好Quartus后,我们开始建立第一个FPGA工程,我们开始建立第一个FPGA工程。
打开后界面是
![](file:///D:\temp\msohtmlclip1\01\clip_image001.png)
单击左上角 file->new project wizard 出现下面的界面
![](file:///D:\temp\msohtmlclip1\01\clip_image002.png)
当然是next
之后在指定建立工程的路径
![](file:///D:\temp\msohtmlclip1\01\clip_image003.png)
注意路径不能有中文!!
之后就是工程名,同样不能使用中文。
![](file:///D:\temp\msohtmlclip1\01\clip_image004.png)
软件自动完成顶层设计名~嘿嘿
之后next,出现
![](file:///D:\temp\msohtmlclip1\01\clip_image005.png)
要我们加入已有文件,当然我们没有任何文件加入,直接next~
之后就是选择型号了~如图
![](file:///D:\temp\msohtmlclip1\01\clip_image006.png)
我是用
![](file:///D:\temp\msohtmlclip1\01\clip_image007.png)
![](file:///D:\temp\msohtmlclip1\01\clip_image008.png)
然后next,出现
![](file:///D:\temp\msohtmlclip1\01\clip_image009.png)
让你选择外部工具,注意都我用的是
![](file:///D:\temp\msohtmlclip1\01\clip_image010.png)
同样从 www.altera.com.cn 申请modelsim初学版,免费的~~然后呢我们用的是verilog进行开发所以选verilog HDL
之后出现汇总表,
![](file:///D:\temp\msohtmlclip1\01\clip_image011.png)
当然是next。
这样工程就建立ok了~~
开始我们敲我们的代码~首先我们必须建立一个空文本,如图
![](file:///D:\temp\msohtmlclip1\01\clip_image012.png)
点击圈圈中的图标,出现
![](file:///D:\temp\msohtmlclip1\01\clip_image013.png)
选择
![](file:///D:\temp\msohtmlclip1\01\clip_image014.png)
然后输入:
/*******************************************************
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代表模块结束
之后点击:
![](file:///D:\temp\msohtmlclip1\01\clip_image015.png)
进行综合布局布线
会弹出是否保存,当然yes,跳出保存文件名称,软件已经自动生成,不要改动~直接ok
一路通过,但是出现12个警告~
![](file:///D:\temp\msohtmlclip1\01\clip_image016.png)
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'.这个表示你没有指定没用到的管脚状态。。。我们要解决的就是这个。
首先先为我们的与门分配管脚
![](file:///D:\temp\msohtmlclip1\01\clip_image017.png)
跳出
![](file:///D:\temp\msohtmlclip1\01\clip_image018.png)
我们只要在
![](file:///D:\temp\msohtmlclip1\01\clip_image019.png)
上面输入选择的指定管脚就ok了,当然你也可以拖动
![](file:///D:\temp\msohtmlclip1\01\clip_image020.png)
上面的管脚到
![](file:///D:\temp\msohtmlclip1\01\clip_image021.png)
上面完成分配
我们随意指定为
![](file:///D:\temp\msohtmlclip1\01\clip_image022.png)
直接关闭~
然后点击
![](file:///D:\temp\msohtmlclip1\01\clip_image023.png)
再点击
![](file:///D:\temp\msohtmlclip1\01\clip_image024.png)
选择
![](file:///D:\temp\msohtmlclip1\01\clip_image025.png)
然后一路ok~
然后重新进行我们的综合
![](file:///D:\temp\msohtmlclip1\01\clip_image026.png)
就是圈圈的位置~~
大功告成~只有10个警告了~都是可以无视的~~
看看报表
![](file:///D:\temp\msohtmlclip1\01\clip_image027.png)
只用了一个门,也是我们意料中的~~
看看
![](file:///D:\temp\msohtmlclip1\01\clip_image028.png)
如图
![](file:///D:\temp\msohtmlclip1\01\clip_image029.png)
也是意料中的~~
然后我们进行仿真
![](file:///D:\temp\msohtmlclip1\01\clip_image030.png)
之后在
![](file:///D:\temp\msohtmlclip1\01\clip_image031.png)
打开我们生成的test bench
在们工程目录的
![](file:///D:\temp\msohtmlclip1\01\clip_image032.png)
中,一般文件名与工程名一样,后缀是vt
![](file:///D:\temp\msohtmlclip1\01\clip_image033.png)
我们只要拉到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
然后
![](file:///D:\temp\msohtmlclip1\01\clip_image034.png)
![](file:///D:\temp\msohtmlclip1\01\clip_image035.png)
点击test benches
再接下来的对话框点击New
出现
![](file:///D:\temp\msohtmlclip1\01\clip_image036.png)
我们回到
![](file:///D:\temp\msohtmlclip1\01\clip_image033.png)
的文本中,到28行
![](file:///D:\temp\msohtmlclip1\01\clip_image037.png)
然后回到这里
![](file:///D:\temp\msohtmlclip1\01\clip_image038.png)
我们的
![](file:///D:\temp\msohtmlclip1\01\clip_image039.png)
就是文件的名字,不需要vt
![](file:///D:\temp\msohtmlclip1\01\clip_image033.png)
![](file:///D:\temp\msohtmlclip1\01\clip_image040.png)
就是刚刚我们在28行得到的模块名
之后在
![](file:///D:\temp\msohtmlclip1\01\clip_image041.png)
加入文件,点击Add
一路ok
然后点击
![](file:///D:\temp\msohtmlclip1\01\clip_image042.png)
进行仿真。本文出自 “学无止境” 博客,请务必保留此出处http://freedomboy.blog.51cto.com/2870641/1012168
相关文章推荐
- 使用Quartus建立第一个FPGA工程
- Eclipse中建立自己的类库,给不同的工程使用
- 使用uVision 创建第一个工程
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(1)
- IOS 初级开发入门教程(二)第一个HelloWorld工程及StoryBoard使用
- 使用maven建立WEB工程
- MyGui笔记(1)建立第一个工程
- MyGui笔记(1)建立第一个工程
- 使用Keil建立工程和烧录到89C52板上
- stm32使用库文件建立工程
- python使用web.py建立第一个hello world程序
- 【Office365使用系列】office365的建立第一个用户的研究
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- 小白学习c语言一之使用visual studio 2017 建立c语言工程
- 使用idea创建第一个spring boot 工程
- 这篇文章不需要在modelsim中建库、映射、建工程等一些繁琐的步骤,直接使用modelsim中的默认work库。使用quartus+modelsim联合仿真。
- 建立第一个stm32工程感触
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- 使用Eclipse建立一个JAVA工程和WEB工程
- STM32+W5500使用IAR FOR ARM建立工程详细到编译过程