基于FPGA的自主可控SOC设计 课件 2.5 VIVADO 软件使用_第1页
基于FPGA的自主可控SOC设计 课件 2.5 VIVADO 软件使用_第2页
基于FPGA的自主可控SOC设计 课件 2.5 VIVADO 软件使用_第3页
基于FPGA的自主可控SOC设计 课件 2.5 VIVADO 软件使用_第4页
基于FPGA的自主可控SOC设计 课件 2.5 VIVADO 软件使用_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

Vivado使用方法一、软件安装二、建立工程三、建立仿真环境四、为工程添加约束五、综合、布局布线和生成bit文件六、debug一、软件安装一、软件安装一、软件安装一、软件安装一、软件安装二、建立工程二、建立工程二、建立工程二、建立工程二、建立工程添加一个模块设计二、建立工程添加模块设计后,在设计区域提示添加IP,点击“addIP”添加IP或者点击工具栏图标添加。添加IP二、建立工程为工程添加HDL代码,点击Addsource添加hdl文件。二、建立工程添加HDL文件时可以选择creat一个新的文件也可以add一个本地已经写好的HDL代码。二、建立工程Creat一个新的模块,需要在对话框内添加模块名称,并且可以选择性的在下面添加主要的端口名称和属性。二、建立工程当模块化设计完成后,如果此模块仅是一个工程中的子模块,我们需要将模块化设计的模块creat出一个HDL文件,然后添加到工程文件下面,并在顶层中调用此模块。二、建立工程三、建立仿真环境

在对设计好的工程进行仿真的时候可以使用vivado自带的仿真工具仿真也可以使用第三方仿真工具仿真。使用vivado自带仿真工具仿真时只需要编写测试激励就可以直接利用vivado进行仿真。当使用modelsim等第三方仿真工具仿真时,我们需要提前对xilinx的仿真库进行编译。在vivado中编译仿真库和ISE稍有不同,ISE提供的可视化的库文件编译环境,而在vivado设计环境下,编译仿真库需要使用TCL脚本进行编译。三、建立仿真环境

在tcl命令窗口,我们敲入help可以获得关于vivado软件操作的帮助说明。此时我们先输入help,然后在给出的帮助主题中选择simulation主题继续查找帮助。在simulation主题下给出的帮助包括添加文件,编译仿真库和配置编译仿真文件等等多个帮助主题,我们选择编译仿真库主题。三、建立仿真环境

输入帮助命令后,vivado将在提示栏给出详细的库文件编译命令和需要编译的所有xilinx库文件名等信息。我们可以根据需求进行库文件编译,例如如下编译方式:compile_simlib-directoryC:/Xilinx_vivado/XLX_LIB_FOR_MODELSIM/VIVADO_2014-simulatormodelsim-familyzynq-familyvirtex7-familykintex7-familyartix7-libraryall-languageall三、建立仿真环境

在完成库文件编译后,我们就可以对modelsim的配置文件根据库文件编译的结果进行修改,将modelsim中配置文件增加xilinx库名称和库文件路径。在编译完成仿真库后,使用vivado调用modelsim的方式进行仿真,需要在vivado软件中指定仿真工具和仿真库文件的路径。也可以自己编写脚本利用脚本启动modelsim进行仿真。三、建立仿真环境Vivado调用modelsim仿真时,指定仿真工具所在的路径三、建立仿真环境对仿真工具和仿真库文件路径进行设定三、建立仿真环境完成库文件编译和对vivado的设置后,可以点runsimulation并选择需要的仿真方式对自己的设计代码进行仿真验证。三、建立仿真环境2.Testbenchtestbench是一种验证的手段。首先,任何设计都是会有输入输出的。但是在软环境中没有激励输入,也不会对你设计的输出正确性进行评估。Testbench是模拟实际环境的输入激励和输出校验的一种“虚拟平台”。在这个平台上你可以对你的设计从软件层面上进行分析和校验。三、建立仿真环境2.Testbench1)testbecnh编写方法一个最基本的Testbench包含三个部分,信号定义、模块接口和功能代码。编写Testbench的三个基本步骤:(1)对被测试设计的顶层接口进行例化;(2)给被测试设计的输入接口添加激励;(3)判断被测试设计的输出相应是否满足设计要求。三、建立仿真环境2.Testbench2)通用模板--VHDL测试平台文件(testbench)的基本结构---引用库文件

libraryieee;

useieee.std_logic_1164.all;---空端口

entitytest_benchis--测试平台文件的空实体(不需要端口定义)

endtest_bench;

三、建立仿真环境2.Testbench2)通用模板architecturetb_behavioroftest_benchis---调用被测试元件

componententity_under_test--被测试元件的声明

port(

list-of-ports-theri-types-and-modes);

endcomponent;三、建立仿真环境2.Testbench

begin-----被测元件例化

instantiation:entity_under_testportmap(

port-associations);----时钟信号产生

