Vivado 开发教程(四) 行为仿真

资料大小: 350.3KB

所需积分: 0

下载次数:

用户评论: 0条评论,查看

上传日期: 2021-03-01

上 传 者: 发烧友他上传的所有资料

资料介绍

标签:Vivado(309)

作者:falwat

版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/falwat/article/details/86171571

本文介绍如何在教程(三)基础上,关联ELF输出文件并使用vivado对系统进行行为仿真。

关联ELF文件
在vivado开发教程(三)在SDK中创建应用工程中,新建的工程经构建最终会生成ELF输出文件.ELF文件是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件(参考:百度百科).可以在教程(三)中新建的"test"工程和导入的例程下找到.

切回Vivado,在块设计文件"system.bd"上右键,选择菜单"AssociateELFFiles..."关联ELF文件.

在弹出的对话框中,点击"SimulaTIonSources|sim_1|system_i|microblaze_0"树右侧的"..."按钮,弹出选择文件对话框.

点击"AddFiles..."按钮,添加ELF文件.

切换目录至"D:/Projects/test/test.sdk/test_bsp_xgpio_low_level_example_1/Debug",选中"test_bsp_xgpio_low_level_example_1.elf",添加至列表中,选中新加入的ELF文件并点击"OK"完成.

在工程管理视图|"Sources"窗口|"SimulaTIonSources"文件集|sim_1|ELF下能够看到刚刚关联上去的ELF文件.

新建激励文件
点击"Sources"窗口顶部的"+"按钮,打开添加源文件对话框.选中"AddorcreatesimulaTIonsources",点击"Next"继续.

点击"CreateFile"按钮,在创建源文件对话框中,输入文件名.点击"OK",点击"Finish".

在弹出的"DefineModule"对话框中,点击"OK"即可.激励文件不需要有定义输入输出端口.
双击打开"sim_system.v"文件,复制"system_wrapper.v"文件中的如下内容到"sim_system.v"的模块中.

wire[7:0]led_8bits_tri_o;wirereset;wirers232_uart_rxd;wirers232_uart_txd;wiresysclk_125_clk_n;wiresysclk_125_clk_p;systemsystem_i(.led_8bits_tri_o(led_8bits_tri_o),.reset(reset),.rs232_uart_rxd(rs232_uart_rxd),.rs232_uart_txd(rs232_uart_txd),.sysclk_125_clk_n(sysclk_125_clk_n),.sysclk_125_clk_p(sysclk_125_clk_p));

修改sim_system.v"文件中,system_i的输入信号为"reg"类型,编写"iniTIal"块对输入信号进行初始化,为时钟信号编写激励,将"timescale"设置为"1ns/1ns".最终生成的代码如下所示:

`timescale1ns/1nsmodulesim_system;wire[7:0]led_8bits_tri_o;regreset;regrs232_uart_rxd;wirers232_uart_txd;regsysclk_125_clk_n;wiresysclk_125_clk_p=~sysclk_125_clk_n;systemsystem_i(.led_8bits_tri_o(led_8bits_tri_o),.reset(reset),.rs232_uart_rxd(rs232_uart_rxd),.rs232_uart_txd(rs232_uart_txd),.sysclk_125_clk_n(sysclk_125_clk_n),.sysclk_125_clk_p(sysclk_125_clk_p));initialbeginreset=1;rs232_uart_rxd=1;sysclk_125_clk_n=0;#100;reset=0;//复位完成endalways#4sysclk_125_clk_n=~sysclk_125_clk_n;//125Mendmodule

从"Source"窗口中,选中激励文件"sim_system.v",右键选择菜单"SetasTop",将激励文件设置为顶层.

点击左侧"FlowNavigator"工具窗口中的"Simulation"|"RunSimulation",点击"RunBehavioralSimulation",运行行为仿真.

编译成功后会自动打开仿真("SIMULATION")视图,主工具栏会增加如下几个工具图标:

为了能够快速看出仿真效果,缩短仿真时间,在SDK中修改"xgpio_low_level_example.c"文件中的宏常量"LED_DELAY"改为1000并保存,SDK在保存后会自动进行编译,更新ELF文件.

#defineLED_DELAY1000

切回Vivado,点击重新仿真("RelaunchSimulation")按钮.
设置仿真时间为500us,点击运行指定时间("Runfor500us")按钮.最终的仿真时序图如下所示.

用户评论

查看全部 条评论

发表评论请先 , 还没有账号?免费注册

发表评论

用户评论
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
上传电子资料