¿Qué es un BFM, qué hace en una simulación?

Cuando queremos probar un sistema digital y verificar su funcionamiento, simplemente escribimos un banco de pruebas y ponemos algún estímulo para un DUT. Básicamente, esto implicaría asignar un valor a una señal seguido de una declaración de espera seguida de otra asignación de señal y una declaración de espera y así sucesivamente, esto se hace hasta que hayamos probado todas las entradas posibles que queremos, después de lo cual la simulación llega a su fin.

Ahora me he encontrado con algo llamado BFM y quiero saber dónde encaja en el escenario. ¿Existen diferentes tipos de BFM para diferentes tipos de pruebas, ya que habrá (ocasionalmente) docenas de señales en un DUT? Lo que espero es que un BFM (que significa modelo funcional de bus) contenga instrucciones para estimular las señales de DUT. Por lo tanto, en un banco de pruebas simplemente instanciaremos el BFM y su DUT correspondiente y los conectaremos. No es necesario hacer nada más y el DUT se simulará sin que tengamos que escribir ninguna línea para asignaciones de señales o declaraciones de espera, ¿es correcto mi entendimiento (suposición)?

ver folleto de instrucciones? Todo el equipo del banco de pruebas tiene cosas muy específicas del proveedor. Personalmente nunca he oído hablar de BFM, debe ser algo específico de tu marca de siggen.
Modelo Funcional de Bus. Imita algún bus estándar en simulación, nada que ver con un siggen.
Bien, encontré BFM en Altera Qsys.

Respuestas (1)

Los BFM son módulos SW que encapsulan la funcionalidad de un componente HW (modelo de comportamiento). Los BFM no son sintetizables.

El empleo de BFM permite:

  1. Para simular un comportamiento del componente HW cuando su descripción RTL no está disponible o el componente reemplazado por BFM ya se ha verificado.
  2. Simplifique el proceso de verificación convirtiendo comandos simples en secuencias complicadas de señales dentro de BFM.

El n.° 1 se aplica cuando se diseñan algunos módulos en paralelo: BFM es mucho más fácil de escribir y probar que un diseño RTL completo. Puede usar BFM en la simulación de otros módulos hasta que el RTL de los módulos reemplazados con BFM esté listo.

El n.° 1 también se aplica cuando el módulo representado por BFM ya se ha probado (como una IP de terceros); no desea perder el tiempo simulando su implementación interna, solo necesita algún modelo que pueda "imitar" el comportamiento de esta IP. mientras consume menos tiempo computacional.

#2 dice que los BFM podrían emplearse para traducir comandos simples (como write(pcie_prim, mem_rd32, data, ...)) en una secuencia (complicada) de asignaciones de señales que representan algún protocolo complejo (como PCIe).

Le invitamos a leer este documento SNUG para una discusión mucho más amplia.

El enlace para el papel no funciona.