chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

如何優(yōu)化HLS仿真腳本運(yùn)行時(shí)間

jf_FPuwyZRU ? 來(lái)源:CSDN-雪天魚 ? 2024-02-23 09:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

菜雞一枚,記錄下自己的學(xué)習(xí)過(guò)程,可能后續(xù)有更新,也可能沒(méi)有更新,謹(jǐn)慎參考。

v1.0 24-02-22 C++ 打印秒級(jí)時(shí)間戳,向 TXT 文件寫入多維數(shù)組

2 C++ 打印秒級(jí)時(shí)間戳

需求:由于自己目前一個(gè) HLS 仿真腳本需要運(yùn)行 1個(gè)多小時(shí),先打算通過(guò)打印時(shí)間戳的方式找出最耗時(shí)的部分,然后想辦法優(yōu)化。

具體代碼如下:

#include
#include
#include

//Getcurrenttimestamp(inseconds)
longlonggetCurrentTimestampInSeconds(){
autonow=std::now();
autonow_seconds=std::time_point_cast(now);
returnnow_seconds.time_since_epoch().count();
}

//Converttimestamptodate-timestring
std::stringtimestampToDateTimeString(longlongtimestamp){
autotime=std::from_time_t(timestamp);
std::time_tc_time=std::to_time_t(time);
charbuffer[80];
std::strftime(buffer,80,"%Y-%m-%d%H:%M:%S",std::localtime(&c_time));
returnstd::string(buffer);
}

voidprint_timestamp(){
//1Getcurrenttimestamp(seconds)
longlongtimestamp_seconds=getCurrentTimestampInSeconds();
std::cout<

HLS 仿真輸出:

Currenttimestamp(seconds):1708591115
Currentdateandtime:2024-02-221635

C++ 代碼在線調(diào)試 |

使用方式:將上述代碼復(fù)制到 testbench 對(duì)應(yīng)的cpp中。再需要打印時(shí)間戳?xí)r,調(diào)用 print_timestamp() 函數(shù)即可在 vitis hls 的控制臺(tái)打印當(dāng)前時(shí)間。(也可以放到一個(gè)額外的 cpp 文件中,然后testbench 包含該cpp對(duì)應(yīng)的頭文件即可)

代碼解析:在C++中打印時(shí)間戳,可以使用標(biāo)準(zhǔn)庫(kù) 來(lái)獲取當(dāng)前時(shí)間,并將其轉(zhuǎn)換為時(shí)間戳。調(diào)用 getCurrentTimestampInSeconds 函數(shù)會(huì)返回當(dāng)前時(shí)間的秒級(jí)時(shí)間戳。然后可以使用 頭文件中的函數(shù)來(lái)將時(shí)間戳轉(zhuǎn)換為年月日小時(shí)分秒的格式。

在 timestampToDateTimeString 函數(shù)中,先將時(shí)間戳轉(zhuǎn)換為 std::system_clock 類型的時(shí)間點(diǎn),然后使用將其轉(zhuǎn)換為 std::time_t 類型。最后使用 std::strftime 函數(shù)將 std::time_t 類型的時(shí)間轉(zhuǎn)換為日期時(shí)間字符串。

在 print_timestamp 中先獲取秒級(jí)時(shí)間戳,再將時(shí)間戳轉(zhuǎn)換為日期時(shí)間字符串并打印出來(lái)。

3 向 TXT 文件寫入多維數(shù)組

我比較喜歡用 python 腳本生成測(cè)試激勵(lì)(存儲(chǔ)到 txt 文件中,一行一個(gè)數(shù)據(jù)),然后 HLS testbench 讀取激勵(lì)文件。同時(shí) hls 仿真結(jié)果也會(huì)寫入到指定的 TXT 文件,用于與參考值進(jìn)行詳細(xì)對(duì)比,從而驗(yàn)證硬件代碼是否功能正確。

這里以向 TXT 文件寫入 3D 數(shù)組為例,具體代碼如下:

#include
#include
#include
#include
#include
#include

usingnamespacestd;

//設(shè)置存放hls仿真結(jié)果的文件夾
conststringresult_path="path/to/hls_result/";
//這里的p_limit,b_limit,i_limit替換為想設(shè)置的常量,假設(shè)data為hls仿真結(jié)果
intdata[p_limit][b_limit][i_limit];

