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
    +关注

    关注

    19

    文章

    812

    浏览量

    66482
收藏 人收藏

    评论

    相关推荐

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell编程入门之提取字符设置rtc时间

    awk用法 awk是一款文本处理工具,通常在Unix和Linux操作系统中使用,用于以行为单位对文本进行处理和操作。它可以读取输入文本,对其进行处理,生成报表、统计信息等,并将结果
    发表于 12-12 17:26

    飞凌嵌入式ElfBoard ELF 1板卡-shell编程入门之提取字符设置rtc时间

    awk用法 awk是一款文本处理工具,通常在Unix和Linux操作系统中使用,用于以行为单位对文本进行处理和操作。它可以读取输入文本,对其进行处理,生成报表、统计信息等,并将结果
    发表于 12-11 16:49

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux C接口编程入门之实战程序

    设置文件写的位置,write()函数将内容写入输出文件。循环读取和写入过程会一直进行,直到read()函数返回值等于或者小于0,表示已经读取完整个文件。然后,关闭输入
    发表于 10-18 09:33

    飞凌嵌入式ElfBoard ELF 1板卡-应用编程示例控制LED灯之sysfs文件系统

    上下拉即可。也可以通过Linux中的pinctrl子系统和GPIO子系统,通过配置引脚和系统提供的API进行控制。 而Linux系统通过sy
    发表于 10-18 09:31

    飞凌嵌入式ElfBoard ELF 1板卡-Linux C接口编程入门之实战程序

    设置文件写的位置,write()函数将内容写入输出文件。循环读取和写入过程会一直进行,直到read()函数返回值等于或者小于0,表示已经读取完整个文件。然后,关闭输入
    发表于 10-17 09:06

    飞凌嵌入式ElfBoard ELF 1板卡-开发环境搭建之windows和ubuntu系统互传文件

    linux-4.1.15-elf1.tar.bz2、文件系统(本节以rootfs.tar.bz2为例)、命令行测试程序elf1_cmd_wdt.c放到Windows主机的共享文件夹后。
    发表于 09-24 10:15

    使用PSpice仿真器对TI智能高侧开关中的热行为进行建模

    电子发烧友网站提供《使用PSpice仿真器对TI智能高侧开关中的热行为进行建模.pdf》资料免费下载
    发表于 09-24 09:26 0次下载
    使用PSpice<b class='flag-5'>仿真</b>器对TI智能高侧开关中的热<b class='flag-5'>行为</b><b class='flag-5'>进行</b>建模

    飞凌ElfBoard ELF 1板卡-如何在ELF 1开发板上实现对java的支持

    路径/home/root/jdk1.8.0_151。 2.打开/etc/profile配置文件进行编辑root@ELF1:~# vi /etc/profile在文件末尾添加以下内容:
    发表于 03-20 09:51

    fpga仿真文件怎么写

    首先,你需要选择一个FPGA仿真软件,如ModelSim、Vivado、Quartus II等。这些软件都提供了强大的仿真功能,可以帮助你验证FPGA设计的正确性。
    的头像 发表于 03-15 14:00 796次阅读

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

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

    arcgis中如何关联两个属性表

    字段,这是进行关联的前提。关联字段是两个表中共有的字段,通过这个字段可以将两个表中的数据进行匹配和关联。 打开ArcMap软件,加载需要
    的头像 发表于 02-25 11:01 4195次阅读

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

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

    如何加载ELF烧录文件

    请问在如下的界面中,如何加载ELF烧录文件
    发表于 02-01 08:25

    ELF 1技术贴|如何支持exFAT和NTFS格式

    Linux操作系统通常能够自动识别挂载FAT32格式的磁盘,然而由于FAT32文件系统的限制,单个文件的最大存储容量不得超过4GB。为了解决大文件
    的头像 发表于 01-31 16:37 718次阅读
    <b class='flag-5'>ELF</b> 1技术贴|如何支持exFAT和NTFS格式

    STM32CubeIDE找不到elf

    库(STM32Cube),提供了丰富的开发工具和功能,帮助开发者更快、更方便地开发嵌入式应用。 在使用STM32CubeIDE开发STM32应用程序时,有时会遇到找不到elf文件的问题。本文将详细介绍在
    的头像 发表于 01-02 16:32 1797次阅读