0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何關(guān)聯(lián)ELF輸出文件并使用vivado對系統(tǒng)進(jìn)行行為仿真

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-02-08 11:18 ? 次閱讀

作者:falwat

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

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

本文介紹如何在教程(三)基礎(chǔ)上, 關(guān)聯(lián)ELF輸出文件并使用vivado對系統(tǒng)進(jìn)行行為仿真。

關(guān)聯(lián)ELF 文件

在vivado 開發(fā)教程(三) 在SDK中創(chuàng)建應(yīng)用工程 中, 新建的工程經(jīng)構(gòu)建最終會(huì)生成ELF 輸出文件。 ELF 文件是一種用于二進(jìn)制文件、可執(zhí)行文件、目標(biāo)代碼、共享庫和核心轉(zhuǎn)儲(chǔ)格式文件(參考:百度百科)。 可以在教程(三)中新建的“test”工程和導(dǎo)入的例程下找到。

切回Vivado, 在塊設(shè)計(jì)文件“system.bd”上右鍵,選擇菜單“Associate ELF Files.。.”關(guān)聯(lián)ELF文件。

在彈出的對話框中,點(diǎn)擊“Simulation Sources | sim_1 | system_i | microblaze_0 ”樹右側(cè)的“。..”按鈕, 彈出選擇文件對話框。

點(diǎn)擊“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文件并點(diǎn)擊“OK”完成。

在工程管理視圖 | “Sources”窗口 | “Simulation Sources”文件集 | sim_1 | ELF 下能夠看到剛剛關(guān)聯(lián)上去的ELF文件。

新建激勵(lì)文件

點(diǎn)擊“Sources”窗口頂部的“+”按鈕, 打開添加源文件對話框。 選中“Add or create simulation sources”, 點(diǎn)擊“Next”繼續(xù)。

點(diǎn)擊“Create File”按鈕, 在創(chuàng)建源文件對話框中, 輸入文件名。 點(diǎn)擊“OK”, 點(diǎn)擊“Finish”。

在彈出的“Define Module”對話框中, 點(diǎn)擊“OK”即可。 激勵(lì)文件不需要有定義輸入輸出端口

雙擊打開“sim_system.v”文件, 復(fù)制“system_wrapper.v”文件中的如下內(nèi)容到“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的輸入信號(hào)為”reg“類型, 編寫”initial“塊對輸入信號(hào)進(jìn)行初始化, 為時(shí)鐘信號(hào)編寫激勵(lì), 將”timescale“ 設(shè)置為”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; // 復(fù)位完成

end

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

endmodule

從”Source“窗口中,選中激勵(lì)文件”sim_system.v“, 右鍵選擇菜單”Set as Top“, 將激勵(lì)文件設(shè)置為頂層。

o4YBAGAKDX2ANnkqAAB_BXrXtdQ397.png

點(diǎn)擊左側(cè)”Flow Navigator“工具窗口中的”Simulation“ | ”Run Simulation“, 點(diǎn)擊”Run Behavioral Simulation“, 運(yùn)行行為仿真。

o4YBAGAKDbuAWrxzAAAmKOa_AGY010.png

編譯成功后會(huì)自動(dòng)打開仿真(”SIMULATION“)視圖, 主工具欄會(huì)增加如下幾個(gè)工具圖標(biāo):

為了能夠快速看出仿真效果,縮短仿真時(shí)間, 在SDK 中修改”xgpio_low_level_example.c“文件中的宏常量”LED_DELAY“ 改為1000 并保存, SDK在保存后會(huì)自動(dòng)進(jìn)行編譯, 更新ELF文件。

#define LED_DELAY 1000

切回Vivado, 點(diǎn)擊重新仿真(”Relaunch Simulation“)按鈕。

設(shè)置仿真時(shí)間為500us, 點(diǎn)擊運(yùn)行指定時(shí)間(”Run for 500us“)按鈕。最終的仿真時(shí)序圖如下所示。

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    797

    瀏覽量

    65853
