hex2mif.c

来自「DW8051 Verilog VHDL 源码和文档」· C语言 代码 · 共 50 行

C
50
字号
#include <stdio.h>
#include <stdlib.h>

void process(FILE *, FILE *);
void prn_info();

int main(int argc, char **argv)
{
	FILE *ifp, *ofp;

	if (argc != 2) {
		prn_info();
		exit(1);
	}

	ifp = fopen(argv[1], "r");
	ofp = fopen("program.mif", "w");
	process(ifp, ofp);
	fclose(ifp);
	fclose(ofp);
	return 0;
}

void process(FILE *ifp, FILE *ofp)
{
	int c;

	fprintf(ofp, "width = 16;\ndepth = 512;\n\n"
	"address_radix = hex;\ndata_radix = hex;\n\n"
	"content begin\n[0..1ff]: 0;\n\n");

	while((c = getc(ifp)) != EOF) {
		if (c != '\n')
			putc(c, ofp);
		else {
			putc(';', ofp);
			putc(c, ofp);
		}
	}

	fprintf(ofp, "\n\nend;");

	printf("Mission Accomplished");
}

void prn_info()
{
	printf("Mission Failed");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?