EDA技术及应用项目教程 课件 项目3 熟悉常用EDA开发软件的使用_第1页
EDA技术及应用项目教程 课件 项目3 熟悉常用EDA开发软件的使用_第2页
EDA技术及应用项目教程 课件 项目3 熟悉常用EDA开发软件的使用_第3页
EDA技术及应用项目教程 课件 项目3 熟悉常用EDA开发软件的使用_第4页
EDA技术及应用项目教程 课件 项目3 熟悉常用EDA开发软件的使用_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目3

熟悉常用EDA开发软件的使用摘要ABSTRACT

EDA应用开发系统是以CPLD/FPGA为核心,配以相应的外围电路及软件来完成某些特定功能的系统。它包括硬件和软件两部分,硬件是系统的躯体,软件是系统的灵魂。当前进行简单的EDA应用系统开发时会用到一些常用的软件:如QuartusPrime、Vivado等,其中QuartusPrime和Vivado分别为Altera(Intel)和Xilinx(AMD)公司CPLD/FPGA集成开发软件。本项目知识图谱本项目学习目标知识目标①了解EDA集成开发软件的设计流程②掌握常用EDA集成开发软件的使用方法本项目学习目标技能目标①会使用QuartusPrime软件采用原理图或文本方式进行项目设计②会使用Vivado软件进行项目的创建、仿真、调试与下载本项目学习目标素养目标①加强实践练习,掌握一定的专业技能和职业素养②树立不懈奋斗、努力拼搏、追求卓越的人生信念1目录CONTENTS了解EDA集成开发软件2熟悉QuartusPrime原理图输入设计熟悉Vivado软件的使用43掌握QuartusPrime文本输入设计任务3.1了解EDA集成开发软件

进行EDA应用系统开发时,所使用的集成开发软件通常是由相应的CPLD/FPGA芯片厂家提供,通过使用厂家提供的软件基本上都可以完成所有的设计输入(原理图或HDL)、仿真、综合、布线、下载等工作。

从QuartusII15.1版本开始,QuartusII更名为QuartusPrime,QuartusPrime集成了新的SpectraQ综合工具,支持数百万LE单元的FPGA器件的综合;集成新的前端语言解析器,扩展了对VHDL-2008和SystemVerilog-2005的支持。Vivado设计套件是Xilinx公司(后被AMD公司收购)于2012年推出的集成设计环境。包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。3.1.1QuartusPrime软件简介QuartusPrime的主要特点和功能:●

QuartusPrime具备先进的逻辑合成和优化功能,能够将高级硬件描述语言转化为实际的逻辑电路。●

QuartusPrime提供全面的时序分析和约束功能,用户可以对电路进行时序约束设置、时序分析和时序优化。●

QuartusPrime具备先进的布局和布线功能,能够将逻辑设计映射到实际的可编程逻辑器件上。●

QuartusPrime提供强大的逻辑仿真和验证工具,用户可以对电路进行仿真和功能验证。●

QuartusPrime内置了丰富的IP核(知识产权核心)和模块库,包括处理器核、通信接口、存储器等。●QuartusPrime支持团队协作和版本管理,用户可以进行电路设计的版本控制、协作开发和团队合作。3.1.2QuartusPrime的设计流程设计输入综合布局布线时序分析仿真编程和配置功耗分析调试工程更改管理时序逼近3.1.3Vivado设计套件简介Vivado设计套件的主要特点和功能:●

Vivado集成了设计输入、‌实现、‌综合、‌布局布线、‌仿真、‌调试等各个阶段的工具,‌支持从设计到实现的整个流程。●

Vivado提供了直观、‌灵活且可重复的探测方法,‌支持RTL设计文件、‌综合设计和XDC约束文件的调试,‌以及网表插入和互动式TCL或脚本的自动运行探测。●

‌Vivado设计套件特别适用于赛灵思的“全部可编程”器件。●

Vivado提供了易于安装和使用的界面,‌支持VerilogHDL语言设计,‌并提供详细的用户指南和设计流程说明,‌适合初学者和专业设计师使用。●