收藏 人收藏

    評論

    相關(guān)推薦

    fpga仿真文件怎么寫

    首先,你需要選擇一個(gè)FPGA仿真軟件,如ModelSim、Vivado、Quartus II等。這些軟件都提供了強(qiáng)大的仿真功能,可以幫助你驗(yàn)證FPGA設(shè)計(jì)的正確性。
    的頭像 發(fā)表于 03-15 14:00 ?539次閱讀

    PCB設(shè)計(jì)輸出與制造文件全覽

    這些連接器的方向可以在STEP文件中輕松顯示。這可以包含在您的標(biāo)準(zhǔn)PCB設(shè)計(jì)輸出文件中,也可以通過裝配層中適當(dāng)大小的輪廓來反映。
    發(fā)表于 03-08 14:40 ?1726次閱讀
    PCB設(shè)計(jì)<b class='flag-5'>輸出</b>與制造<b class='flag-5'>文件</b>全覽

    通過Bifaces生成的elf文件,如何在HighTec集成的UDE中進(jìn)行仿真?

    通過Bifaces生成的elf文件,如何在HighTec集成的UDE中進(jìn)行仿真
    發(fā)表于 02-18 07:51

    ELF 1技術(shù)貼|如何支持exFAT和NTFS格式

    Linux操作系統(tǒng)通常能夠自動(dòng)識(shí)別掛載FAT32格式的磁盤,然而由于FAT32文件系統(tǒng)的限制,單個(gè)文件的最大存儲(chǔ)容量不得超過4GB。為了解決大文件
    的頭像 發(fā)表于 01-31 16:37 ?548次閱讀
    <b class='flag-5'>ELF</b> 1技術(shù)貼|如何支持exFAT和NTFS格式

    STM32CubeIDE找不到elf

    庫(STM32Cube),提供了豐富的開發(fā)工具和功能,幫助開發(fā)者更快、更方便地開發(fā)嵌入式應(yīng)用。 在使用STM32CubeIDE開發(fā)STM32應(yīng)用程序時(shí),有時(shí)會(huì)遇到找不到elf文件的問題。本文將詳細(xì)介紹在
    的頭像 發(fā)表于 01-02 16:32 ?1358次閱讀

    怎樣單獨(dú)使用modelsim仿真xilinx呢?

    直接在modelsim軟件內(nèi)執(zhí)行.do文件進(jìn)行仿真,不通過vivado調(diào)用modelsim,vivado僅用于生成IP核。
    的頭像 發(fā)表于 12-04 18:26 ?1083次閱讀
    怎樣單獨(dú)使用modelsim<b class='flag-5'>仿真</b>xilinx呢?

    i.MX6ULL——ElfBoard ELF1板卡 windows 與 ubuntu 系統(tǒng)互傳文件 的方法

    的:內(nèi)核源碼 linux-4.1.15-elf1.tar.bz2、文件系統(tǒng)(本節(jié)以 rootfs.tar.bz2 為例)、命令行測試程序 elf1_cmd_watchdog.c 放到 Windows
    發(fā)表于 12-02 09:27

    sigmastudio的導(dǎo)出文件,圖形化編程導(dǎo)出文件的地址是如何定義的?

    關(guān)于sigmastdio的導(dǎo)出文件(用來控制單片機(jī))中,對于修改寄存器的地址是數(shù)據(jù)手冊可查的,但是發(fā)現(xiàn)關(guān)于圖形化編程的導(dǎo)出文件的地址不是固定的,請問后者的地址是如何定義的?有沒有辦法提供相關(guān)的資料?
    發(fā)表于 11-29 06:10

    能否利用器件的IBIS模型對器件的邏輯功能進(jìn)行仿真?

    Buffer Information Specification)模型是一種用于描述數(shù)字和模擬器件輸入/輸出電路行為的標(biāo)準(zhǔn)。IBIS模型包含了輸入輸出特性、電氣特性和時(shí)序特性等信息,可以被使用不同
    的頭像 發(fā)表于 11-24 14:50 ?471次閱讀

    基于Vivado的IBIS文件導(dǎo)出

    是如此,進(jìn)行信號(hào)完整性仿真來分析不同條件下傳輸線中的電路行為,在設(shè)計(jì)初期就能預(yù)防檢測出典型的問題,例如過沖、欠沖、阻抗不匹配、串?dāng)_、地彈等。然而,可用的數(shù)字IC模型非常少。
    的頭像 發(fā)表于 11-10 11:28 ?2417次閱讀
    基于<b class='flag-5'>Vivado</b>的IBIS<b class='flag-5'>文件</b>導(dǎo)出

    嵌入式學(xué)習(xí)——ElfBoard ELF1板卡 編譯運(yùn)行命令行應(yīng)用的方法。

    使用$CC進(jìn)行交叉編譯: elf@ubuntu:~/work$ $CC elf1_cmd_watchdog.c -o elf1_cmd_watchdog 5.file查看生成的
    發(fā)表于 11-10 10:17

    Vivado2018版本中Modelsim的配置

    Vivado自帶的仿真工具在一些基本功能的仿真測試時(shí)是可以滿足的,但如果你的工程較為龐大,那么自帶的仿真工具將有些勉強(qiáng),除了在數(shù)據(jù)輸出方面的
    的頭像 發(fā)表于 11-08 14:47 ?1497次閱讀
    <b class='flag-5'>Vivado</b>2018版本中Modelsim的配置

    i.MX6ULL——ElfBoard ELF1板卡 nfs掛載文件系統(tǒng)終于沒有問題了

    下的rootfs.tar.bz2到ubuntu的/home/elf/nfs_rootfs目錄下。 2.解壓文件系統(tǒng)elf@ubuntu:~/nfs_rootfs$ tar xvf rootfs.tar.bz2
    發(fā)表于 11-08 09:24

    嵌入式學(xué)習(xí)——ElfBoard ELF1板卡 重新打包文件系統(tǒng)的方法

    1.拷貝ELF1開發(fā)板資料包\\\\04-燒寫鏡像\\\\04-0 eMMC鏡像目錄下的rootfs.tar.bz2到開發(fā)環(huán)境下的任意目錄,比如/home/elf。 2.創(chuàng)建存放目標(biāo)文件系統(tǒng)的目錄
    發(fā)表于 11-06 09:55

    i.MX6ULL——ElfBoard ELF1板卡 如何重新打包文件系統(tǒng)

    1.拷貝ELF1開發(fā)板資料包\\\\04-燒寫鏡像\\\\04-0 eMMC鏡像目錄下的rootfs.tar.bz2到開發(fā)環(huán)境下的任意目錄,比如/home/elf。 2.創(chuàng)建存放目標(biāo)文件系統(tǒng)的目錄
    發(fā)表于 11-06 09:52