一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何快速生成Verilog代碼文件列表

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2023-01-15 10:59 ? 次閱讀

用工具建工程對(duì)Verilog進(jìn)行仿真、綜合或者其它操作時(shí),在寫腳本的時(shí)候常常需要工程中Veriog文件的列表,若工程中.v文件過多,則常常需要手動(dòng)編寫文件列表。本文教給大家用C語言簡(jiǎn)單寫的一個(gè)自動(dòng)生成某個(gè)文件夾下所有.v文件列表的方法。

使用說明

環(huán)境:Windows 7操作系統(tǒng)或其它常用Windows操作系統(tǒng)
編譯器:DEV C++或其它
使用方法:隨便找個(gè)C語言的編譯器,靜態(tài)編譯生成exe文件后,可隨意拷貝至某文件夾下,雙擊運(yùn)行,等待輸出rtl.f文件即可。

使用舉例:將生成的exe文件拷貝至C:modeltech64_10.4目錄下,雙擊運(yùn)行,如下動(dòng)圖。

b63e9ed2-947a-11ed-bfe3-dac502259ad0.gif

生成的rtl.f打開后如下圖所示。

b6a98d96-947a-11ed-bfe3-dac502259ad0.jpg

另外,該代碼提供了一種操作Windows系統(tǒng)路徑的操作方法,可以簡(jiǎn)單修改一下,用作它用。如找到某種類型的文件或某個(gè)文件進(jìn)行拷貝、轉(zhuǎn)移、修改、刪除等操作。

源代碼

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

#defineFILE_NUM50000
#defineN50000

staticintcount_file=0;

typedefstruct
{
intnum;
charname[800];
intvtype;
}filetype;

filetypefiles[FILE_NUM];

BOOLIsRoot(LPCTSTRlpszPath)
{
TCHARszRoot[4];
wsprintf(szRoot,"%c:",lpszPath[0]);
return(lstrcmp(szRoot,lpszPath)==0);
}

