用工具建工程对verilog进行仿真、综合或者其它操作时,在写脚本的时候常常需要工程中veriog文件的列表,若工程中.v文件过多,则常常需要手动编写文件列表。本文教给大家用c语言简单写的一个自动生成某个文件夹下所有.v文件列表的方法。
使用说明 环境:windows 7操作系统或其它常用windows操作系统
编译器:dev c++或其它
使用方法:随便找个c语言的编译器,静态编译生成exe文件后,可随意拷贝至某文件夹下,双击运行,等待输出rtl.f文件即可。
使用举例:将生成的exe文件拷贝至c:modeltech64_10.4目录下,双击运行,如下动图。
生成的rtl.f打开后如下图所示。
另外,该代码提供了一种操作windows系统路径的操作方法,可以简单修改一下,用作它用。如找到某种类型的文件或某个文件进行拷贝、转移、修改、删除等操作。
源代码 #include #include #include #include #include #include #define file_num 50000#define n 50000static int count_file=0;typedef struct { int num; char name[800]; int vtype; }filetype; filetype files[file_num];bool isroot(lpctstr lpszpath) { tchar szroot[4]; wsprintf(szroot, %c:\, lpszpath[0]); return (lstrcmp(szroot, lpszpath) == 0);}void findinall(lpctstr lpszpath){ win32_find_data wfd; tchar szfind[max_path]; handle hfind; tchar szfile[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; // 过滤这两个目录 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); // 如果找到的是目录,则进入此目录进行递归 } 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); // 对文件进行操作 } } while (findnextfile(hfind, &wfd)); findclose(hfind); // 关闭查找句柄}int main(int argc, char* argv[]){ file *fp1; int i,j,k; char buf[800]= ; char buf1[800]= ; int type=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(current working directory : %s, buf); findinall(buf); for(i=0;i
更新日期:2013-07-17
1446 修改代码,扩展name的长度为800,可以处理长路径的情况
版本号:v1.1.1
更新日期:2013-05-18
1038 修改代码,添加判断语句&& (j==k-2),避免.vhd等文件也被列出来
版本号:v1.1.0
更新日期:2013-02-10
1455 已添加对文件名进行判断,能够自动的将当前路径下的所有文件及子文件夹下的.v文件列举出来。
Meta将于今年在数据中心部署新款定制AI芯片
为什么CAN FD通讯要开启收发送延时补偿TDC?如何在TCAN4550配置TDC和SSP?
LED和3D面板向中低端渗透
智能照明控制系统在医院项目设计中的应用
利用数据线中的共模扼流圈(CMC)提高电磁兼容性
如何快速生成Verilog代码文件列表
氮化镓晶体管到底有什么了不起?
免调中频VCO的实现
开关电源的维修技巧和常见故障
微软修补了之前谷歌发现的Windows零日漏洞
自动化生产线的改造要注意什么
高温电线耐温多少
家庭电气装溃设计
赛微电子子公司在湖州成立半导体公司,注册资金为1亿元
5G时代,三星想要PK华为?这场“卡位战”没那么简单
三相不控整流电路的PFC设计案例分析
QD OLED | 三星显示延期的大尺寸OLED投资计划将于下月重新审议
上海已发布多个人工智能应用场景
用于中端智能手机的非柔性OLED面板出货量下降?
荣耀9发布会进行时:荣耀9发布会官方在线直播视频地址