title: What does `&` operator do to a standard logic vector?
body: <p>I'm looking at some code that does the following:</p>
  
  <pre><code>signal1 : std_logic
  vector1 : std_logic_vector
  
  vector1 &lt;= vector1(20 downto 1) &amp; signal1;
  </code></pre>
  
  <p>I assume that a <code>vector1(20 downto 1)</code> produces the following:</p>
  
  <pre><code>[20 19 18 ... 3 2 1]
  </code></pre>
  
  <p>but what I don't understand is what the <code>&amp;</code> does to it.  Does it return a <code>0</code> if <code>signal1</code> is <code>0</code> and the vector created if <code>signal1</code> is <code>1</code>?</p>