voidFindInAll(LPCTSTRlpszPath)
{
WIN32_FIND_DATAwfd;
TCHARszFind[MAX_PATH];
HANDLEhFind;
TCHARszFile[MAX_PATH];
lstrcpy(szFind,lpszPath);

if(!IsRoot(szFind))
lstrcat(szFind,"");
lstrcat(szFind,"*.*");//找所有.v文件

hFind=FindFirstFile(szFind,&wfd);
if(hFind==INVALID_HANDLE_VALUE)//如果沒有找到或查找失敗
return;

do
{
if(wfd.cFileName[0]=='.')
continue;//過濾這兩個(gè)目錄
if(wfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{

if(IsRoot(lpszPath))
wsprintf(szFile,"%s%s",lpszPath,wfd.cFileName);
else
wsprintf(szFile,"%s\%s",lpszPath,wfd.cFileName);
FindInAll(szFile);//如果找到的是目錄,則進(jìn)入此目錄進(jìn)行遞歸
}
else
{

if(IsRoot(lpszPath))
wsprintf(szFile,"%s%s",lpszPath,wfd.cFileName);
else
wsprintf(szFile,"%s\%s",lpszPath,wfd.cFileName);

printf("%s
",szFile);

files[count_file].num=count_file;
strcpy(files[count_file].name,szFile);
count_file=count_file+1;

//printf("count_file=%d,num=%s
",count_file,files[count_file-1].name);

//對(duì)文件進(jìn)行操作
}
}while(FindNextFile(hFind,&wfd));
FindClose(hFind);//關(guān)閉查找句柄
}

intmain(intargc,char*argv[])
{
FILE*fp1;
inti,j,k;
charbuf[800]="";
charbuf1[800]="";
inttype=0;

if((fp1=fopen("rtl.f","w+"))==NULL)
return;

memset(buf,0,800);
memset(buf1,0,800);
memset(files,0,FILE_NUM*sizeof(filetype));

getcwd(buf,sizeof(buf));
printf("currentworkingdirectory:%s
",buf);
FindInAll(buf);

for(i=0;imemset(buf1,0,800);
strcpy(buf1,files[i].name);
type=0;
k=strlen(buf1);
//printf("
k=%d;",k);
for(j=0;j<=k;j++)
????????{

????????????if((buf1[j]=='.')&&((buf1[j+1]=='v')||(buf1[j+1]=='V'))&&(j==k-2))
//if((buf1[j]=='.')&&(j==k-2))
{
//printf("
j=%d
",j);
type=1;
files[i].vtype=1;
fprintf(fp1,"%s
",files[i].name);
}
}

}

getch();
fclose(fp1);
return0;
}

版本更新記錄


版本號(hào):V1.1.2
更新日期:2013-07-17
1446 修改代碼,擴(kuò)展name的長度為800,可以處理長路徑的情況

版本號(hào):V1.1.1
更新日期:2013-05-18
1038 修改代碼,添加判斷語句&& (j==k-2),避免.vhd等文件也被列出來

版本號(hào):V1.1.0
更新日期:2013-02-10
1455 已添加對(duì)文件名進(jìn)行判斷,能夠自動(dòng)的將當(dāng)前路徑下的所有文件及子文件夾下的.v文件列舉出來。

審核編輯 :李倩


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

    關(guān)注

    37

    文章

    7025

    瀏覽量

    124701
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1364

    瀏覽量

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

    關(guān)注

    30

    文章

    4880

    瀏覽量

    69993

原文標(biāo)題:如何快速生成Verilog代碼文件列表(附開源C代碼)

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    cunbemx生成RTthread代碼疑似漏復(fù)制文件怎么解決?

    使用6.12.x版本cubemx,勾選X-CUBE-RT-Thread,生成代碼。最后的代碼里缺失libcpu文件夾,工程里也缺失對(duì)應(yīng)的文件
    發(fā)表于 03-13 08:23

    STM32CubeMX生成代碼就會(huì)覆蓋CMakeLists.txt文件,怎么解決?

    請(qǐng)教一下用STM32CubeMX生成代碼后,我自己加了一個(gè)頭文件和源文件,這些自己加的文件不是要配置到CMakeLists.txt編譯么,但
    發(fā)表于 03-12 08:03

    Python中的迭代器與生成

    Python迭代器與生成列表生成列表生成式也叫做列表推導(dǎo)式,它本身還是
    的頭像 發(fā)表于 02-20 10:43 ?239次閱讀

    Verilog 與 ASIC 設(shè)計(jì)的關(guān)系 Verilog 代碼優(yōu)化技巧

    Verilog與ASIC設(shè)計(jì)的關(guān)系 Verilog作為一種硬件描述語言(HDL),在ASIC設(shè)計(jì)中扮演著至關(guān)重要的角色。ASIC(Application Specific Integrated
    的頭像 發(fā)表于 12-17 09:52 ?746次閱讀

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開發(fā)指南

    Verilog設(shè)計(jì)的仿真需求。 編寫測(cè)試文件 : 編寫Verilog測(cè)試文件,對(duì)設(shè)計(jì)的各個(gè)模塊進(jìn)行測(cè)試。測(cè)試文件應(yīng)覆蓋各種情況,包括正
    的頭像 發(fā)表于 12-17 09:50 ?864次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風(fēng)格 VerilogVerilog 的語法更接近于 C 語言,對(duì)于有 C 語言背景的工程師來說,學(xué)習(xí)曲線較平緩。它支持結(jié)構(gòu)化編程,代碼
    的頭像 發(fā)表于 12-17 09:44 ?1223次閱讀

    探索設(shè)計(jì)稿自動(dòng)生成Flutter代碼的技術(shù)方案

    的工具和方法,最后嘗試大模型生成flutter代碼在項(xiàng)目中的實(shí)踐。 一、美團(tuán)的探索 美團(tuán)在2021年3月25日發(fā)表了一篇關(guān)于設(shè)計(jì)稿自動(dòng)生成代碼的文章,探討了sketch2json和im
    的頭像 發(fā)表于 11-08 10:09 ?1480次閱讀
    探索設(shè)計(jì)稿自動(dòng)<b class='flag-5'>生成</b>Flutter<b class='flag-5'>代碼</b>的技術(shù)方案

    如何自動(dòng)生成verilog代碼

    介紹幾種自動(dòng)生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?833次閱讀
    如何自動(dòng)<b class='flag-5'>生成</b><b class='flag-5'>verilog</b><b class='flag-5'>代碼</b>

    Verilog硬件描述語言參考手冊(cè)

    一. 關(guān)于 IEEE 1364 標(biāo)準(zhǔn)二. Verilog簡(jiǎn)介三. 語法總結(jié)四. 編寫Verilog HDL源代碼的標(biāo)準(zhǔn)五. 設(shè)計(jì)流程
    發(fā)表于 11-04 10:12 ?4次下載

    FPGA Verilog HDL代碼如何debug?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問題(一) Q:Verilog代碼如何debug?最近學(xué)習(xí)fpga,寫了不少verilog,開始思考如何debug的問題!c語言是順序執(zhí)行,而
    發(fā)表于 09-24 19:16

    labview程序生成exe文件怎么還原

    在LabVIEW中,程序生成exe文件后,通常這個(gè)過程是不可逆的,即exe文件無法直接“還原”回原始的LabVIEW項(xiàng)目文件(.vi或.lvproj)。exe
    的頭像 發(fā)表于 09-04 17:12 ?2641次閱讀

    labview工程文件如何生成exe

    生成可執(zhí)行文件(EXE)是LabVIEW程序開發(fā)過程中的一個(gè)重要步驟,它允許用戶在沒有安裝LabVIEW的計(jì)算機(jī)上運(yùn)行程序。以下是步驟和注意事項(xiàng): 1. 準(zhǔn)備工作 在開始生成EXE文件
    的頭像 發(fā)表于 09-04 17:09 ?2674次閱讀

    hex文件如何查看原c語言代碼

    直接將 .hex 文件轉(zhuǎn)換回原始的 C 語言代碼是不可能的,因?yàn)?.hex 文件是二進(jìn)制文件,它包含了單片機(jī)程序編譯后的機(jī)器碼,這些機(jī)器碼與原始的 C 語言
    的頭像 發(fā)表于 09-02 10:37 ?3955次閱讀

    如何快速生成Modbus指令?教程來啦

    一適用型號(hào)該筆記適用于標(biāo)準(zhǔn)Modbus協(xié)議產(chǎn)品(MA01系列、ME31系列、M31系列、ME15-AXAX8080)。二功能簡(jiǎn)介功能說明:Modbus指令快速生成教程旨在幫助用戶快速生成
    的頭像 發(fā)表于 06-28 08:21 ?1639次閱讀
    如何<b class='flag-5'>快速</b><b class='flag-5'>生成</b>Modbus指令?教程來啦

    Allegro生成光繪文件

    Allegro生成光繪文件
    發(fā)表于 05-06 10:37 ?1次下載