Connecting a STD_LOGIC to a one bit STD_LOGIC_VECTOR

mark_infinite picture mark_infinite · Apr 16, 2018 · Viewed 7.8k times · Source

I'm using Xilinx ISE and generated a memory using the CORE Generator & Architecture Wizard.

The problem is that it created a write enable signal (wea) as a STD_LOGIC_VECTOR(0 downto 0) and that results in a type mismatch:

Line ###: Type error near encnt ; current type std_logic; expected type std_logic_vector

How can I cast encnt, which is std_logic, to a one bit std_logic_vector?

(ISE doesn't allow me to change wea from the file of memory.)

Answer

scary_jeff picture scary_jeff · Apr 16, 2018

This is a pretty common scenario with these IP blocks. You can easily associate your std_logic signal like this:

wea(0) => encnt,

Instead of associating wea as a whole, you are just associating that one element (0). As wea only has one element, this assigns the whole vector.