We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 24755

9.1i EDK, microblaze_v5_00_c - UART 16550 does not give an output to the terminal when the H/W mult is used in microblaze_v5


My design is built with the MicroBlaze H/W multiplier. When running the TestApp_Peripheral, there is no output on the terminal. When the design is built without the H/W multiplier, the design produces an output on the terminal.


This problem is related to an optimization error with DSP48E causing swapped CE signals. A MULI result is "0" due to this bug, which causes an incorrect UART baud rate, and results in no output on the UART. 


In addition, this problem is caused by the improper merge of MREG in the DSP48 or DSP48E. Any EDK IP that takes advantage of the hardware multiplier will encounter this problem. 


To work around this problem, change MicroBlaze to use the software multiplier, or set the environment variable XIL_MAP_NO_DSP_AUTOREG for Virtex-4 or XIL_MAP_NO_DSP48E_AUTOREG for Virtex-5, as described below. 


Change MicroBlaze to Use Software Multiplier 


1. In the System Assembly View in XPS, right-click your MicroBlaze instance and select Configure IP. 

2. With the Instructions tab forward, make sure that you deselect Enable Integer Multiplier. 

3. Press the OK button. 


Setting the Environment Variable 




1. Right-click My Computer and select Properties. 

2. Click the Advanced tab. 

3. Click the Environment Variables button. 

4. Select the New button (either System or User Variables). 

5a. The "Variable name:" is XIL_MAP_NO_DSP_AUTOREG. -- Virtex-4 

5b. The "Variable name:" is XIL_MAP_NO_DSP48E_AUTOREG. --Virtex-5 

6. The "Variable value:" is 1. 


Unix (tcsh) 




AR# 24755
Date Created 09/04/2007
Last Updated 05/21/2014
Status Archive
Type General Article