Vivado设计套件通过提供这些功能和特性,‌帮助设计师在汽车、‌消费类、‌工业控制、‌有线与无线通信、‌医疗等多个应用领域实现前所未有的设计效率和性能提升。●Vivado分为Vivado标准版和Vivado企业版,其中Vivado标准版可免费下载,支持有限的器件,提供对核心特性和功能性的即时访问;Vivado企业版是设计套件的全功能版本,支持所有AMD器件。3.1.2Vivado的设计流程创建项目添加并编辑设计文件行为仿真约束文件综合实现生成文件下载到目标器件任务3.2熟悉QuartusPrime原理图输入设计QuartusPrime支持的设计输入方法很多,比如文本法(如VerilogHDL)和图形法(如原理图)。文本法使用硬件描述语言进行设计,控制灵活,适用于复杂逻辑控制和子模块的设计。图形法形象直观、简单易用,使用起来非常方便,适用于顶层和高层次模块的构造及已有器件的调用。

原理图输入是一种最直接的图形法输入方式。通过原理图输入方式,可使用系统提供的元件库和元件符号完成电路原理图,形成原理图输入文件。它多用在对系统电路很熟悉的情况或系统对时间要求较高的场合,且设计者要具有一定的硬件电路知识。其缺点是当系统功能复杂时,原理图输入方式效率低,同时原理图通用性差。在原理图编辑器中是以符号的方式将需要的逻辑器件引入,设计电路的信号输入引脚与信号输出引脚也需要以符号的方式引入。3.2.1应用基本元件库设计4选1数据选择器符号输入输出Fs1s0dcbay00×××00a×××1101××0×0b××1×110×0××0c×1××1110×××0d1×××1表3-14选1数据选择器的符号和真值表3.2.1应用基本元件库设计4选1数据选择器1.项目的创建(1)先建一个文件夹,用于保存项目中的文件。(2)创建新的项目。3.2.1应用基本元件库设计4选1数据选择器2.编辑设计原理图文件(1)新建原理图文件(2)编辑输入原理图文件3.2.1应用基本元件库设计4选1数据选择器3.项目的编译更改目标芯片3.2.1应用基本元件库设计4选1数据选择器3.项目的编译选择目标器件编程配置方式3.2.1应用基本元件库设计4选1数据选择器执行菜单命令“Processing”→“StartCompilation”

,开始执行全功能的编译

3.项目的编译3.2.1应用基本元件库设计4选1数据选择器4.功能仿真

建立波形文件。执行菜单命令“File”→“New...”,在new对话框的“Verification/DebuggingFiles”项中选择“VectorWaveformFile”,再单击“OK”按钮,QuartusPrime的主窗口界面进入波形文件编辑环境界面。

插入节点。执行菜单命令“Edit”→“Insert”→“InsertNodeorBus...”,或在波形文件编辑窗口中单击鼠标右键,在弹出的菜单中选择“InsertNodeorBus”命令

3.2.1应用基本元件库设计4选1数据选择器4.功能仿真调入节点信号。在NodeFinder对话框的“Filter”栏中选择“Pins:all”后,再单击“List”按钮,这时在窗口左边的“NodesFound:”(节点建立)框中将列出该设计项目的全部信号节点。

3.2.1应用基本元件库设计4选1数据选择器4.功能仿真设置仿真时长。执行菜单命令“Edit”→“EndTime...”,在弹出对话框的“Time:”栏中输入合适的仿真时间。3.2.1应用基本元件库设计4选1数据选择器4.功能仿真设置输入信号波形参量。3.2.1应用基本元件库设计4选1数据选择器4.功能仿真

设置仿真模式。执行菜单命令“Simulation”→“SimulationSettings”,弹出“SimulationOptions”的对话框。在此对话框点击“FunctionalSimulationSettings”选项卡,选择功能仿真,然后点击“Save”按钮。

