Cómo generar archivos mif
Ventajas: para RAM de pequeña capacidad, la edición de archivos mif se puede completar rápida y fácilmente sin la necesidad de editar software de terceros;
Desventajas: una vez que la cantidad de datos es demasiado grande, ingresarlos uno por uno provocará un bloqueo;
Uso: en quartus.file/new, seleccione el archivo de inicialización de memoria y aparecerá la siguiente ventana aparecerá:
Número de palabras: el número de celdas de memoria direccionables; para una línea de dirección de 8 bits, seleccione 256 aquí;
Tamaño de palabra: el ancho de la celda de memoria , 8 bits;
Luego haga clic en "Aceptar". Haga clic en Aceptar.
Ingrese los datos de inicialización en la tabla;
Haga clic derecho en el valor de la dirección a la izquierda para modificar el formato de visualización de la dirección y los datos;
Cualquier dato en la tabla Dirección = valor de columna + valor de fila, como se muestra en la imagen, la dirección de la celda azul = 24 + 4 = 28;
Complete el valor inicial de cada celda y luego guarde el archivo.
Método 2: use software mif para generar
No importa qué editor use, debe asegurarse de que el formato del archivo mif sea el siguiente: la dirección está en el lado izquierdo de los dos puntos, y los datos están en el lado derecho; Fin del número;
DEPTH = 256;
WIDTH = 8;
ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;
CONTENIDO
COMIENZO
0000: 0000;
0001: 0000;
0002: 0000;
......(Aquí se omiten mil palabras*.
00FA: 00FF;
00FB : 00FF;
00FC: 00FF ;
00FD : 00FF;
00FE : 00FF;
00FF : 00FF;
00FF : 00FF;
00FF : 00FF;
END;
Aquí está el generador de mif recomendado: Mif_Maker2010.exe, que se puede descargar de Baidu; para saber cómo utilizar el software, consulte "Cómo utilizar Mif Maker2010".
Método 3: utilizar lenguaje de alto nivel
Utilizar lenguaje C o matlab para generar. El código generado en lenguaje C es el siguiente: Este código genera una forma de onda de datos de onda sinusoidal y la guarda en TestMif.mif.
#include
#include
#define PI 3.141592
#define PROFUNDIDAD 128 /*Profundidad de datos, es decir, el número de unidades de almacenamiento
#define WIDTH 8 /*Profundidad de datos, es decir, el número de unidades de almacenamiento
#define WIDTH 8 /* Profundidad de datos, es decir, Definir ANCHO 8 /* Ancho de la unidad de almacenamiento**
{
int main(void)
{
int i,temp ;
float s;
ARCHIVO *fp;
fp = fopen("TestMif.mif", "w" ); /*El nombre del archivo es arbitrario Sí, pero la extensión debe ser .mif*/
if(NULL==fp)
printf("¡No se puede crear el archivo!\r\ n");
else
{
printf("¡Archivo creado correctamente!\n");
/* p>
* Generar encabezado de archivo: tenga cuidado de no olvidar ";"
**
fprintf(fp, "DEPTH = %d;\n",DEPTH) ;
fprintf (fp, "WIDTH = %d;\n",WIDTH);
fprintf(fp, "ADDRESS_RADIX = HEX;\n");
fprintf(fp, "DATA_RADIX = HEX;\n");
fprintf(fp, "CONTENIDO\n");
fprintf(fp, "BEGIN\n ");
>*
* Dirección de salida y datos en hexadecimal
*
for(i=0; i { /* Onda sinusoidal con un periodo de 128 puntos*/ s = sin(PI*i/64); p> /* Ampliar valores de onda sinusoidal entre -1 y 1 entre 0 y 255*/ temp = (int)((s+1)*255/2); p> /* Dirección de salida y datos en hexadecimal */ fprint(fp,"%x\t:\t%x;\n",i,temp); }/end para fprintf(fp, "END;\n"); fclose(fp); } } Verifique si los datos generados son correctos: use el Bloc de notas para abrir el archivo mif generado y use Quartus para abrir el archivo mif. El contenido es el siguiente: . Se puede importar con éxito y los datos son consistentes, lo que indica que la generación es correcta.