Oct 29, 2007 #1 V verilog2vhdl Newbie level 6 Joined Oct 22, 2007 Messages 11 Helped 0 Reputation 0 Reaction score 0 Trophy points 1,281 Activity points 1,350 for loop is synthesizable for i in I_b'RANGE downto 0 LOOP O_g_tmp(i - 1) <= I_b(i) XOR I_b(i - 1); END LOOP; I see the error as Illegal use of 'range/'reverse_range attribute
for loop is synthesizable for i in I_b'RANGE downto 0 LOOP O_g_tmp(i - 1) <= I_b(i) XOR I_b(i - 1); END LOOP; I see the error as Illegal use of 'range/'reverse_range attribute
Oct 29, 2007 #2 M MGT78000 Newbie level 4 Joined Oct 29, 2007 Messages 5 Helped 0 Reputation 0 Reaction score 0 Trophy points 1,281 Activity points 1,304 is I_n(-1) defined? or should you only go downto 1?
Oct 29, 2007 #3 V verilog2vhdl Newbie level 6 Joined Oct 22, 2007 Messages 11 Helped 0 Reputation 0 Reaction score 0 Trophy points 1,281 Activity points 1,350 The code has been modified as follows and still see the same for i in I_b'RANGE downto 1 LOOP O_g_tmp(i - 1) <= I_b(i) XOR I_b(i - 1); END LOOP; I see the error as Illegal use of 'range/'reverse_range attribute
The code has been modified as follows and still see the same for i in I_b'RANGE downto 1 LOOP O_g_tmp(i - 1) <= I_b(i) XOR I_b(i - 1); END LOOP; I see the error as Illegal use of 'range/'reverse_range attribute
Oct 29, 2007 #4 M MGT78000 Newbie level 4 Joined Oct 29, 2007 Messages 5 Helped 0 Reputation 0 Reaction score 0 Trophy points 1,281 Activity points 1,304 should be I_b'LEFT, instead of I_b'RANGE, by the looks of it. https://www.csee.umbc.edu/help/VHDL/attribute.html
should be I_b'LEFT, instead of I_b'RANGE, by the looks of it. https://www.csee.umbc.edu/help/VHDL/attribute.html
Oct 30, 2007 #5 M mukesh1981 Newbie level 5 Joined Feb 2, 2007 Messages 9 Helped 1 Reputation 2 Reaction score 0 Trophy points 1,281 Activity points 1,322 for i in I_b'RANGE LOOP O_g_tmp(i - 1) <= I_b(i) XOR I_b(i - 1); end loop; If u want range attribute this is the correct syntax, for range attribute no need to write down to. It will take range according your bit vector.
for i in I_b'RANGE LOOP O_g_tmp(i - 1) <= I_b(i) XOR I_b(i - 1); end loop; If u want range attribute this is the correct syntax, for range attribute no need to write down to. It will take range according your bit vector.
Oct 30, 2007 #6 M manasiw2 Member level 1 Joined Oct 3, 2007 Messages 39 Helped 2 Reputation 4 Reaction score 2 Trophy points 1,288 Activity points 1,476 Hi, 'range operator returns whole range of std_logic_vector hence no need to specify 'downto x'. Which synthesizer you are using ? Added after 1 minutes: Hi, 'range operator returns whole range of std_logic_vector hence no need to specify 'downto x'. Which synthesizer you are using ?
Hi, 'range operator returns whole range of std_logic_vector hence no need to specify 'downto x'. Which synthesizer you are using ? Added after 1 minutes: Hi, 'range operator returns whole range of std_logic_vector hence no need to specify 'downto x'. Which synthesizer you are using ?
Oct 31, 2007 #7 A amitgangwar_vlsi Member level 5 Joined Jul 6, 2007 Messages 88 Helped 10 Reputation 20 Reaction score 2 Trophy points 1,288 Location Pune,India Activity points 1,913 I_b'RANGE you can use different attributes for that for i in I_b'RANGE loop if range of I_b is 7 downto 0 then you can use for i in I_b'high downto 0 loop for i in I_b'left downto 0 loop if range of I_b is 0 to 7 then you can use for i in 0 to I_b'high loop for i in 0 to I_b'right loop
I_b'RANGE you can use different attributes for that for i in I_b'RANGE loop if range of I_b is 7 downto 0 then you can use for i in I_b'high downto 0 loop for i in I_b'left downto 0 loop if range of I_b is 0 to 7 then you can use for i in 0 to I_b'high loop for i in 0 to I_b'right loop