0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何关联ELF输出文件并使用vivado对系统进行行为仿真

电子设计 来源:电子设计 作者:电子设计 2022-02-08 11:18 次阅读

作者:falwat

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/falwat/article/details/86171571

本文介绍如何在教程(三)基础上, 关联ELF输出文件并使用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 / 1ns

module 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 begin

reset = 1;

rs232_uart_rxd = 1;

sysclk_125_clk_n = 0;

#100;

reset = 0; // 复位完成

end

always #4 sysclk_125_clk_n = ~sysclk_125_clk_n; // 125M

endmodule

从”Source“窗口中,选中激励文件”sim_system.v“, 右键选择菜单”Set as Top“, 将激励文件设置为顶层。

o4YBAGAKDX2ANnkqAAB_BXrXtdQ397.png

点击左侧”Flow Navigator“工具窗口中的”Simulation“ | ”Run Simulation“, 点击”Run Behavioral Simulation“, 运行行为仿真。

o4YBAGAKDbuAWrxzAAAmKOa_AGY010.png

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

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

#define LED_DELAY 1000

切回Vivado, 点击重新仿真(”Relaunch Simulation“)按钮。

设置仿真时间为500us, 点击运行指定时间(”Run for 500us“)按钮。最终的仿真时序图如下所示。

审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65102
收藏 人收藏

    评论

    相关推荐

    PCB设计输出与制造文件全览

    这些连接器的方向可以在STEP文件中轻松显示。这可以包含在您的标准PCB设计输出文件中,也可以通过装配层中适当大小的轮廓来反映。
    发表于 03-08 14:40 417次阅读
    PCB设计<b class='flag-5'>输出</b>与制造<b class='flag-5'>文件</b>全览

    通过Bifaces生成的elf文件,如何在HighTec集成的UDE中进行仿真

    通过Bifaces生成的elf文件,如何在HighTec集成的UDE中进行仿真
    发表于 02-18 07:51

    怎样单独使用modelsim仿真xilinx呢?

    直接在modelsim软件内执行.do文件进行仿真,不通过vivado调用modelsim,vivado仅用于生成IP核。
    的头像 发表于 12-04 18:26 591次阅读
    怎样单独使用modelsim<b class='flag-5'>仿真</b>xilinx呢?

    sigmastudio的导出文件,图形化编程导出文件的地址是如何定义的?

    关于sigmastdio的导出文件(用来控制单片机)中,对于修改寄存器的地址是数据手册可查的,但是发现关于图形化编程的导出文件的地址不是固定的,请问后者的地址是如何定义的?有没有办法提供相关的资料?
    发表于 11-29 06:10

    嵌入式学习——ElfBoard ELF1板卡 重新打包文件系统的方法

    1.拷贝ELF1开发板资料包\\\\04-烧写镜像\\\\04-0 eMMC镜像目录下的rootfs.tar.bz2到开发环境下的任意目录,比如/home/elf。 2.创建存放目标文件系统的目录
    发表于 11-06 09:55

    i.MX6ULL——ElfBoard ELF1板卡 如何重新打包文件系统

    1.拷贝ELF1开发板资料包\\\\04-烧写镜像\\\\04-0 eMMC镜像目录下的rootfs.tar.bz2到开发环境下的任意目录,比如/home/elf。 2.创建存放目标文件系统的目录
    发表于 11-06 09:52

    如何用Python实现Vivado和ModelSim仿真自动化?

    我们在Windows系统下使用Vivado的默认设置调用第三方仿真器比如ModelSim进行仿真时,一开始
    的头像 发表于 09-13 09:23 761次阅读
    如何用Python实现<b class='flag-5'>Vivado</b>和ModelSim<b class='flag-5'>仿真</b>自动化?

    Vivado使用指南

    :Xilinx提供的第三方TCL脚本库的窗口;3.1.3 信息中心Documantationand Turorials:文档中心连接口,关联到DocNav,筛选出Vivado的使用手册;Quick
    发表于 09-06 17:55

    关于E203v2使用vivado进行仿真跑helloworld的时钟频率问题

    vivado进行e203v2的行为仿真,跑一个c语言编写的helloworld程序,helloworld程序是用nuclei studio里面的程序模板生成的。在
    发表于 08-11 11:18

    vivado仿真时显示文件没添加是为什么?

    vivado进行仿真文件添加有错误,按论坛里以前的建议把文件改成了全局变量,但还是显示无法添加。
    发表于 08-11 10:21

    使用vivado仿真仿真时,modelsim的transcript界面无法输出C程序的printf语句是为什么?

    我现在将vivado和modelsim做了联合仿真,用来仿真蜂鸟e203协处理器扩展实现的功能。现在的问题是:使用vivado仿真
    发表于 08-11 06:44

    Vivado调用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以调用Modelsim进行仿真,下面将介绍如何对vivado
    的头像 发表于 07-24 09:04 2009次阅读
    <b class='flag-5'>Vivado</b>调用Modelsim<b class='flag-5'>仿真</b>

    vivado仿真流程

    vivado开发软件自带了仿真工具,下面将介绍vivado仿真流程,方便初学者进行仿真实验。
    的头像 发表于 07-18 09:06 2568次阅读
    <b class='flag-5'>vivado</b><b class='flag-5'>仿真</b>流程

    记录VCS仿真的IP核只有VHDL文件的解决方法

    使用VCS仿真Vivado里面的IP核时,如果Vivado的IP核的仿真文件只有VHDL时,仿真
    的头像 发表于 06-06 11:15 1442次阅读
    记录VCS<b class='flag-5'>仿真</b>的IP核只有VHDL<b class='flag-5'>文件</b>的解决方法

    怎么设置SEGGER Embedded Studio编译输出文件为*.bin格式?

    怎么设置SEGGER Embedded Studio编译输出文件为*.bin格式
    发表于 05-26 06:58