process()--产生时钟信号

……

endprocess;---其他信号产生

process()--产生激励源

……

endprocess;

endtb_behavior;libraryieee;--也可以加入其它的库;useieee.std_logic_1164.all;entitytestbench--testbench是测试文件的名字;endtestbench;architecturearch_testoftestbenchis signalclk:std_logic:='0'; signalrst:std_logic:='1'; ......; signalqout:std_logic_vector(3downto0); ......; constantclk_period:time:=20ns; ......; componentsample_name--待测试电路模块的名字;

port( clk:instd_logic; rst:instd_logic; ......; qout:outstd_logic_vector(3downto0); ......); endcomponentsample_name;begin UUT:sample_name portmap(clk,rst,...,qout,...); clk<=notclkafterclk_period/2;--生成占空比为50%的时钟; process--产生激励源的模块; begin endprocess;endarch_test;三、建立仿真环境2.Testbench2)通用模板三、建立仿真环境2.Testbench--激励信号的产生方式

--1.以一定的离散时间间隔产生激励信号的波形,也称为时序变化的激励型号eg:复位信号激励产生tb:process--激励信号

begin

waitfor20ns;

reset<=‘1’;

waitfor20ns;

reset<=‘0’;

waitfor200ns;

wait;--willwaitforever;

endprocess;3)激励产生三、建立仿真环境2.Testbench3)激励产生

--2.基于实体的状态产生激励信号,也就是说基于实体的输出响应产生激励信号tb:process--激励信号

beginif(Ready='1')then-----实体状态输出

waitfor20ns;

Dout<=‘1’;else

waitfor20ns;

Dout<=‘1’;

waitfor200ns;

wait;--willwaitforever;endif;

endprocess;三、建立仿真环境2.Testbench3)激励产生

--3.周期性的激励信号,如时钟

--eg.产生周期时钟信号,process语句方法1:clk<=notclkafterclk_period/2;-----结构体内循环执行。方法2:

clk_gen1:process

constanclk_period:=40ns;

begin

clk=’1‘;

waitforclk_period/2;

clk=’0‘;

waitforclk_period/2;

endprocess;方法3:产生不对称时钟信号w_clk<=’0‘afterperiod/4whenw_clk=’1‘else’1‘after3*period/4whenw_clk=’0‘else’0‘;三、建立仿真环境2.Testbench3)激励产生

--2.基于实体的状态产生激励信号,也就是说基于实体的输出响应产生激励信号tb:process--激励信号

beginif(Ready='1')then-----实体状态输出

waitfor20ns;

Dout<=‘1’;else

waitfor20ns;

Dout<=‘1’;

waitfor200ns;

wait;--willwaitforever;endif;

endprocess;三、建立仿真环境2.Testbench4)等待语句(1)wait:无限等待,表示永远挂起,对于汉语wait语句的进程来说,进程在一开始执行一次后面就不执行了;(2)waiton信号表:敏感信号等待语句,等待敏感信号表中的信号发生变化才执行;(3)waituntil表达式:条件等待语句,当条件表达式中所含的信号发生了变化,并为true时,进程才脱离等待状态;(4)waitfor时间表达式:此语句中声明了一个时间段,从从执行到当前的wait语句开始,只要这个时间段内,进程处于等待状态,超过这段时间,进程自动恢复执行该等待语句的下一条语句。waitfor5ns四、为工程添加约束1、使用xdc文件添加约束2、使用vivado提供的约束工具添加约束1、使用XDC文件添加约束当所有功能模块的文件的代码编写完成后我们需要对我们的设计添加各种约束文件,约束文件包括管教约束,时序约束和区域约束。添加约束文件可以通过直接编写约束文件完成也可以利用vivado提供的添加窗口完成。1、使用XDC文件添加约束添加约束文件可以选择creat一个新的约束文件也可以选择添加原有约束文件。1、使用XDC文件添加约束添加好文件后,可以打开文件进行编辑,进行时序约束、管脚约束和区域约束。2、使用软件约束工具添加约束Vivado除为我们提供了添加约束文件的方法来为工程添加约束外,还提供了窗口界面操作的办法来提供约束,我们可以通过点击implementationdesign下面的各个功能按钮来添加约束。1)添加时序约束2、使用软件约束工具添加约束1)添加时序约束2、使用软件约束工具添加约束2)添加管脚约束2、使用软件约束工具添加约束2)添加管脚约束2、使用软件约束工具添加约束3)添加区域约束2、使用软件约束工具添加约束五、综合、布局布线和生成bit文件

当完成代码和必要的约束后,我们就可以开始进行编译综合和实现了。完成这些只需要按照vivado开发工具提供的流程逐步进行即可。也可以通过TCL脚本输入命令控制。六、debug

在对程序进行debug时,vivado为我们提供了ILA工具,他和ISE下的chipscope同样可以用JTAG的方式

温馨提示

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

评论

0/150

提交评论