EDA实验报告总结.docx
- 文档编号:26353966
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:99
- 大小:2.34MB
EDA实验报告总结.docx
《EDA实验报告总结.docx》由会员分享,可在线阅读,更多相关《EDA实验报告总结.docx(99页珍藏版)》请在冰豆网上搜索。
EDA实验报告总结
EDA技术与应用
实验报告
学院:
物理与电子学院
专业班级:
电子信息科学与技术1205
姓名:
学号:
实验一应用QuartusΙΙ完成LED的驱动……………3
实验二组合逻辑电路的设计……………………………19
实验三时序逻辑电路的设计……………………………32
实验四:
数字时钟设计……………………………………45
实验五数据采集系统设计………………………………59
实验六序列检测器设计…………………………………74
实验一应用QuartusΙΙ完成LED的驱动
1、实验目的
通过实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusΙΙ的使用方法及VHDL的编程方法。
本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用而快速入门,并激起读者对EDA技术的兴趣。
2、实验内容
SmartSOPC实验箱上有8个发光二极管LED1~LED8,在QuikSOPC核心板上LED1~LED8分别于FPGA芯片的第50、53~55、176和第47~49引脚相连(SmartSOPC实验箱的LED1~LED8通过跳线JP6的LED0~LED7分别与FPGA的第50、53~55、176和第47~49引脚相连)。
本实验的内容是建立可用于控制LED亮/灭的简单硬件电路,要求点亮SmartSOPC试验箱上的4个发光二极管(LED1、LED3、LED5、LED7)。
具体包括:
1 使用QuartusΙΙ建立工程;
2 QuartusΙΙ工程设计;
3 设置编译选项并编译硬件系统;
3、实验原理
FPGA器件同单片机一样,为用户提供了许多灵活独立的输入/输出I/O口(单元)。
FPGA每个I/O口可以配置为输入、输出、双向I/O、集电极开路和三态门等各种组态。
做为输出口时,FPGA的I/O口可以吸收最大为24mA的电流,可以直接驱动发光二极管LED等器件。
所以只要正确分配并锁定引脚后,在相应的引脚上输出低电平“0”,就可实现点亮该发光二极管的功能。
4、实验步骤
使用QuartusΙΙ建立工程
打开QuartusII软件并建立工程
1 在Windows桌面上选择“开始”→“程序”→“Altera”→QuartusΙΙ9.0,打开QuartusΙΙ9.0软件,软件界面如图1所示。
图1QuartusΙΙ软件界面
2 在图1中选择File→NewProjectWizard来新建一项工程。
注意不要把New误以为NewProjectWizard。
新建工程向导说明如对话框图2所示。
图2新建工程向导说明对话框
在图2中可以了解在新建工程的过程中要完成哪些工作,这些工作包括:
指定项目目录、名称和顶层实体;指定项目设计文件;指定该设计的Altera器件系列;指定用于该项目的其他EDA工具;项目信息报告。
3 在图2中单击Next进入如图3所示对话框。
任何一项设计都是一项工程Project,必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被QuartusΙΙ默认为工作库(WorkLibrary)。
一般来说不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。
图3中的第一栏用于指定工程所在的工作库文件夹;第二栏用于指定工程名,工程名可以取任何名字,也可以直接用顶层文件的实体名作为工程名(建议使用);第三栏用于指定顶层文件的实体名。
本例工程的路径为F:
\led_test,工程名与顶层文件的实体名同为led_test。
图3新建工程路径、名称、顶层实体指定对话框
4 单击Next进如图4所示对话框。
由于是新建工程,暂无输入文件。
图4新建工程添加文件对话框
5 单击Next,进入图5所示对话框。
在该对话框中指定目标器件,这里我们选择的是QuikSOPC核心板上用的Cyclone系列的EP1C12Q240C8。
图5新建工程器件选择对话框
6 在图5右边的Filter(过滤器)选项中,可以通过指定封装、引脚数以及器件速度等级来加速器件查找的速度。
指定完器件后,单击Next进入图6所示对话框。
本实验利用QuartusΙΙ的集成开发环境开发,不使用任何EDA工具,因此这里不作任何改动。
图6新建工程EDA工具设置对话框
7 单击图6中的Next进入图7所示对话框。
从该对话框中,可以看到工程文件配置信息报告。
单击Finish,完成新建工程的建立。
图7新建工程配置信息报告对话框
需要注意的是,建立工程后,还可以根据设计中的实际情况对工程进行重新设置,可选择Assignment→Settings(或工具栏上的
按钮)进行设置。
建立图形设计文件
QuartusΙΙ图形编辑器也成为块编辑器(BlockEditor),用于以原理图(Schematics)和结构图(BlockDiagrams)的形式输入和编辑图形设计信息。
QuartusΙΙ的块编辑器可以读取并编辑结构图设计文件(BlockDesignFiles)和MAX+PlusΙΙ图形设计文件(GraphicDesignFiles)。
可以在QuartusΙΙ软件中打开图形设计文件并将其另存为结构图设计文件。
1 在QuartusΙΙ主界面中,选择File→New打开如图8所示对话框。
2 在图8所示对话框中选择BlockDiagram/SchematicFiles,单击OK建立一个空的图形设计文件,默认名为Block1.bdf。
图8新建文件对话框
3 在QuartusΙΙ主界面中,选择File→SaveAs打开将bdf文件存盘的对话框,如图9所示。
在该对话框中接受默认的文件名,并选中AddFiletocurrentproject选项,以使该文件添加到工程中。
图9BDF文件存盘对话框
至此,便完成了顶层模块的建立。
接下来应该将VHDL语言生成的模块加入到顶层模块中。
建立文本编辑文件
QuartusΙΙ的文本编辑器是个非常灵活的编辑工具,用以AHDL、VHDL、和VerilogHDL语言形式以及Tcl脚本语言输入文本型设计,还可以在该文本编辑器下输入、编辑和查看其它ASCII文本文件。
在这里要建立的是VHDL文件,建立的流程与建立图形设计文件一样。
在创建好一个设计工程文件以后,在QuartusΙΙ主界面中选择File→New打开新建文件对话框,如图8所示,在该对话框中选择VHDLFile,单击OK建立一个空的VHDL文件,默认名为Vhd1.vhd。
在QuartusΙΙ主界面中选择File→SaveAs改名为led.vhd并保存。
QuartusΙΙ工程设计
在第1步中已经建立好了QuartusΙΙ工程文件,现在要对QuartusΙΙ工程进行编程设计。
(1)在VHDL文件中编写源程序
在新建VHDL源程序文件中输入程序代码并保存。
完整的程序代码参考程序清单1(注意,程序的模块名应与文件名一致。
)
对该VHDL文件进行编译处理,具体操作如下:
1 在QuartusΙΙ主界面的ProjectNavigator窗口中选择Files选项卡,右击led.vhd文件,在弹出的快捷菜单中单击SetAsTop-levelEntity选项,将led.vhd设置为顶层实体;
2 在QuartusΙΙ主界面中选择Processing→Start→StartAnalysis&Synthesis进行综合编译,也可以选择工具栏上的
按钮启动编译。
若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
(2)从设计文件创建模块
在层次化工程设计中,经常需要将已经设计好的文件生成一个模块符号文件(BlockSymbolFiles.bsf)作为自己的功能模块符号在顶层调用,该符号可以向图形设计文件中的任何其它宏功能一样被高层设计重复调用。
在ProjectNavigator窗口中Files选项卡中的led.vhd文件,在弹出的快捷菜单中单击CreateSymbolFilesforCurrentFile选项,会弹出一个对话框提示原理图文件创建成功,单击“确定”按钮,即可创建一个代表现行文件功能的符号(led.bsf)。
设计好的图形文件(BlockSymbolFiles.bdf)也应该生成一个模块符号文件(BlockSymbolFiles.bsf)作为自己的功能模块符号在顶层调用。
操作如下:
1 在QuartusΙΙ主界面的ProjectNavigator窗口中右击Files选项卡中的.bdf文件,在弹出的快捷菜单中单击SetAsTop-levelEntity选项,将.bdf设置为顶层实体;
2 在QuartusΙΙ主界面中选择File→Create/Updata→CreateSymbolFilesforCurrentfile,然后在出现的对话框中单击“确定”按钮,即可创建一个代表现行文件功能的符号问件(.bsf)。
(3)将led.bsf模块添加到QuartusΙΙ顶层模块
执行下列步骤可将led符号(led.bsf)加入到BDF文件中(在第1步中已将建立好的led_test.bdf):
1 在QuartusΙΙ主界面下led_test.bdf窗口中的任意处双击,弹出添加符号(Symbol)对话框,如图10所示;
图10添加Symbol对话框
2 在Project下选择led,在右边的窗口中出现一个很大的符号,这就是led.vhd源文件生成模块符号;
3 单击OK,关闭Symbol对话框,led符号被附在鼠标的指针上,用户可以在led_test.bdf窗口中适当位置上放置该符号;
4 在QuartusΙΙ主界面中选择File→SaveAs来保存QuartusΙΙ顶层文件led_test.bdf。
(4)添加引脚和其它基本单元
引脚包括输入(input)、输出(output)和双向(bidir)三种类型。
在添加引脚和其它基本单元时,将使用到模块编辑工具栏中的各种工具,图11显示了工具栏中个工具的功能。
图11模块编辑工具栏
执行下面步骤为顶层模块添加输出引脚:
1 在模块编辑工具栏中单击
按钮,插入如图12所示符号对话框。
可以看出,这个对话框就是图11所示对话框,其不同之处在于,适用按钮时,默认重复插入模式(RepeatInsertMode)选中,这样既可以重复的插入符号,当然,前面插入led符号也也可以适用
按钮。
图12添加输入引脚对话框
2 在图12中单击C:
/altera/quartus50/libraries文件夹前的“+”将其展开,再分别单击展开primitives和pin文件夹。
3 在pin文件夹下选择output组件(也可以在Name文本框下直接输入名称)。
4 单击OK按钮关闭Symbol对话框。
5 在led符号左侧的空白处单击,插入一个output引脚符号。
6 拖动引脚符号连接到led符号的输出口。
7 双击各引脚符号,进行引脚命名。
将与led符号了的led[7..0]连接的引脚命名为led[7..0],完整的顶层模块图,如图13所示。
8 在QuartusΙΙ主界面中选择File→Save保存BDF文件。
图13完整的顶层模块图
(5)选择器件型号
每种型号的FPGA芯片的引脚可能都不相同,在QuartusΙΙ工程创建好后仍然可以选择并修改器件型号。
在QuartusΙΙ主界面中选择Assignments→Device打开如图14所示对话框。
在该对话框中指定所需的目标器件型号,本实验为EP1C12Q240C8。
图14器件选择对话框
(6)分配FPGA引脚
本实验中各引脚以及与目标FPGA器件引脚的关系如表1所示,用户可以根据自己的核心板选择相应的引脚进行分配(这里以1C6、1C12和EDA分别代表QuickSOPC-1C6、QuickSOPC-1C12和QuickEDA核心板的引脚分配)。
表1引脚锁定方法
信号
引脚
信号
引脚
1C6
1C12
EDA
1C6
1C12
EDA
led[0]
50
50
50
led[4]
176
176
176
led[1]
53
53
53
led[5]
47
47
47
led[2]
54
54
54
led[6]
48
48
48
led[3]
55
55
55
led[7]
49
49
49
要执行FPGA引脚的分配,可按下面步骤进行:
1 在QuartusΙΙ主界面中选择Assignments→Pins打开如图15所示对话框;
图15分配引脚对话框
2 按照表1在To栏中输入各引脚名称,在Location栏中选择相应的引脚,也可以在Location栏中输入引脚号来快速定位,最终分配的结果如图15所示;
3 选择File→Save来保存分配,然后关闭AssignmentEditor窗口。
(7)器件和引脚的其他设置
单击图14中的Device&PinOption,打开Device&PinOption对话框。
在该对话框中选择Configuration选项卡,并按图16所示进行配置,即采用串行配置器件EPS1的主动配置方式。
在Device&PinOption对话框中选择UnusedPins选项卡进行没有使用引脚的配置,按照图17所示将未使用引脚设置为高阻输入,这样上电后FPGA的所有不使用引脚将进入高阻抗状态。
图16Configuration设置
图17为使用引脚分配
1.设置编译选项并编译硬件系统
(1)设置编译选项
在图14中左边框中选择相应的设置选项进行设置。
本实验采用默认的编译设置,不需要进行任何修改。
若要进行编译选项的设置,请参考Altera公司的QuartusII使用手册。
(2)编译硬件系统
在编译过程中,编译器定位并处理所有的工程文件,生成与编译有关的消息和报告,创建SOF文件及任何可选配置文件。
1.在QuartusΙΙ主界面的ProjectNavigator窗口中选择Files选项卡,右击led_test.bqf文件,在弹出的快捷菜单中单击SetAsTop-levelEntity选项,将led_test.bqf设置为顶层实体。
2.在QuartusII主界面下选择Processing→StartComplication进行全程编译,也可选择工具栏上的
按钮启动编译,对该过程文件进行编译处理。
若在编译过程中发现错误,找出并更正错误,直至编译成功为止。
在编译硬件系统时,状态窗口显示这个编译进程及每个编译阶段所用的时间。
编译结果显示在ComplicationReport窗口中。
整个编译时间大约需要几秒到一分钟,这取决于计算机的性能以及编译选项的设置。
在编译过程中,可能产生很多的警告信息,但是这些不会影响设计结果。
(3)查看编译报告
编译结束后,对话框显示消息“Fullcomplicationwassuccessful.”,单击OK进入ComplicationReport窗口,如图18所示,包括编译报告、综合报告、适配报告和时序分析报告等。
由于本设计比较简单,器件适配、静态时序等情况很容易满足要求,所以在本实验中不详细分析这些报告。
图18查看编译报告
5、实验参考程序
程序清单1点亮LED灯
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_Arith.ALL;
USEIEEE.STD_LOGIC_Unsigned.ALL;
ENTITYledIS
PORT(
led:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
END;
ARCHITECTUREoneOFledIS
CONSTANTnumber:
STD_LOGIC_VECTOR(7DOWNTO0):
="10101010";
BEGIN
led<=number;
END;
实验二组合逻辑电路的设计
6、实验目的
通过实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusΙΙ的使用方法及VHDL的编程方法。
本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用而快速入门,并激起读者对EDA技术的兴趣。
了解二选一数据选择器工作原理。
7、实验内容
本实验的内容是用QuartusII9.0建立一个简单的组合逻辑硬件电路(二选一多路选择器)。
具体包括:
4 使用QuartusΙΙ建立工程;
5 QuartusΙΙ工程设计;
6 设置编译选项并编译硬件系统;
8、实验步骤
使用QuartusΙΙ建立工程
打开QuartusII软件并建立工程
8 在Windows桌面上选择“开始”→“程序”→“Altera”→QuartusΙΙ9.0,打开QuartusΙΙ9.0软件,软件界面如图1所示。
图1QuartusΙΙ软件界面
9 在图1中选择File→NewProjectWizard来新建一项工程。
注意不要把New误以为NewProjectWizard。
新建工程向导说明如对话框图2所示。
图2新建工程向导说明对话框
在图2中可以了解在新建工程的过程中要完成哪些工作,这些工作包括:
指定项目目录、名称和顶层实体;指定项目设计文件;指定该设计的Altera器件系列;指定用于该项目的其他EDA工具;项目信息报告。
10 在图2中单击Next进入如图3所示对话框。
任何一项设计都是一项工程Project,必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被QuartusΙΙ默认为工作库(WorkLibrary)。
一般来说不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。
图3中的第一栏用于指定工程所在的工作库文件夹;第二栏用于指定工程名,工程名可以取任何名字,也可以直接用顶层文件的实体名作为工程名(建议使用);第三栏用于指定顶层文件的实体名。
本例工程的路径为F:
\EDA\zh,工程名为f_adder。
图3新建工程路径、名称、顶层实体指定对话框
11 单击Next进如图4所示对话框。
由于是新建工程,暂无输入文件。
图4新建工程添加文件对话框
12 单击Next,进入图5所示对话框。
在该对话框中指定目标器件,这里我们选择的是QuikSOPC核心板上用的Cyclone系列的EP1C12Q240C8。
图5新建工程器件选择对话框
13 在图5右边的Filter(过滤器)选项中,可以通过指定封装、引脚数以及器件速度等级来加速器件查找的速度。
指定完器件后,单击Next进入图6所示对话框。
本实验利用QuartusΙΙ的集成开发环境开发,不使用任何EDA工具,因此这里不作任何改动。
图6新建工程EDA工具设置对话框
14 单击图6中的Next进入图7所示对话框。
从该对话框中,可以看到工程文件配置信息报告。
单击Finish,完成新建工程的建立。
图7新建工程配置信息报告对话框
需要注意的是,建立工程后,还可以根据设计中的实际情况对工程进行重新设置,可选择Assignment→Settings(或工具栏上的
按钮)进行设置。
建立图形设计文件
QuartusΙΙ图形编辑器也成为块编辑器(BlockEditor),用于以原理图(Schematics)和结构图(BlockDiagrams)的形式输入和编辑图形设计信息。
QuartusΙΙ的块编辑器可以读取并编辑结构图设计文件(BlockDesignFiles)和MAX+PlusΙΙ图形设计文件(GraphicDesignFiles)。
可以在QuartusΙΙ软件中打开图形设计文件并将其另存为结构图设计文件。
4 在QuartusΙΙ主界面中,选择File→New打开如图8所示对话框。
5 在图8所示对话框中选择BlockDiagram/SchematicFiles,单击OK建立一个空的图形设计文件,默认名为Block1.bdf。
图8新建文件对话框
6 在QuartusΙΙ主界面中,选择File→SaveAs打开将bdf文件存盘的对话框,如图9所示。
在该对话框中接受默认的文件名,并选中AddFiletocurrentproject选项,以使该文件添加到工程中。
图9BDF文件存盘对话框
至此,便完成了顶层模块的建立。
接下来应该将VHDL语言生成的模块加入到顶层模块中。
建立文本编辑文件
QuartusΙΙ的文本编辑器是个非常灵活的编辑工具,用以AHDL、VHDL、和VerilogHDL语言形式以及Tcl脚本语言输入文本型设计,还可以在该文本编辑器下输入、编辑和查看其它ASCII文本文件。
在这里要建立的是VHDL文件,建立的流程与建立图形设计文件一样。
在创建好一个设计工程文件以后,在QuartusΙΙ主界面中选择File→New打开新建文件对话框,如图8所示,在该对话框中选择VHDLFile,单击OK建立一个空的VHDL文件,默认名为Vhd1.vhd。
在QuartusΙΙ主界面中选择File→SaveAs改名为mux21a.vhd并保存。
QuartusΙΙ工程设计
在第1步中已经建立好了QuartusΙΙ工程文件,现在要对QuartusΙΙ工程进行编程设计。
(6)在VHDL文件中编写源程序
在新建VHDL源程序文件中输入程序代码并保存。
完整的程序代码参考程序清单1(注意,程序的模块名应与文件名一致。
)
对该VHDL文件进行编译处理,具体操作如下:
3 在QuartusΙΙ主界面的ProjectNavigator窗口中选择Files选项卡,右击mux21a.vhd文件,在弹出的快捷菜单中单击SetAsTop-levelEntity选项,将mux21a.vhd设置为顶层实体;
4 在QuartusΙΙ主界面中选择Processing→Start→StartAnalysis&Synthesis进行综合编译,也可以选择工具栏上的
按钮启动编译。
若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
(7)从设计文件创建模块
在层次化工程设计中,经常需要将已经设计好的文件生成一个模块符号文件(BlockSymbolFiles.bsf)作为自己的功能模块符号在顶层调用,该符号可以向图形设计文件中的任何其它宏功能一样被高层设计重复调用。
在ProjectNavigator窗口中Files选项卡中的mux21a.vhd文件,在弹出的快捷菜单中单击CreateSymbolFilesforCurrentFile选项,会弹出一个对话框提示原理图文件创建成功,单击“确定”按钮,即可创建一个代表现行文件功能的符号(mux21a.bsf)。
设计好的图形文件(BlockSymbolFiles.bdf)也应该生成一个模块符号文件(BlockSymbolFiles.bsf)作为自己的功能模块符号在顶层调用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验 报告 总结