Retomo este tema para decir que he probado el código de modulay y no sintetiza. Para la simulación funciona sin problemas pero para la síntesis da un error de "multisource". Aqui dejo el log de salida del sintetizador:
=========================================================================
* HDL Compilation *
=========================================================================
Compiling vhdl file "c:/prueba/bidir.vhd" in Library work.
Entity <PAD> compiled.
Entity <PAD> (Architecture <F>

compiled.
=========================================================================
* HDL Analysis *
=========================================================================
Analyzing Entity <pad> (Architecture <F>

.
Entity <pad> analyzed. Unit <pad> generated.
=========================================================================
* HDL Synthesis *
=========================================================================
Synthesizing Unit <pad>.
Related source file is "c:/prueba/bidir.vhd".
Found 1-bit tristate buffer for signal <PUERTO>.
Summary:
inferred 1 Tristate(s).
Unit <pad> synthesized.
=========================================================================
* Advanced HDL Synthesis *
=========================================================================
Advanced RAM inference ...
Advanced multiplier inference ...
Advanced Registered AddSub inference ...
Dynamic shift register inference ...
=========================================================================
HDL Synthesis Report
Macro Statistics
# Tristates : 1
1-bit tristate buffer : 1
=========================================================================
=========================================================================
* Low Level Synthesis *
=========================================================================
ERROR:Xst:528 - Multi-source in Unit <pad> on signal <PUERTO>
Sources are:
Output signal of BUFT instance <PUERTO_DINOUT_0>
Signal <PUERTO> in Unit <pad> is assigned to VCC
CPU : 4.42 / 5.63 s | Elapsed : 4.00 / 5.00 s
-->
Total memory usage is 79704 kilobytes
Number of errors : 0 ( 0 filtered)
Number of warnings : 1 ( 0 filtered)
Number of infos : 0 ( 0 filtered)
ERROR: XST failed
Process "Synthesize" did not complete.