APB PENABLE solo permanece para un PCLK independientemente de la señal PREADY

0

Seguí AMBA 3 APB specification para diseñar mi Esclavo APB. La lectura desde el esclavo requiere varios ciclos de reloj para que los datos estén listos para el bus, así que configuro mi señal PREADY para un ciclo de reloj cuando los datos son válidos (el valor predeterminado de PREADY siempre es bajo). Sin embargo, el controlador de bus APB no espera cuando PREADY se pone en HI. Mantiene PENABLE para un ciclo de reloj y termina la sección. ¿Alguien tiene una idea de lo que está mal?

Se está ejecutando en el procesador de software CortexM1 en Microsemi FPGA.

    
pregunta Nazar

1 respuesta

0

Esta no es una respuesta completa, pero es demasiado grande para un comentario:

He diseñado innumerables módulos AXI, AHB y APB. Por lo que puedo ver, la respuesta a tu RDY es incorrecta. La nota de aplicación que menciona muestra claramente el soporte para los ciclos de espera.

Lo que puedo pensar es:

  1. El módulo APB de Cortex está roto o no es compatible con Pready.
  2. El RDY que genera no es el que ve el núcleo.
  3. La forma de onda no se corresponde con lo que realmente está sucediendo (que es más o menos una variante en 2. arriba).

Mi siguiente paso en la depuración sería intentarlo:

  • Quita el periférico y ata el pready bajo. Su procesador debería 'bloquearse' al acceder a cualquier dirección APB.

  • Crea un periférico APB que devuelva, por ejemplo, Los bits de la dirección en la lectura y ver si el acceso de lectura para eso funciona.

respondido por el Oldfart

Lea otras preguntas en las etiquetas