Informe de entrenamiento con lámpara de agua que fluye

¿Reimpreso en /jpkc/pld/ArticleShow.asp? ArticleID = 565 & ampbig class name = % CA % B5 % d 1% B5 % BD % CC % d 1% A7

Espero que te sea útil.

Artículos de entrenamiento práctico (1) Lámpara de agua corriente 1. Propósito del experimento: a través de este experimento, los usuarios pueden comprender, familiarizarse y dominar mejor el uso del software de desarrollo CPLD/FPGA y el método de programación Ver-ilog HDL; aprender el diseño y las pruebas de hardware de circuitos secuenciales simples; 2. Contenido del experimento El contenido de este experimento es establecer un circuito de hardware simple que pueda usarse para controlar las lámparas LED de agua corriente. Es necesario realizar la visualización de las lámparas LED de agua corriente en la caja del experimento SmartSOPC. 3. Principios experimentales (1) Envíe periódicamente datos de flujo en el pin. Si los datos de salida originales son 11111100, significa que después de que se enciendan el LED1 y el LED2, los datos de salida deben ser 1165438. En este momento, es necesario encender tres LED (LED 1 ~ LED 3) para realizar la luz LED de marcha. Para una fácil observación, el caudal de agua debe ser de alrededor de 2 Hz. Hay una fuente de reloj estándar de 48MHz en la placa central QuickSOPC y los pulsos de reloj están conectados a los 28 pines del chip. Para generar un pulso de reloj de 2 Hz, aquí se llama un módulo de división de frecuencia. Cambie la frecuencia de salida modificando el coeficiente de división de frecuencia. Cuando el coeficiente de división de frecuencia es 24 × 10, la salida es una señal de frecuencia de 2 Hz. (2) Descripción del módulo de división de frecuencia int_div: el módulo int_div es un divisor de frecuencia entero arbitrario con un ciclo de trabajo del 50%. El reloj de entrada es reloj y el reloj de salida es clk_out. Entre ellos, F_DIV es el coeficiente de división de frecuencia, y el rango del coeficiente de división de frecuencia es 1 ~ 2N (n = F_DIV_WIDTH). Para cambiar el coeficiente de división de frecuencia, simplemente cambie los parámetros F_DIV y F_DIV_WIDTH al rango correspondiente. En este ejemplo, la frecuencia del reloj de entrada es 48MHz. Para obtener una señal de 2Hz, el coeficiente de división de frecuencia debe ser 48×10/2=24×10. Para un número con un factor de división de 24×10, se requiere un contador de 25 bits de ancho. Este módulo se utilizará muchas veces en experimentos futuros y los usuarios podrán analizar sus principios básicos. 4. Pasos experimentales (1) Iniciar el establecimiento de QUARTUSⅱⅱ. Entonces dilo. (2) Cree un nuevo archivo de programa fuente VerilogHDL, ledwater.v, ingrese el código del programa, guárdelo y luego compílelo de manera integral. Si se encuentra un error durante el proceso de compilación, busque y corrija el error hasta que la compilación sea exitosa. (3) Cree un módulo a partir del archivo de diseño y use ledwater.v para generar un archivo de símbolo de módulo llamado ledwater.bsf (4) Copie int_div.bsf e int_div.v en el directorio EDA_component del CD al directorio del proyecto. (5) Haga doble clic con el botón izquierdo del mouse en el espacio en blanco para crear un nuevo archivo de diseño gráfico llamado led_wter.bdf. En las bibliotecas I en la esquina superior izquierda del cuadro de diálogo de símbolos, coloque los módulos ledwater e int_div debajo. projet en el archivo gráfico en ed_wter.bdf, agregue pines de entrada y salida, haga doble clic en cada símbolo de pin para nombrar el pin y nombre el pin led[7..0] conectado al módulo ledwater como led[7.. 0]. Con el módulo int_div El pin al que está conectado el reloj se denomina reloj. El clk_out del módulo int_div está conectado al clk del módulo ledwater. Haga doble clic en el cuadro de parámetros de int_div, modifique los parámetros, cambie el valor de F_DIV a 24.000.000 y cambie el valor de f_div_width a 25. Haga clic en el botón "Aceptar" para guardar el archivo de parámetros modificado. Si puede ver el cuadro de configuración de parámetros en el medio de led_water.bdf, puede hacer clic con el botón derecho del mouse en el espacio en blanco y seleccionar el comando mostrar asignación de parámetros para mostrar el cuadro de configuración de parámetros. (6) Seleccione el dispositivo de destino y bloquee el pin correspondiente. El dispositivo seleccionado aquí es el chip EP 1C6Q240C8 de la serie Cyclone de Altera. Los métodos de bloqueo con pasador se enumeran en la Tabla 3.1. Configure los pines no utilizados como entradas de tres estados (deben configurarse; de ​​lo contrario, el chip podría dañarse).

Tabla 3.1 Pin de señal del modo de bloqueo de pin pin de señal 1c 612EDA 1c 612EDA LED[0]505050 LED[5]474747 LED[1]535353 LED[6]484848 LED[2]545454 LED[7]494949 LED[3] 55555555Compilar todo proceso de documentos del proyecto. Si se encuentra un error durante el proceso de compilación, busque y corrija el error hasta que la compilación sea exitosa. (8) Finalmente, conecte la tapa corta del puente a LED0~LED7 de JP6 en la caja de experimentos smartSOPC, de modo que LED1~LED8 estén conectados a los pines 50, 53~55, 176 y 47~49 de FPGAD respectivamente. Conecte ambos extremos del cable de descarga AlteraByteBlasterⅱII al puerto paralelo de la impresora de la PC y al puerto de descarga JTAG en la placa central QuickSOPC, encienda la alimentación, ejecute el comando de descarga y descargue el programa al dispositivo FPGA. En este momento, puede ver la luz encendida en la caja del experimento smartSOPC. (9) Cambie el coeficiente de división de frecuencia del módulo de división de frecuencia (int_div), vuelva a compilar y descargar, y observe los cambios en la lámpara de agua corriente. 5. Lista del programa de referencia experimental 3.2 LED agua. v módulo LED water (LED, CLK); //Nombre del módulo LED[7:0]; //Definir la entrada de salida del LED //Definir el puerto de entrada del reloj Reg[8:0]led_r //Definir el registro de salida Asignar led = led _ r[7:0]; //Registrar salida siempre @(posedgclk)//Activar proceso para iniciar led _ r