Cree su propio entorno digital IC EDA (5): cree un entorno de automatización FPGA (desarrollo de automatización de scripts vivado Tcl en Linux), proceso de diseño de IC amateur y ruta

1. Breve descripción

FPGA también es indispensable para un entorno IC EDA completo La verificación del prototipo de FPGA es una parte importante del proceso de diseño de IC. Un chip necesita invertir una gran cantidad de mano de obra, recursos financieros y un largo ciclo de I + D desde el diseño hasta la cinta. Si la cinta falla, será una gran pérdida para la empresa. Al mismo tiempo, es una pérdida importante para la empresa. Ingenieros de I + D. Si se cometen errores de diseño, el interno será responsable, por lo que la verificación es particularmente crítica. Se pueden encontrar muchos errores de diseño. La verificación de FPGA se verifica en el circuito real y se pueden encontrar algunos errores que el simulador no encuentra Si el chip de diseño es soc, entonces también puede llevar a cabo el desarrollo integrado para la función del chip en la FPGA, sin esperar a que el chip regrese para el desarrollo, acortando todo el ciclo de desarrollo del chip. La verificación del prototipo de FPGA es una tarea más complicada, de lo que estoy hablando aquí es más general, y los amigos que quieren saber sugieren algo para buscar.
Pero para nosotros, es un desarrollo amateur. Es imposible pasar por el proceso completo de desarrollo de IC desde el front-end hasta el back-end. Sin embargo, para obtener un mejor efecto de aprendizaje, tenemos que elegir: Diseño => Frente imitación => FPGA, y la síntesis de CC se puede agregar más tarde A diferencia de la postimitación, no hay un proceso de back-end, por lo que es muy importante construir un entorno FPGA Este entorno también se puede cambiar para decir: desarrolle FPGA bajo Linux.

2. Estructura del directorio del proyecto IC

En la actualidad, se determina tentativamente como la siguiente estructura de directorio, como se muestra en la figura para un proyecto de luz respirable, pero se cambiará de acuerdo con la situación específica del proyecto en el futuro, consulte la situación real;

1) Catálogo de primer nivel del proyecto IC:

  • FPGA: almacena archivos relacionados con FPGA
  • módulo: almacena el código fuente del proyecto
  • script: el script que almacena el proyecto, que aún no se ha utilizado
  • tb: almacenar casos de prueba
  • verificación: directorio de verificación de simulación

2) Directorio de proyectos FPGA:

  • restricción: Coloque el archivo de restricción FPGA
  • libs: Coloque el núcleo IP FPGA
  • script: almacenar script de síntesis FPGA
  • trabajo: directorio de síntesis FPGA
    Inserte la descripción de la imagen aquí

3. Construcción del entorno FPGA

Actualmente estoy usando la placa FPGA K325T de Xilinx. El artículo anterior también decía que Vivado 2019.1 se ha instalado en el entorno EDA. La instalación bajo Linux es muy simple, por lo que no hablo de cómo instalar Vivado aquí. Necesitas Vivado instalación backstage para responder "vivado" .obtener.

1) Agregar ambiente vivado

En el directorio de inicio, abra .bashr, agregue el siguiente comando, modifique la ruta de acuerdo con la suya y recuerde la fuente después de guardar y salir para que el entorno sea efectivo. Luego ingrese "vivado" en la terminal para iniciar el vivado gui.

source /home/Xilinx/Vivado/2019.1/settings64.sh

Inserte la descripción de la imagen aquí

2) secuencia de comandos FPGA Tcl

El siguiente es el script Tcl sintetizado por vivado, modificado de acuerdo con su propia placa Xilinx FPGA.

  • Mi placa es un reloj diferencial y usa la IP de clk_wizd;
  • La última línea genera el archivo mcs programado por Flash, que debe ajustarse según el modelo de Flash a bordo;
  • De acuerdo con la cantidad de procesadores asignados por su máquina virtual, configure maxThreads. Si la configuración del script excede la asignación real, se producirá un error completo. Este problema me enfrentará por un día;
#################################################
# vivado FPGA environment configuration
#################################################

set PRJ_NAME        Breath_led
set SCRIPT_DIR      ../script
set CONST_DIR       ../constraint
set DEVICE_NAME     xc7k325tffg676-2
set XDC_FILE        $CONST_DIR/pin.xdc
set CODE_FILE       ../../module/breath_led.v
################################################
#Step1: Create project and overwrite old files
################################################
create_project -force $PRJ_NAME ./ -part $DEVICE_NAME
read_xdc $XDC_FILE
add_file $CODE_FILE
add_files ../libs/sysclk_wiz/sysclk_wiz.xci
set_property ip_repo_paths ../libs/sysclk_wiz [current_project]
set_property verilog_define {
    
    FPGA_SYN=1} [get_filesets sources_1]
#set max threads
set_param general.maxThreads 8

# Launch Synthesis
launch_runs synth_1
wait_on_run synth_1
# Launch Implementation
launch_runs impl_1 -to_step write_bitstream
wait_on_run impl_1
write_cfgmem -format mcs -size 128 -interface BPIx16 -loadbit {
    
    up 0x0 "Breath_led.runs/impl_1/breath_led.bit" } -checksum -force -disablebitswap -file Breath_led.runs/impl_1/Breath_led.mcs

3) Makefile

Necesito decir "abrir", esto puede iniciar automáticamente vivado gui y cargar automáticamente el proyecto integrado.

clean:
	rm -rf *.cache *.hw *.sim *.ip_user_files *.runs
	rm -f *.jou *.log *.txt *.xpr  
built:
	vivado -mode batch -source ../script/create_prj.tcl & 

open:
	vivado -source open_project ./*.xpr &

4. Vivodo no puede reconocer el tablero

Configure la compatibilidad USB de la máquina virtual, la configuración predeterminada es compatible con usb2.0, mi computadora es usb3.0, modifique de la siguiente manera.
Inserte la descripción de la imagen aquí
Si aún no se reconoce, instale el controlador de cable, ingrese al directorio del controlador y realice la instalación raíz. Luego reinicie vivado y la placa debería ser reconocida.

cd /home/Xilinx/Vivado/2019.1/data/xicom/cable_drivers/lin64/install_script/install_drivers
sudo ./install_drivers

Inserte la descripción de la imagen aquí

5. Resumen

En este punto, el entorno IC EDA ha sido relativamente completo, y más adelante se agregarán nuevos contenidos, que pueden estar principalmente basados ​​en proyectos.Actualmente, el Hummingbird E203 está en estudio y se compartirá en base a este entorno. Si desea obtener Breath_led, el backend responde " Breath_led " para obtener el enlace de descarga.
Efecto de demostración de todo el proceso:

Entorno digital IC EDA (vcs2018 + verdi2018) Demostración de un entorno de desarrollo amateur para ingenieros de IC digitales (soporte linux automatizado y desarrollo eficiente de FPGA)

Portal: Digital IC EDA Environment (vcs2018 + verdi2018) Demostración de un entorno de desarrollo amateur para ingenieros de IC digitales (admite el desarrollo automatizado y eficiente de Linux de FPGA

6. La cuenta pública y el área de intercambio de WeChat

Acabamos de crear un grupo de intercambio de WeChat, ¡bienvenido a unirse! ! !
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_40377195/article/details/111599965
Recomendado
Clasificación