运行仿真功能。执行菜单命令“Simulation”→“FunctionalSimulation”运行功能仿真3.2.1应用基本元件库设计4选1数据选择器5.引脚锁定和器件编程

锁定各引脚。执行菜单命令“Assignment”→“PinPlanner”,将弹出引脚锁定窗口。在引脚锁定窗口的AllPins区域的Location列中,根据实际电路连接情况对各输入、输出端口锁定引脚。3.2.1应用基本元件库设计4选1数据选择器5.引脚锁定和器件编程

未使用引脚设置。为了防止系统上电后,未用到管脚电平为GND或VCC,造成系统混乱,需将未用到管脚设置为输入高阻态。在QuartusPrime中执行菜单命令“Assignments”→“Device”→“DeviceandPinOptions…”,在弹出的对话框中将UnusedPins项目中的状态更改为“Asinputtri-stated”即可。3.2.1应用基本元件库设计4选1数据选择器5.引脚锁定和器件编程

设置编程器。在QuartusPrime中执行菜单命令“Tools”→“Programmer”,在对话框中点击“HardwareSetup...”按钮,选择USB-Blaster[USB-0]。

程序固化。设置好编程器后,在图3-15中点击“Start”按钮就可通过下载电缆将sof文件固化到目标芯片中。3.2.2应用宏函数设计十进制计数器3.2.3应用宏功能模块设计十进制计数器

调用宏功能模块。在原理图编辑界面中双击鼠标左键,将弹出Symbol对话框。在Symbol对话框中点击Libraries栏下执行“megafunctions”→“arithmetic”→“lpm_counter”,调用一个新宏功能模块LPM_COUNTER到原理图编辑界面中3.2.3应用宏功能模块设计十进制计数器

设置LPM_COUNTER引脚。LPM_COUNTER的引脚端口中,只有时钟端是必选的,需要外界提供计数信号,而其他引脚端都为可选项,当这些引脚端未选中时,其值为缺省值。

设置LPM_COUNTER参数。在SymbolProperties对话框Parameter选项卡设置LPM_MODULUS为10,表示LPM_COUNTER为十进制计数器;LPM_DIRECTION为UP,表示加计数;LPM_WIDTH为4,表示输入/输出的数据宽度为4位。其余选项使用默认值。3.2.3应用宏功能模块设计十进制计数器任务3.3熟悉QuartusPrime文本输入设计

使用VerilogHDL的文本编辑器输入方法是EDA的重要特色,QuartusPrime软件的文本输入法与图形输入法的设计步骤基本相同,此处将不再对项目建立、编译、仿真、下载等过程做详细的讲解,而只是给出相应过程的结果文件,供大家参考。3.3.1四个开关分别控制四只信号灯的文本输入设计

3.3.1四个开关分别控制四只信号灯的文本输入设计2.建立文本编辑文件3.3.1四个开关分别控制四只信号灯的文本输入设计4.观察RTL电路

在QuartusPrime中执行菜单命令“Tools”→“NetlistViewers”→“RTLViewer”,可以打开RTL电路图3.3.2应用层次法设计简易四人抢答器2.建立文本编辑文件(1)创建answer.v文件1.项目创建//抢答模块moduleanswer(s1,s2,s3,s4,s5,data);inputs1,s2,s3,s4;

//抢答按钮inputs5;

//允许抢答按钮outputreg[3:0]data;reg[3:0]d;//暂存抢答组号

regenable;

//允许抢答regflag;

//抢答锁定标志reg[3:0]s; initial

//初始化 begin flag=1'b1;

d<=4'b0000;

endalways@(s1,s2,s3,s4,s5)

begin

s<={s1,s2,s3,s4};

