Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > to_stdlogicvector ERROR

Reply
Thread Tools

to_stdlogicvector ERROR

 
 
sebs
Guest
Posts: n/a
 
      11-11-2008
Hey,

I have a unsigned to std_logic_vector conversion and I get the
following error:

"to_stdLogicVector can not have such operands in this context."

I'm using Xilinx EDK 8.1

Here is some of my code to explain where the errror occurs.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

M_ABus : out std_logic_vector(0 to 31);


signal row_cnt : unsigned(0 to 9);
signal row_cnt_en : std_logic;
signal row_rst : std_logic;


addr_counter : process(PLB_Clk, PLB_Rst)
begin
if PLB_Clk'event and PLB_Clk = '1' then
if row_cnt_en = '1' then
row_cnt <= row_cnt + 1;
end if;
end if;
if (PLB_RST or row_rst) = '1' then
row_cnt <= (others => '0'); -- 768-1
end if;
end process;

M_ABus(11 to 20) <= to_stdLogicVector(row_cnt); -- the error
occurs in this line.

Hope someone can help me with this.

Sebastian
 
Reply With Quote
 
 
 
 
kennheinrich@sympatico.ca
Guest
Posts: n/a
 
      11-11-2008
On Nov 11, 7:11*am, sebs <(E-Mail Removed)> wrote:
> Hey,
>
> I have a unsigned to std_logic_vector conversion and I get the
> following error:
>
> "to_stdLogicVector can not have such operands in this context."
>
> I'm using Xilinx EDK 8.1
>
> Here is some of my code to explain where the errror occurs.
>
> library ieee;
> use ieee.std_logic_1164.all;
> use ieee.numeric_std.all;
>
> * M_ABus * * : out std_logic_vector(0 to 31);
>
> *signal row_cnt * * *: unsigned(0 to 9);
> *signal row_cnt_en * : std_logic;
> *signal row_rst * * *: std_logic;
>
> addr_counter : process(PLB_Clk, PLB_Rst)
> *begin
> * *if PLB_Clk'event and PLB_Clk = '1' then
> * * *if row_cnt_en = '1' then
> * * * *row_cnt <= row_cnt + 1;
> * * *end if;
> * *end if;
> * *if (PLB_RST or row_rst) = '1' then
> * * *row_cnt <= (others => '0'); * -- 768-1
> * *end if;
> *end process;
>
> * M_ABus(11 to 20) <= to_stdLogicVector(row_cnt); * -- the error
> occurs in this line.
>
> Hope someone can help me with this.
>
> Sebastian


The function To_StdLogicVector() is defined for BIT_VECTOR, and
STD_ULOGIC_VECTOR only. But you're passing it an UNSIGNED. Even
though STD_UNLOGIC_VECTOR smells kind of like an UNSIGNED, it's a
different type. However, the element types of std_logic_vector and
unsigned are both std_logic though, so you could just pass them
element by element:

for i in 11 to 20 generate
m_ABus(i) <= row_cnt(i-11);
end generate;

I might be missing some obvious library conversion function, on the
other hand

- Kenn
 
Reply With Quote
 
 
 
 
KJ
Guest
Posts: n/a
 
      11-11-2008
On Nov 11, 7:11*am, sebs <(E-Mail Removed)> wrote:

> Hope someone can help me with this.


M_ABus(11 to 20) <= std_logic_vector(row_cnt);

KJ
 
Reply With Quote
 
sebs
Guest
Posts: n/a
 
      11-11-2008
On 11 Nov., 13:58, KJ <(E-Mail Removed)> wrote:
> On Nov 11, 7:11 am, sebs <(E-Mail Removed)> wrote:
>
> > Hope someone can help me with this.

>
> M_ABus(11 to 20) <= std_logic_vector(row_cnt);
>
> KJ


Thanks KJ that works

@Kenn

To_stdlogicvector is defined in ieee.numeric_std.all as

function TO_STDLOGICVECTOR ( ARG: UNSIGNED) return STD_LOGIC_VECTOR;
-- Result subtype: STD_LOGIC_VECTOR, same range as input ARG
-- Result: Converts UNSIGNED to STD_LOGIC_VECTOR.
 
Reply With Quote
 
KJ
Guest
Posts: n/a
 
      11-11-2008
On Nov 11, 8:02*am, sebs <(E-Mail Removed)> wrote:

> To_stdlogicvector is defined in ieee.numeric_std.all *as
>
> *function TO_STDLOGICVECTOR ( ARG: UNSIGNED) return STD_LOGIC_VECTOR;
> * * *-- Result subtype: STD_LOGIC_VECTOR, same range as input ARG
> * * *-- Result: Converts UNSIGNED to STD_LOGIC_VECTOR.


You might want to check your source that you got numeric_std from.
The to_stdlogicvector type conversion function was removed from the
final version of the IEEE standard in 1993.

KJ
 
Reply With Quote
 
kennheinrich@sympatico.ca
Guest
Posts: n/a
 
      11-11-2008
On Nov 11, 8:02*am, sebs <(E-Mail Removed)> wrote:
>
> @Kenn
>
> To_stdlogicvector is defined in ieee.numeric_std.all *as
>
> *function TO_STDLOGICVECTOR ( ARG: UNSIGNED) return STD_LOGIC_VECTOR;
> * * *-- Result subtype: STD_LOGIC_VECTOR, same range as input ARG
> * * *-- Result: Converts UNSIGNED to STD_LOGIC_VECTOR.


OK, I'll embarrass myself publicly and ask where (in what version,
from what web documentation, etc) that's defined. I was admittedly
looking at a very old numeric_std, but I still don't see it in the
200x packages at vhdl.org nor in my (admittedly old) tool copies.

And what am I missing here? If that function really is defined and is
visible as stated, then why doesn't the OP's code work?

I'm feeling like I'm starting to imagine things here...

- Kenn
 
Reply With Quote
 
loris loris is offline
Junior Member
Join Date: Jul 2008
Posts: 3
 
      11-27-2008
Sorry, but is not defined the function TO_STDLOGICVECTOR in the Std_Logic_1164 package?
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
to_stdlogicvector and to_unsigned seinal VHDL 3 06-06-2008 06:47 AM
To_stdlogicvector ashu VHDL 3 05-12-2006 06:42 PM
ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x8fc Thread 0x934 DBC 0x437b94 Jet'. ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr bazzer ASP .Net 0 03-24-2006 02:22 PM
Problems with using to_stdlogicvector() SR VHDL 3 06-18-2004 01:19 PM
question for to_stdlogicvector( ) to_verilog VHDL 1 01-04-2004 04:53 AM



Advertisments