vivado 开发教程(四) 行为仿真
本文介绍如何在教程(三)基础上, 关联ELF输出文件并使用vivado对系统进行行为仿真. 点击vivado 开发教程 汇总, 查看教程的其他内容.
关联ELF 文件
- 在vivado 开发教程(三) 在SDK中创建应用工程 中, 新建的工程经构建最终会生成ELF 输出文件. ELF 文件是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件(参考:百度百科). 可以在教程(三)中新建的"test"工程和导入的例程下找到.
- 切回Vivado, 在块设计文件"system.bd"上右键,选择菜单"Associate ELF Files..."关联ELF文件.
- 在弹出的对话框中,点击"Simulation Sources | sim_1 | system_i | microblaze_0 "树右侧的"..."按钮, 弹出选择文件对话框.
- 点击"Add Files..." 按钮,添加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"窗口 | "Simulation Sources"文件集 | sim_1 | ELF 下能够看到刚刚关联上去的ELF文件.
新建激励文件
- 点击"Sources"窗口顶部的"+"按钮, 打开添加源文件对话框. 选中"Add or create simulation sources", 点击"Next"继续.
- 点击"Create File"按钮, 在创建源文件对话框中, 输入文件名. 点击"OK", 点击"Finish".
- 在弹出的"Define Module"对话框中, 点击"OK"即可. 激励文件不需要有定义输入输出端口.
- 双击打开"sim_system.v"文件, 复制"system_wrapper.v"文件中的如下内容到"sim_system.v"的模块中.
wire [7:0]led_8bits_tri_o;wire reset;wire rs232_uart_rxd;wire rs232_uart_txd;wire sysclk_125_clk_n;wire sysclk_125_clk_p;system system_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". 最终生成的代码如下所示:
`timescale 1ns / 1nsmodule sim_system;wire [7:0]led_8bits_tri_o;reg reset;reg rs232_uart_rxd;wire rs232_uart_txd;reg sysclk_125_clk_n;wire sysclk_125_clk_p = ~sysclk_125_clk_n;system system_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));initial beginreset = 1;rs232_uart_rxd = 1;sysclk_125_clk_n = 0;#100;reset = 0; // 复位完成endalways #4 sysclk_125_clk_n = ~sysclk_125_clk_n; // 125Mendmodule
- 从"Source"窗口中,选中激励文件"sim_system.v", 右键选择菜单"Set as Top", 将激励文件设置为顶层.
- 点击左侧"Flow Navigator"工具窗口中的"Simulation" | "Run Simulation", 点击"Run Behavioral Simulation", 运行行为仿真.
- 编译成功后会自动打开仿真("SIMULATION")视图, 主工具栏会增加如下几个工具图标:
- 为了能够快速看出仿真效果,缩短仿真时间, 在SDK 中修改"xgpio_low_level_example.c"文件中的宏常量"LED_DELAY" 改为1000 并保存, SDK在保存后会自动进行编译, 更新ELF文件.
#define LED_DELAY 1000
- 切回Vivado, 点击重新仿真("Relaunch Simulation")按钮.
- 设置仿真时间为500us, 点击运行指定时间("Run for 500us")按钮.最终的仿真时序图如下所示.
vivado 开发教程(四) 行为仿真相关推荐
- 开发教程(四) MIP组件平台使用说明
组件审核平台用于上传 MIP 组件.经过自动校验之后,提交审核,通过审核的组件会定时推送到线上,供网站使用. 平台地址:https://www.mipengine.org/platform/ 1. 使 ...
- ROS1结合自动驾驶数据集Kitti开发教程(四)画出自己车子模型以及照相机视野
注意: 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识 ubuntu版本:20.04 ros版本:noetic 课程回顾 ROS1结合自动驾驶数据集Kitti开发教程(一)K ...
- 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo
更多微信技术交流,请加QQ群:289709451.287090836 前几章中我讲解了微信开发平台提供第三方平台的好处,和使用流程,如果你看了我的文章相信你对开放平台有了初步的了解,但是在实 ...
- IntelliJ IDEA 12详细开发教程(四) 搭建Android应用开发环境与Android项目创建
今天我要给大家讲的是使用Intellij Idea开发Android应用开发.自我感觉使用Idea来进行Android开发要比在Eclipse下开发简单很多. (一)打开网站:http://devel ...
- 安卓USB开发教程 四 安卓 AOA
Android 开放性配件协议(AOA) Android 开放性配件协议(AOA)支持允许外部 USB 硬件(Android USB 配件)与工作在配件模式下的 Android 设备进行交互.当处于配 ...
- Kinect开发教程四:用Kinect控制鼠标玩水果忍者PC版
最近Kinect连接Xbox玩水果忍者的视频非常红火,可惜小斤只有本本和Kinect,没法玩Xbox上的体感游戏.幸运的是,寻寻觅觅后,小斤发现水果忍者有PC版本,既然上一个教程我们已经可以让Kine ...
- Android 日历开发教程[四]
这节开始制作 Activity 视图. 视图的设计,在原理上可以借鉴 HTML 设计,目前大家的共识是内容与样式分离,也就是内容在 HTML 文件中定义,样式在 CSS 文件中对应. 同样,Andro ...
- Dapp开发教程四 Asch Dapp Dice Game
这个dice game与上一个mini dao相比,代码规模大了许多,功能也复杂了很多,创建了三个合约类型,彼此之间有依赖关系,合约的执行还要依赖历史交易数据. 但是我觉得在原理上与上一个项目相比,并 ...
- ODOO13 开发教程四 模型中的字段
在这篇文章中,我将整理出odoo中不同类型的字段及其它们的使用.在开始之前,我必须再给大家讲讲蛋挞王子的故事. 在上节中,小程序猿为蛋挞王子做了一个图书管理的模块,并进行了安装测试.但很明显,模块太简 ...
- 微信公众号开发教程(四)自定义菜单
作者:陈惠,叩丁狼教育高级讲师.原创文章,转载请注明出处. 本篇文章,我们来做一个最常见的,也是用户最喜欢使用的功能--自定义菜单. 因为菜单只需要点一下就可以获取需要的信息,无需用户手动输入关键字, ...
最新文章
- Python 自带IDLE中调试程序
- mesh和wifi中继的区别_什么是MESH WIFI?通俗易懂告诉你为什么需要它
- 基于深度学习的图像语义分割技术概述之4常用方法
- 看完让你理解WebSocket原理
- 算法(19)-leetcode-剑指offer3
- python logging模块学习
- mysql中如何迁移数据文件,迁移mysql数据文件存放位置
- read the function in so lib on ubuntu
- 诺基亚n9支不支持java_诺基亚N9支持720p播放吗
- DSP入门必看(非常好的DSP扫盲文章)
- xlsxwriter去掉网格线_python之xlsxwriter模块(可操作xls/xlsx格式文件)
- 编写个人所得税计算程序
- 智齿科技B+轮获投1.5亿,为智能云客服领域最大单笔融资
- python arp断网攻击_arp断网攻击,手把手教你arp断网攻击怎么解决
- 小熊派使SPI驱动TFT-LCD(ST7789)显示试验
- 【TUG 话题探讨 005】TiDB 生态工具(DM、TiCDC等)使用场景及常见问题
- 第一章 C语言与内存
- 信号与系统难点之(双边、单边)Z变换的时移性质
- 全国天气预报信息 API 接口
- 学习笔记(二):使用 TensorFlow 的起始步骤(First Steps with TensorFlow)