intmain()
{
ostringstreamoss;
{
cout<

若指定路徑下無(wú)該 txt 文件,會(huì)自動(dòng)創(chuàng)建 output_hls.txt 文件。

代碼解析:先通過(guò)拼接得到文件的絕對(duì)路徑( 絕對(duì)路徑已嘗試過(guò)可行,相對(duì)路徑未嘗試 ),然后創(chuàng)建/打開(kāi)該文件,再逐個(gè)讀取數(shù)據(jù)數(shù)據(jù),寫入到文件中,最后關(guān)閉文件。

也可將該代碼寫為一個(gè)工具函數(shù),方便進(jìn)行調(diào)用, 如下所示

#include
#include
#include
#include
#include
#include

usingnamespacestd;

template
voidwrite_3d_matrix_txt(Tsrc[],
stringpath,stringfname,
constintp_limit,
constintb_limit,
constinti_limit
)
{//fname:"output"
ostringstreamoss;
oss<

根據(jù)上述模板,可寫出 1d, 2d, 4d... 等數(shù)組的寫入工具函數(shù)。

審核編輯:湯梓紅

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

    關(guān)注

    3

    文章

    4405

    瀏覽量

    66798
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2121

    瀏覽量

    76687
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4940

    瀏覽量

    73083
  • Vitis
    +關(guān)注

    關(guān)注

    0

    文章

    154

    瀏覽量

    8254

原文標(biāo)題:Vitis HLS 仿真 C++ 工具代碼分享

文章出處:【微信號(hào):集成電路設(shè)計(jì)教程,微信公眾號(hào):集成電路設(shè)計(jì)教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何縮短Vivado的運(yùn)行時(shí)間

    在Vivado Implementation階段,有時(shí)是有必要分析一下什么原因?qū)е?b class='flag-5'>運(yùn)行時(shí)間(runtime)過(guò)長(zhǎng),從而找到一些方法來(lái)縮短運(yùn)行時(shí)間。
    的頭像 發(fā)表于 05-29 14:37 ?1.5w次閱讀
    如何縮短Vivado的<b class='flag-5'>運(yùn)行時(shí)間</b>

    如何檢查L(zhǎng)inux服務(wù)器的運(yùn)行時(shí)間

    Linux 中的 uptime 用于查看系統(tǒng)啟動(dòng)后的運(yùn)行時(shí)間。它是一個(gè)比較簡(jiǎn)單的 Linux 命令,可以不帶參數(shù)直接運(yùn)行。
    發(fā)表于 11-25 15:25 ?1.6w次閱讀
    如何檢查L(zhǎng)inux服務(wù)器的<b class='flag-5'>運(yùn)行時(shí)間</b>

    stm32做https的server ,serverkeychange運(yùn)行時(shí)間10多s怎么優(yōu)化?

    stm32做https的server ,serverkeychange這一步運(yùn)行時(shí)間10多s,求優(yōu)化辦法
    發(fā)表于 03-27 08:03

    STM8S在IAR軟件仿真Simulator怎么查看運(yùn)行時(shí)間?

    STM8S 在IAR軟件仿真Simulator怎么查看運(yùn)行時(shí)間?在某些芯片通信時(shí),會(huì)要求延時(shí)5us,10us,150ms等,這些延時(shí)不需要太精確,只要大概就好,但怎么在Simulator仿真里能通過(guò)斷點(diǎn)查看,即兩個(gè)斷點(diǎn)之間的
    發(fā)表于 05-09 07:48

    運(yùn)行時(shí)軟件故障注入器的設(shè)計(jì)與實(shí)現(xiàn)

    針對(duì)實(shí)際故障診斷中難以有效獲得故障現(xiàn)場(chǎng)信息的問(wèn)題,提出通過(guò)在軟件運(yùn)行時(shí)注入故障的方式獲取故障現(xiàn)場(chǎng)信息,設(shè)計(jì)并實(shí)現(xiàn)一種運(yùn)行時(shí)軟件故障注入器,給出其中的故障腳本
    發(fā)表于 04-06 08:40 ?19次下載

    C語(yǔ)言教程之顯示程序運(yùn)行時(shí)間

    C語(yǔ)言教程之顯示程序運(yùn)行時(shí)間,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-25 16:09 ?0次下載

    基于本地任務(wù)與遠(yuǎn)程任務(wù)運(yùn)行時(shí)間的CPS和PAA的概念

    評(píng)價(jià)由某一特定預(yù)測(cè)策略提供的預(yù)測(cè)運(yùn)行時(shí)間精度的標(biāo)準(zhǔn)。仿真實(shí)驗(yàn)表明:與本地任務(wù)預(yù)測(cè)策略如Last和滑動(dòng)窗口中值(SM)相比,CPS的平均相對(duì)殘差下降了1.58%、1.62%;與遠(yuǎn)程任務(wù)預(yù)測(cè)策略如平均運(yùn)行時(shí)間(RM)和加權(quán)移動(dòng)平均值
    發(fā)表于 01-04 14:13 ?0次下載
    基于本地任務(wù)與遠(yuǎn)程任務(wù)<b class='flag-5'>運(yùn)行時(shí)間</b>的CPS和PAA的概念

    如何用SysTick實(shí)現(xiàn)測(cè)量程序運(yùn)行時(shí)間

    在實(shí)際的項(xiàng)目開(kāi)發(fā)過(guò)程中,常常遇到需要得到一段代碼的運(yùn)行時(shí)間,通常的方法是用示波器來(lái)測(cè)量,這篇博文將用 SysTick 來(lái)實(shí)現(xiàn) 精確測(cè)量 程序運(yùn)行時(shí)間。 STM32F4 的內(nèi)核定時(shí)器SysTick是一個(gè)24位的定時(shí)器,需要注
    的頭像 發(fā)表于 05-09 14:07 ?6699次閱讀
    如何用SysTick實(shí)現(xiàn)測(cè)量程序<b class='flag-5'>運(yùn)行時(shí)間</b>

    電機(jī)運(yùn)行時(shí)間進(jìn)行排列 是分為兩個(gè)部分來(lái)完成這個(gè)程序的設(shè)計(jì)的

    前幾天有個(gè)學(xué)員咨詢一個(gè)程序設(shè)計(jì)的問(wèn)題,程序的控制要求如下:需要控制5臺(tái)電機(jī)的運(yùn)行,每臺(tái)電機(jī)運(yùn)行時(shí)需要記錄運(yùn)行時(shí)間,電機(jī)啟動(dòng)運(yùn)行時(shí),根據(jù)記錄的運(yùn)行時(shí)間
    的頭像 發(fā)表于 07-19 08:57 ?8343次閱讀
    電機(jī)<b class='flag-5'>運(yùn)行時(shí)間</b>進(jìn)行排列 是分為兩個(gè)部分來(lái)完成這個(gè)程序的設(shè)計(jì)的

    最大化延長(zhǎng)即使具有老化電池的汽車電池組運(yùn)行時(shí)間

    最大化延長(zhǎng)即使具有老化電池的汽車電池組運(yùn)行時(shí)間
    發(fā)表于 03-20 12:44 ?9次下載
    最大化延長(zhǎng)即使具有老化電池的汽車電池組<b class='flag-5'>運(yùn)行時(shí)間</b>

    如何高效測(cè)量ECU的運(yùn)行時(shí)間

    ,最終可能會(huì)引起運(yùn)行時(shí)間方面的問(wèn)題。這在項(xiàng)目后期需要大量的時(shí)間和金錢來(lái)解決。如果不能掌握系統(tǒng)的運(yùn)行狀態(tài),則很難發(fā)現(xiàn)系統(tǒng)內(nèi)缺陷的根源。 解決方案 將TA軟件工具套件與VX1000測(cè)量標(biāo)定硬件相結(jié)合,可同步分析 ECU內(nèi)部
    的頭像 發(fā)表于 10-28 11:05 ?2886次閱讀

    淺析STM32代碼運(yùn)行時(shí)間的技巧

    前言 ????測(cè)試代碼的運(yùn)行時(shí)間的兩種方法: 使用單片機(jī)內(nèi)部定時(shí)器,在待測(cè)程序段的開(kāi)始啟動(dòng)定時(shí)器,在待測(cè)程序段的結(jié)尾關(guān)閉定時(shí)器。為了測(cè)量的準(zhǔn)確性,要進(jìn)行多次測(cè)量,并進(jìn)行平均取值。 借助示波器的方法
    的頭像 發(fā)表于 11-09 09:52 ?4599次閱讀
    淺析STM32代碼<b class='flag-5'>運(yùn)行時(shí)間</b>的技巧

    ch32v307記錄程序運(yùn)行時(shí)間

    ,不僅會(huì)降低用戶的體驗(yàn),甚至可能會(huì)導(dǎo)致系統(tǒng)的崩潰。 因此,在程序設(shè)計(jì)和調(diào)試中,我們常常需要記錄程序的運(yùn)行時(shí)間,并通過(guò)不斷的優(yōu)化來(lái)提升程序的性能。本文將介紹如何在各種編程語(yǔ)言中記錄程序運(yùn)行時(shí)間,并分享一些提高程序性能的技巧。
    的頭像 發(fā)表于 08-22 15:53 ?1552次閱讀

    西門子SCL編程50臺(tái)電機(jī)運(yùn)行時(shí)間累計(jì)方法

    當(dāng)RUN信號(hào)為TRUE時(shí),開(kāi)始計(jì)時(shí),為FALSE時(shí)停止計(jì)時(shí),單次運(yùn)行時(shí)間清零,長(zhǎng)按RESET為5秒時(shí),單次和總運(yùn)行時(shí)間都清零。
    發(fā)表于 11-27 09:59 ?3435次閱讀
    西門子SCL編程50臺(tái)電機(jī)<b class='flag-5'>運(yùn)行時(shí)間</b>累計(jì)方法

    三菱plc累計(jì)運(yùn)行時(shí)間怎么編程

    具有重要意義。本文將詳細(xì)介紹如何使用三菱PLC編程實(shí)現(xiàn)累計(jì)運(yùn)行時(shí)間的統(tǒng)計(jì)功能。 一、概述 累計(jì)運(yùn)行時(shí)間是指設(shè)備或系統(tǒng)在一定時(shí)間內(nèi)的總運(yùn)行時(shí)間。在工業(yè)生產(chǎn)中,對(duì)設(shè)備的累計(jì)
    的頭像 發(fā)表于 06-20 11:31 ?4426次閱讀