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

    文章

    846

    浏览量

    70475
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用 NucleiStudio IDE 和 vivado 进行软硬件联合仿真

    本文利用NucleiStudio IDE 和 vivado 对 NICE demo协处理器进行软硬件联合仿真。 1. 下载demo_nice例程:https://github.com
    发表于 11-05 13:56

    Hbirdv2在vivado2018.3上的仿真工作

    设置为顶层文件进行仿真 5、观察波形,检查其结果是否与预期一致 四、总结 本次分享主要是对在vivado中对蜂鸟E203行为
    发表于 10-31 08:43

    Vivado仿真e203_hbirdv2跑whetstone跑分(开源)

    环境:Vivado2018.3、NucleiStudio_IDE_202102-win64 内容:Vivado仿真e203_hbirdv2跑whetstone跑分 以下提供可以在Viv
    发表于 10-27 07:21

    VIVADO中对NICE进行波形仿真的小问题的解决

    分别如下图 可以看到,输出运算结果的pritnf函数被#ifdef所定义,所以我们如果想在VIVADO的控制台看到输出结果,要先在main.c中定义DEBUG_INFO,如下图 这样,将编译后生成的.verilog
    发表于 10-27 06:41

    没有开发板的情况,在Vivado进行蜂鸟E203的基础内核的drystone跑分

    e203_hbirdv2-masterriscv-toolsfpga_test4simdhrystone4simdhrystone.verilog,然后这里我们为了保证在仿真时有访问文件的权限,因此我们首先必须将上述文件与tb.
    发表于 10-27 06:35

    vivado进行benchmark跑分(微架构优化之前)

    /community-topic-id-1266.html 在这一步出错)不要修改170行左右testcase语句: 如果修改保存文件行为仿真中会
    发表于 10-24 09:39

    没有开发板的情况下,在Vivado进行蜂鸟E203的基础内核的drystone跑分

    e203_hbirdv2-masterriscv-toolsfpga_test4simdhrystone4simdhrystone.verilog,然后这里我们为了保证在仿真时有访问文件的权限,因此我们首先必须将上述文件与tb.
    发表于 10-24 07:36

    vcs和vivado联合仿真

    我们在做参赛课题的过程中发现,上FPGA开发板跑系统时,有时需要添加vivado的ip核。但是vivado仿真比较慢,vcs也不能直接对添加了viv
    发表于 10-24 07:28

    如何在vivado上基于二进制码对指令运行状态进行判断

    a0 -8 为例 获取相应的二进制码将其转换为16进制导入vivado,方法就是将代码文件修改为.verilog文件并存入蜂鸟的tb文件夹,在vi
    发表于 10-24 06:46

    vivado上基于二进制码对指令运行状态进行判断

    a0 -8 为例 获取相应的二进制码将其转换为16进制导入vivado,方法就是将代码文件修改为.verilog文件并存入蜂鸟的tb文件夹,在vi
    发表于 10-24 06:31

    Nucleistudio+Vivado协同仿真教程

    (e203_hbirdv2-mastere203_hbirdv2-mastertbtb_top.v),然后修改我们要验证的仿真文件对应路径, 最后在Vivado进行行为
    发表于 10-23 06:22

    vivado仿真时GSR信号的影响

    利用vivado进行设计xilinx FPGA时,写完设计代码和仿真代码后,点击run simulation(启动modelsim进行仿真
    的头像 发表于 08-30 14:22 1017次阅读
    <b class='flag-5'>vivado</b><b class='flag-5'>仿真</b>时GSR信号的影响

    ESP32驱动SPIFFS进行文件操作

    本篇文章介绍如何在ESP32开发板上使用SPIFFS(SPI Flash File System)进行文件操作。看下如何初始化SPIFFS文件系统、读取文件、列出文件、删除
    的头像 发表于 08-05 18:11 3906次阅读
    ESP32驱动SPIFFS<b class='flag-5'>进行文件</b>操作

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统常用命令之磁盘管理与维护常用命令

    ]...选项与参数:-k:以KBytes显示容量;-m:以Mbytes显示容量;-h:以易读的方式自行显示;-T:列出文件系统类型;示例一:显示系统所有filesystem。root@ELF1:~# df
    发表于 06-24 11:26

    KiCad 9 探秘(七):使用 Jobset 批量输出文档(归档)

    “  Jobset 类似于 AD 中的 Output Job,可以根据自己的配置文件批量输出所需的文档。既减少了手动操作的工作量,也确保了输出文档的一致性。   ” Jobset 可以干什么
    的头像 发表于 02-12 12:01 1385次阅读
    KiCad 9 探秘(七):使用 Jobset 批量<b class='flag-5'>输出文</b>档(归档)