if(s5==1'b0)enable<=1'b1;elseif(s!=4'b1111)enable<=1'b0;

endalways@(s1,s2,s3,s4,s5)

begin

if(enable==1'b1&&flag==1'b1)

begin

if(s1==1'b0)begind=4'b0001;flag=1'b0;end

elseif(s2==1'b0)begind=4'b0010;flag=1'b0;end

elseif(s3==1'b0)begind=4'b0100;flag=1'b0;end

elseif(s4==1'b0)begind=4'b1000;flag=1'b0;endendif(s5==1'b1)begind=4'b0000;flag=1'b1;enddata<=d;endendmodule3.3.2应用层次法设计简易四人抢答器(2)创建display.v文件//显示模块moduledisplay(Din,seg,LED);input[3:0]Din;outputreg[7:0]seg;outputreg[3:0]LED;always@(Din)case(Din)

4'b0000:beginseg<=8'h3F;LED<=4'b0000;end

4'b0001:beginseg<=8'h06;LED<=4'b0001;end

4'b0010:beginseg<=8'h5B;LED<=4'b0010;end

4'b0100:beginseg<=8'h4F;LED<=4'b0100;end

4'b1000:beginseg<=8'h66;LED<=4'b1000;end

default:beginseg<=8'h00;LED<=4'b0000;end

endcaseendmodule3.3.2应用层次法设计简易四人抢答器(3)创建ex5_answer.v文件moduleex5_answer(s1,s2,s3,s4,s5,seg,LED);inputs1,s2,s3,s4,s5;output[7:0]seg;//共阴极数码管显示output[3:0]LED;//抢答成功组号指示wire[3:0]data;//元件例化调用两个子模块

answerU1(.s1(s1),.s2(s2),.s3(s3),.s4(s4),.s5(s5),.data(data));

displayU2(.Din(data),.seg(seg),.LED(LED));endmodule3.3.2应用层次法设计简易四人抢答器4.观察RTL电路3.项目的编译与时序仿真

执行菜单命令“Tools”→“NetlistViewers”→“RTLViewer”,可以打开简易四人抢答器项目的RTL电路图3.3.3应用层次法混合式设计双二选一多路选择器2.建立文本编辑文件(1)创建MUX21.v文件1.项目创建moduleMUX21(a,b,s,y);inputa,b,s;outputregy;always@(a,b,s)if(s==1'b0)y<=a; elsey<=b;endmodule(2)生成元件图形符号。执行菜单命令“File”→“Create/Update”→“CreateSymbolFilesforCurrentFile”,将生成元件图形符号3.3.3应用层次法混合式设计双二选一多路选择器4.项目的编译与时序仿真(1)创建原理图文件3.编辑设计原理图文件(2)编辑输入原理图任务3.4熟悉Vivado软件的使用

在此以使用VerilogHDL语言设计10进制计数器为例,介绍在Vivado环境下运行VerilogHDL程序的流程,包括源程序的编写、编译、仿真及下载。本例是基于Vivado2020.2版本,其他不同版本的Vivado使用方法与此类似。3.4.1项目创建并输入源程序1.创建新的项目

(1)启动Vivado进入项目向导。双击启动Vivado2020.2软件,将出现Vivado启动界面。在QuickStart栏中选择CreateProject,或者执行菜单命令“File”→“Project”→“New…”,进入图3-24所示项目向导,可进行项目的创建。

(2)设置项目名称及保存路径。在图3-24所示项目向导中点击“Next>”按钮,将进入“ProjectName”对话框,在此对话框的“Projectname:”栏中设置项目名称,“Projectlocation:”栏中指定项目的保存路径。勾选“Createprojectsubdirectory”复选框,可为此项目指定路径下建立独立的文件夹,最终整个项目保存在所设置的路径文件夹中。3.4.1项目创建并输入源程序1.创建新的项目(3)选择项目类型。在“ProjectName”对话框中设置完项目名称及保存路径后,点击“Next>”按钮,将进入图3-25所示的项目类型选择对话框。在此对话框中选择“RTLProject”类型,如果再勾选“Donotspecifysourcesatthistime”复选框,则跳过后面的(4)和(5),表示当前项目不需要添加源文件和约束文件。3.4.1项目创建并输入源程序1.创建新的项目

(4)添加源文件、选择设计语言。在图3-25中选择项目类型后,点击“Next>”按钮,将进入“AddSources”所示的对话框。在此对话框中可添加源文件并选择设计语言,其中“Targetlanguage”和“Simulatorlanguage”均选择Verilog。

(5)添加约束文件。在“AddSources”所示对话框中设置完后,点击“Next>”按钮,将进入添加约束文件对话框。对于本例,不需添加约束文件,因此直接点击“Next>”按钮。

(6)目标器件选择。在(5)中点击“Next>”按钮后,将进入如图3-26所示目标器件选择对话框。用户根据目标板,选择合适的目标器件。

(7)项目概况。在图3-26中选择目标器件并点击“Next>”按钮后,将进入“NewProjectSummary”项目概况界面。此界面对项目信息进行汇总,用户可检查相关信息是否正确,包括项目类别、源文件、所用的FPGA器件等。如果没有问题,则单击“Finish”按钮完成项目的创建。3.4.1项目创建并输入源程序3.4.1项目创建并输入源程序2.输入源设计文件

(1)打开设计文件导入窗口,并选择源文件类型。项目创建后,将显示如图3-27所示的项目管理界面。在此界面左侧窗口中选择FlowNavigator下的PROJECTMANAGER中的AddSources选项,打开“AddSources”设计文件类型选择界面。在此界面中,选择第二项“Addorcreatedesignsources”,添加或创建Verilog源文件。3.4.1项目创建并输入源程序2.输入源设计文件

(2)创建源设计文件。选择第二项“Addorcreatedesignsources”并点击“Next>”按钮后,在弹出的对话框中点击“CreateFiles”按钮,将进入CreateSourceFile对话框,如图3-28所示。在CreateSourceFile对话框中输入文件名为ex_cnt10,单击“OK”按钮后在再点击“Finish”按钮,即可完成源设计文件的创建。3.4.1项目创建并输入源程序2.输入源设计文件

(3)定义源程序模块。在图3-28界面中点击“Finish”按钮后,将进入“DefineModule”定义源程序模块对话框。在此对话框的“Modulename”栏中填写模块名称;在I/OPortDefinitions栏中填写模块端口并设置端口方向,如果端口为总线型,则勾选Bus选项,并通过MSB和LSB确定总线宽度。

(4)输入VerilogHDL源程序。在“DefineModule”对话框中完成定义模块并点击“OK”按钮后,回到项目管理界面。在此界面中间的Source窗格的DesignSource中出现新建的设计文件ex_cnt10,双击打开ex_cnt10文件,在图3-29所示的Vivado自带文本编辑器中输入以下VerilogHDL源程序代码。3.4.1项目创建并输入源程序//ex_cnt10的源程序代码moduleex_cnt10(clk,rst,LED);inputclk;inputrst;outputreg[3:0]LED;reg[3:0]cnt;always@(posedgeclk,negedgerst)begin

if(!rst)

begin

cnt<=0;LED<=4'b0;

endelseif(cnt<9)

begin

LED<=LED+4'b1;cnt<=cnt+1;

endelse

beginLED<=4'b0;cnt<=4'b0;

end

endendmodule3.4.1项目创建并输入源程序

(5)保存VerilogHDL源程序。源程序文件输入完后,在图3-29所示的Vivado自带文本编辑器上方点击

图标,保存VerilogHDL源程序,至此已完成源程序文件输入,可对源文件进行行为(功能)仿真,以测试其功能。3.4.2行为仿真

(1)创建仿真激励文件。在项目管理界面左侧窗口中点击FlowNavigator下的PROJECTMANAGER中的AddSources选项,选择第三项Addorcreatesimulationsources,单击“Next>”按钮。在弹出的对话框中点击“CreateFiles”按钮,将进入CreateSourceFile对话框。在CreateSourceFile对话框中输入激励文件名为tb_cnt10,文件类型为Verilog。单击“OK”按钮,确认添加完成后再点击“Finish”按钮,即可完成仿真激励文件的创建。

(2)定义仿真模块。创建仿真激励文件后,将进入图3-30所示的定义仿真模块对话框。在此对话框的“Modulename”栏中填写模块名称tb_cnt10即可。因为激励文件不需要对外端口,所以I/OPortDefinitions部分不需要填写。

(3)输入仿真测试程序。在图3-30中完成定义仿真模块并点击“OK”按钮后,回到项目管理界面。在此界面中间的Source窗格的DesignSource中出现新建的仿真测试文件tb_cnt10,双击打开tb_cnt10文件,在Vivado自带文本编辑器中输入以下TestBench激励代码。3.4.2行为仿真`timescale1ns/1nsmoduletb_cnt10();parameterDelay=20;regclk;regrst;wire[3:0]LED;ex_cnt10u1(.clk(clk),.rst(rst),.LED(LED));initialbeginclk=1'b0;rst=1'b0;#(Delay*2)rst=1'b1;endalwaysbegin#(Delay/2)clk=~clk;endendmodule3.4.2行为仿真

(3)启动仿真界面。在项目管理界面左侧窗口中点击FlowNavigator下的SIMULATION中的RunSimulation选项,并选择RunBehavioralSimulation,启动仿真界面,如图3-31所示。3.4.2行为仿真

(4)仿真设置。在波形仿真时,可通过仿真工具条对仿真进行设置和操作。3.4.2行为仿真

(5)仿真分析。最终得到的仿真波形如图3-33所示,通过观看该波形可检查此波形是否与所设计的功能相符,以验证源设计文件的正确性。3.4.3综合与引脚约束1.编译与综合

(1)综合编译。在项目管理界面左侧窗口点击FlowNavigator下的SYNTHESIS中的RunSynthesis选项,对当前项目进行综合。在Options中选择“Launchrunsonlocalhost”单选项,在“Numberofjobs”中选择最大值(此处为8),以缩短编译时间。若勾选“Don’tshowthisdialogagain”,则下次就不会弹出该对话框直接进行综合。设置完后,单击“OK”按钮进行综合编译。综合时,软件右上角有实时动态。综合后,弹出如图3-34所示综合结束对话框,在此对话框中点击“Cancel”即可完成综合过程。3.4.3综合与引脚约束1.编译与综合

(2)观看综合后的电路图。综合编译成功后,在项目管理界面左侧窗口点击FlowNavigator→SYNTHESIS→OpenSynthesizedDesign→Schematic,可以查看综合后的电路图。本例综合后的电路如图3-35所示。

(3)观看RTL的电路图。综合编译成功后,在项目管理界面左侧窗口点击FlowNavigator→RTLANALYSIS→OpenElaboratedDesign→Schematic,可以查看综合后的RTL电路图。3.4.3综合与引脚约束2.添加引脚约束

第一种方法的操作如下:对项目进行综合时,在弹出的图3-34所示对话框中选择第二项OpenSynthesizedDesign;或者综合编译成功后,在项目管理界面左侧窗口点击FlowNavigator→SYNTHESIS→OpenSynthesizedDesign,然后在右下方的选项卡中切换I/OPorts栏,再在对应的信号后输入相应的引脚参数,如图3-36所示。添加完引脚约束后,需对文件进行保存。3.4.3综合与引脚约束2.添加引脚约束

第二种方法是通过XDC约束文件实现,XDC(XilinxDesignConstraints)是Vivado采用约束文件格式,它是在业界广泛采用的SDC(SynopsysDesignConstraints)格式基础上加入Xilinx自身的一些物理约束来实现的。具体操作操作下:

(1)创建约束文件。在项目管理界面左侧窗口中点击FlowNavigator下的PROJECTMANAGER中的AddSources选项,选择第一项Addorcreateconstraints,单击“Next>”按钮。在弹出的对话框中点击“CreateFiles”按钮,将进入CreateConstraintsFile对话框。在CreateConstraintsFile对话框中输入XDC文件名为ex_cnt10。单击“OK”按钮,确认添加完成后再点击“Finish”按钮,即可完成约束文件的创建。

(2)输入约束内容。在C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论