moeedmughal
Junior Member level 2
- Joined
- Oct 1, 2015
- Messages
- 21
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1
- Location
- United Kingdom
- Activity points
- 196
I have started to migrate our firmwares from ISE to Vivado (reason is upgrading from spartan3 to Artix7). While migrating first firmware i initially came across 4 errors after i run synthesis. which are as follow
1. [Synth 8-248] direction of slice does not match direction of prefix ["C:/Firmware/LibVHDL/src/UniPackage.vhd":1135]
2. [Synth 8-285] failed synthesizing module 'CommandsProcessor' ["C:/Firmware/Project/Magsus/Mag_02/src/CommandsProcessor.vhd":40]
3. [Synth 8-285] failed synthesizing module 'MagSusMeter' ["C:/Firmware/Project/Magsus/Mag_02/src/MagSusMeter.vhd":37]
4. [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details
Error#1 points to a function in file "UniPackage.vhd". The function converts ascii into binary.
I guess the way it was done in ISE is not compatible in Vivado.
If you need any other information regarding Error#1 please ask freely. Any help in regard to resolve the errors will highly be appreciated.
Regards,
Moeed
1. [Synth 8-248] direction of slice does not match direction of prefix ["C:/Firmware/LibVHDL/src/UniPackage.vhd":1135]
2. [Synth 8-285] failed synthesizing module 'CommandsProcessor' ["C:/Firmware/Project/Magsus/Mag_02/src/CommandsProcessor.vhd":40]
3. [Synth 8-285] failed synthesizing module 'MagSusMeter' ["C:/Firmware/Project/Magsus/Mag_02/src/MagSusMeter.vhd":37]
4. [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details
Error#1 points to a function in file "UniPackage.vhd". The function converts ascii into binary.
Code:
function is as under:
function conv_ascii_to_binary(value: std_logic_vector) return std_logic_vector is
variable byte0 : std_logic_vector(7 downto 0);
variable byte1 : std_logic_vector(7 downto 0);
variable byte2 : std_logic_vector(7 downto 0);
variable binary : std_logic_vector(7 downto 0);
begin
if (value'LENGTH > 24) then
assert false
report "conv_ascii_to_byte: argument's length is more than 23 bits"
severity FAILURE;
else
[COLOR="#FF0000"]ERROR ==>[/COLOR] byte0 := value(23 downto 16) - x"30" ;
byte1 := (value(15 downto 8) - x"30") * x"0A";
byte2 := (value(7 downto 0) - x"30") * x"64";
binary := byte0 + byte1 + byte2;
end if;
return binary;
end conv_ascii_to_binary;
I guess the way it was done in ISE is not compatible in Vivado.
If you need any other information regarding Error#1 please ask freely. Any help in regard to resolve the errors will highly be appreciated.
Regards,
Moeed
Last edited by a moderator: