--- Quote Start ---
Thanks for the suggestion. When I drive it high, i.e. instead of 'Z' I write '1', the pin is initially 3.3V.
--- Quote End ---
Ok. This implies that the weak pull-up circuit just happens to generate a different logic high level. Its not worth worrying about. If you want a higher voltage, then you need to use an external pull-up, eg., 10K.
--- Quote Start ---
What I also found out is that for SOPC builder components, I cannot define initial states like that. For instance, when I use SPI interface with Clock polarity = 1, Clock phase = 1, after programming the device, only SSn and SCLK are 3.3V. MISO is 3V and MOSI is 0V. MOSI becomes 3.3V in the idle state only after sending a byte via SPI. I have to figure out now how I can set all the lines to be 3.3V from the beginning.
--- Quote End ---
Read the source code for the SPI controller. Somewhere in the reset logic will be the code that sets MOSI. Change it to output a logic high.
Of course, now you have a non-standard install of the IP.
Why do you care if the MOSI is low? SPI devices clock it in on the clock edges. Use SignalTap to trace an SPI transaction. You might find that MOSI does what you need when there are SPI clocks present. Or setup Modelsim and look at the signals.
Cheers,
Dave