Verilog inout port

0

Tengo una pregunta de duda. Sé que puedo usar "inout ports" para conectarme a un pin, pero ¿puedo usar "inout ports" para conectar internamente 2 módulos?

Lo pregunto porque escribí un controlador SRAM y un modelo HDL de la SRAM, y recibo este error:

ERROR:Xst:528 - Multi-source in Unit <top> on signal <data_bus<0>>;
   this signal is connected to multiple drivers.
    
pregunta Condor

2 respuestas

0

Lo que estás tratando de hacer está bien para la simulación, pero no debes intentar sintetizar tu banco de pruebas.

    
respondido por el Dave Tweed
0
ERROR:Xst:528 - Multi-source in Unit <top> on signal <data_bus<0>>;
this signal is connected to multiple drivers.

Este mensaje le dice que tiene varias salidas conectadas entre sí al mismo tiempo . Debe implementar el multiplexor y tener alguna señal de selección (y, opcionalmente, habilitar la señal si se espera que la salida se triplique, NO en el caso de líneas internas).

Para las líneas bidireccionales, se implementan dos multiplexores, lo que hace que un dispositivo se emita y otro se ingrese con una señal de selección única. Cuando es alta, la comunicación va en una dirección, cuando baja, en otra. Si tiene varios dispositivos en el bus interno, simplemente construye una lógica de selección.

Sin embargo, ¿realmente necesita bus interno bidireccional? ¿Estimó si es efectivo a partir del rendimiento y el uso de recursos?

Sospecho que los pines inout externos están diseñados para propósitos de economía de pines, por lo tanto, ya son un tipo de optimización de hardware. Al forzar sus partes internas de FPGA / CPLD de la misma forma que el hardware optimizado, probablemente, deshabilite la optimización del compilador Verilog, que puede ser mejor que el esquema de entrada.     

respondido por el Anonymous

Lea otras preguntas en las etiquetas