FPGA入门系列实验教程V1.0
- 格式:pdf
- 大小:91.68 KB
- 文档页数:1
艾米电子工作室FPGA入门系列实验教程FPGA入门系列实验教程V1.0前言目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。
经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。
原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。
作者从接著到系统学习FPGA有两年多的时间了,学习FPGA的时间不长,期间因为没有专业的老师指导,自己摸索学习FPGA走了很多的弯路。
有过问题迎刃而解的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习FPGA的历程,从开始的茫然,到后来的疯狂看书,购买开发板,在开发板上练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多。
发觉学习FPGA只要选择正确的方法是有捷径可走的,有很多人学习FPGA很长时间,因为没有找到正确的方法还是停留在入门阶段。
针对现状,作者从初学者的角度出发,结合作者学习FPGA的经验和亲身体会,遵循“宁可啰嗦一点,也不放过细节”的原则编写了详尽的实验教程作为艾米电子工作室开发套件的配套教程使用,主要面向FPGA初学者。
FPGA的学习只有通过大量的操作与实践才能很好并快速的掌握。
为此本实验教程从点亮LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、Step by Step的方式让初学者以最快的方式掌握FPGA技术的开发流程以及Quartus II软件的使用,从而激起初学者学习FPGA的兴趣。
在教程中作者采用“授人以渔”的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做,以便初学者深刻理解并快速掌握FPGA的学习方法。
实验一组合逻辑3-8译码器的设计 .................... 错误!未定义书签。
实验二基于FPGA的数字钟的设计 ................... 错误!未定义书签。
实验三基于NIOS的交通灯实验 .......................... 错误!未定义书签。
实验四静态图像显示 ............................................. 错误!未定义书签。
实验一组合逻辑3-8译码器的设计一、实验目的:1、通过3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
3、初步了解可编程器件设计的全过程。
二、实验步骤:1、打开QuartusII软件。
2、选择路径。
选择File/New Project Wizard,指定工作目录,指定工程和顶层设计实体称;注意:工作目录名不能有中文。
3、添加设计文件。
将设计文件加入工程中。
单击“Next”,如果有已经建立好的VHDL 或者原理图等文件可以在File name中选择路径然后添加,或者选择Add All添加所有可以添加的设计文件(.VHDL ,.Verilog原理图等)。
如果没有直接点击“Next”,等建立好工程后再添加也可,这里我们暂不添加。
4、选择FPGA器件。
Family选择Cyclone II,Available device选EP2C35F484C8,Packge选择Any,Pin Count 选择484,Speed grade选择Any;点击“Next”。
5、选择外部综合器、仿真器和时序分析器。
Quartus II支持外部工具,可通过选中来指定工具的路径。
这里我们不做选择,默认使用Quartus II自带的工具。
6、结束设置。
单击“Next”,弹出“工程设置统计”窗口,上面列出了工程的相关设置情况。
最后单击“Finish”,结束工程设置。
7、建立原理图文件。
艾米电子工作室—让开发变得更简单FPGA 入门系列实验教程——点亮LED1. 实验任务点亮发光二极管。
通过这个实验,熟悉并掌握CPLD/FPGA 开发软件QuartusII 的使用方法和开发流程以及Verilog HDL的编程方法。
2. 实验环境硬件实验环境为艾米电子工作室型号EP2C5T144 开发套件。
软件实验环境为Quartus II 8.1 开发软件。
3. 实验原理FPGA 器件同单片机一样,为用户提供了许多灵活的独立的输入/输出I/O 口(单元)。
FPGA 每个I/O 口可以配置为输入、输出、双向、集电极开路和三态门等各种组态。
作为输出口时,FPGA 的I/O 口可以吸收最大为24mA 的电流,可以直接驱动发光二极管LED 等器件。
图1. 1 为8 个发光二极管硬件原理图,本原理图对应艾米电子工作室型号为EP2C5T144 FPGA 开发板及接口板。
通过原理图可知如果要点亮这八个LED,所以只要正确分配并锁定引脚后,在相应的引脚上输出相应高电平“1”,就可实现点亮该发光二极管的功能。
本工作室开发板均采用输出“1”点亮LED 的模式,以后就不再另作说明。
图1. 1 发光二极管LED 硬件原理图艾米电子工作室—让开发变得更简单FPGA 入门系列实验教程——LED 闪烁灯1. 实验任务让实验板上的8 个LED 周期性的闪烁。
通过这个实验,熟悉并掌握采用计数与判断的方式来实现分频的Verilog HDL 的编程方法以及Quartus II 软件的使用方法和开发流程。
2. 实验环境硬件实验环境为艾米电子工作室型号EP2C8Q208 增强版开发套件。
软件实验环境为Quartus II 8.1 开发软件。
3. 实验原理艾米电子工作室开发套件板载50MHz 的时钟源,假如我们直接把它输入到发光二极管LED,由于人眼的延迟性,我们将无法看到LED 闪烁,认为它一直亮着。
如果我们期望看到闪烁灯,就需要将时钟源的频率降低后再输出。
芯航线FPGA学习实训第一期Verilog设计的数字秒表使用Verilog设计一个数字秒表,基本功能框图如下所示:如图,系统架构如上图所示:其中各模块功能如下所示:DCM:时钟分频模块,该模块对外部输入的100MHz时钟信号clk进行16分频,得到6.25MHz系统时钟sys_clk。
sys_clk作为整个系统的工作时钟;clk_div:时钟分频模块,该模块对系统工作时钟sys_clk进行分频,得到脉宽比为1:N的两路使能时钟信号pluse400Hz和pluse10Hz。
其中,pluse400Hz作为显示模块(disp)的数码管扫描时钟,pluse10Hz作为秒表计数器模块(timer)的计数基础时钟。
Key_Debounce:按键消抖模块,本模块对外部输入的机械按键信号(ButtonIn)进行抖动检测和滤除,并在最终成功检测到按键事件后输出一个系统时钟周期宽度的脉冲信号(ButtonOut)给控制模块(ctrl)。
ctrl:控制模块,本模块根据按键信息对计数器的工作状态进行控制,控制动作分为清除计数信号(clear)、开始计数信号(count)以及停止计数信号(stop);timer:计时模块,本模块在控制模块的控制下对0.1s的计数基础时钟进行计数,实现秒表计时功能。
模块输出为BCD格式的计数结果,BCD格式的计数结果可直接作为数码管显示的原始数据。
disp:显示模块,该模块实现数码的动态扫描刷新工作,将计时模块的输出结果以XHXXFXX-X的格式显示。
本题目要求在16年1月18号17:00前提交设计内容。
提交内容包括设计源功能或源码,以及仿真验证结果的分析文档。
要求:本次报名的用户必须参加。
没有报名的芯航线暂不安排工程师评审。
关于项目实训第一期补充说明1.设计完成后有进行板级验证需求的可以在群里找有开发板的朋友互助,进行板级验证;2.因为数码管显示秒表计数仿真效果不是很清晰,因此可以考虑使用其他方案代替,例如直接使用寄存器表示当前计数值,但必须给出独立的数码管模块仿真验证结果以证明数码管驱动确实设计好了;3.大家在设计中尽量编写属于自己的各种模块,如果实在能力或精力有限的,可以考虑使用我们讲课时讲过的各种示例代码。
FPGA入门教程FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,可以根据用户的需求进行配置,用于实现各种不同的逻辑电路。
相比于ASIC(Application-Specific Integrated Circuit), FPGA在设计周期、成本和灵活性方面具有明显的优势。
本教程将介绍FPGA的基本概念、设计流程和常见的编程方法。
一、FPGA的基本概念FPGA由可编程逻辑单元(Look-Up Tables, LUTs)、寄存器和多路复用器等基本元件组成。
这些元件通过一系列的可编程连线来连接,从而实现用户所需的电路功能。
用户可以通过编程来配置FPGA的连线和逻辑单元,从而实现不同的电路功能。
二、FPGA的设计流程1.需求分析:明确设计的目标和需求,确定需要实现的功能。
2.电路设计:将所需的功能转化为电路设计,包括逻辑门电路的设计和连线规划。
3.编程语言选择:选择一种适合的编程语言进行FPGA的编程。
常见的编程语言包括VHDL和Verilog。
4.编写代码:使用选定的编程语言编写FPGA的代码,其中代码包括包括逻辑电路和连线规划。
5.仿真验证:通过仿真软件对FPGA的代码进行验证,确保电路的正确性。
6.综合和布局布线:将FPGA的代码进行综合,将其转换为真正的逻辑电路。
然后进行布局布线,将逻辑电路映射到FPGA的可编程连线中。
8.测试和调试:对FPGA进行测试和调试,检查功能和性能是否符合设计需求。
三、FPGA的编程方法1.结构化编程:采用模块化设计方法,将FPGA的功能划分为若干个模块,每个模块负责实现特定的功能。
然后,将这些模块进行实例化和连接,构建成完整的电路。
2.状态机设计:利用状态机的概念来描述和实现电路的行为。
将电路分为若干个状态,并定义状态之间的转移条件。
通过寄存器和逻辑门来实现状态机的转移和控制逻辑。
3.时序分析:对FPGA的时序进行分析,在设计和布局布线过程中保证电路的正常工作。
实验一DE2的顶层默认程序这个实验为用户提供连接分配和顶层Verilog模块,这个模块也是这本手册所有其他实验的基础性模块。
这个实验产生的编程文件是DE2开发板在出货时作为默认载入开发板的编程文件。
本实验将介绍如何编译工程并把生成的编程文件下载到DE2开发板中。
启动开发板(1)将USB线和电源连接到DE2板上。
(2)按下电源开关,这时电源指示灯会被点亮。
(3)你将看到以下现象:●所有的LED灯都闪烁。
●所有七段数码管从0到F循环显示。
●液晶屏显示“Welcome to the Altera DE2 Board”。
●在VGA显示器上显示欢迎信息。
●将开关SW17置OFF,从LINEOUT插座输出1khz正弦波的声音;将开关SW17置ON并将一个MP3播放器的输出接到DE2板的LINE—IN端口,可从耳机里听到MP3播放的音乐。
●若将麦克风接到DE2板的MIC端口上,这样用户的声音可与MP3播放器混合。
Cyclone II中的顶层verilog模块这部分将介绍一个Quartus II工程中所需要的所有组件。
它将让你了解如何使用Quartus II将代码转换成数据流下载的整个设计流程。
按照以下步骤进行:(1)打开Quartus II 软件。
(2)点击File→Open Project ,如图1.1。
图1.1 打开Quartus II工程的菜单(3)在D:\DE2_Default目录下选中DE2_Default.qpf工程文件打开。
(4)在“Project Navigator”工程导航区可查看该工程的层次、包含的所有文件、设计单元等信息。
其中“File”下列出了整个工程包含的所有文件。
双击顶层设计文件DE2_Default.v,可以看到文件的内容和I/O口的声明。
在对每个引脚声明时加上了详细的注释,以便用户更好的明白每个引脚的功能。
如图1.2所示。
编译设计(1)使用Processing→Start Compilation菜单或者单击快捷工具条中的工具按钮运行编译器。
《FPGA设计与应用》熟悉开发板和VIVADO软件实验一、实验目的和要求1.熟悉 VIVADO 的开发环境;2.认识 EGO1 开发板;3.掌握在 VIVADO 环境下运用 Verilog HDL 语言的编程开发流程,包括源程序的编写、编译、模拟仿真及程序下载。
二、实验内容1. VIVADO 环境下源程序的编写、编译2.模拟仿真3.程序下载三、实验要求1.在 VIVADO 环境下完成对简单电路工作情况的仿真模拟;2.完成配置程序的下载,并在 EGO1 开发板上对程序进行最终验证。
四、操作方法与实验步骤1、在 VIVADO 环境下的编程开发流程(1) 启动 VIVADO。
(2) 利用向导,建立一个新项目。
●在New Project菜单中点击Next。
●填写所要新建的工程名。
如这里的工程名:Project_1,工程所在位置:D:/FPGA/Vivado/my_proj,然后点击Next。
●选择创建RTL Project,勾选Do not specify source at this time,跳过添加文件步骤,选择完成后点击Next进入下一步。
●器件的选择是和实验平台的硬件相关的,根据我们的 EGO1 实验开发板,它使用的是 xc7a35tcsg324-1 的器件,找到相应的器件。
●在New Project Summary界面检查新建的设计内容是否符合我们需求,确认无误后,点击Finish完成。
●点击Finish后自动进入创建完毕后的空白工程。
●VIVADO 中包含完整的文本编辑程序(Text Editor),在此用 Verilog HDL来编写源程序。
新建一个 Verilog HDL 文件,可以通过右击 Design sourse 选择 Add Sourse。
●选择Create Files输入led_1,点击OK,确认led_1.v添加进去后,选择Finish完成设计文件添加。
●创建完成点击 Finish●填写模块名称和端口,对于本实验来说不填影响不大。
艾米电子工作室FPGA入门系列实验教程
FPGA入门系列实验教程V1.0
前言
目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。
经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。
原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。
作者从接著到系统学习FPGA有两年多的时间了,学习FPGA的时间不长,期间因为没有专业的老师指导,自己摸索学习FPGA走了很多的弯路。
有过问题迎刃而解的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习FPGA的历程,从开始的茫然,到后来的疯狂看书,购买开发板,在开发板上练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多。
发觉学习FPGA只要选择正确的方法是有捷径可走的,有很多人学习FPGA很长时间,因为没有找到正确的方法还是停留在入门阶段。
针对现状,作者从初学者的角度出发,结合作者学习FPGA的经验和亲身体会,遵循“宁可啰嗦一点,也不放过细节”的原则编写了详尽的实验教程作为艾米电子工作室开发套件的配套教程使用,主要面向FPGA初学者。
FPGA的学习只有通过大量的操作与实践才能很好并快速的掌握。
为此本实验教程从点亮LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、Step by Step的方式让初学者以最快的方式掌握FPGA技术的开发流程以及Quartus II软件的使用,从而激起初学者学习FPGA的兴趣。
在教程中作者采用“授人以渔”的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做,以便初学者深刻理解并快速掌握FPGA的学习方法。
本实验教程的所有实例均在艾米电子工作室开发套件上验证通过,本教程虽然简单但编写也花费了作者大量的时间和精力,对于转载需要注明出处:(艾米电子工作室作者:静水流深),并未经艾米电子工作室同意不得用于其他商业用途。
FPGA技术是不断发展变化的,要掌握FPGA技术的精髓,需要设计者在实践中不懈地摸索与积累,逐步提高自己的设计水平,本实验教程试图对初学者起到快速入门的作用。
但由于作者学习FPGA时间不长,水平有限,错漏和不严谨之处在所难免,欢迎大家批评指正。
并请您将阅读中发现的错误或建议发送到作者Email:zhoujie9220@,以使本教程不断地完善。