7

明確に定義されたビット幅を持つ VHDL で符号なし整数を使用しようとしています。VHDL は、次のように定義されたこれらの型にリテラル値を割り当てようとしているのが好きではないようです。

variable LCD_DATA: unsigned(19 downto 0) := 0;

しかし、私の IDE (Quartus) では、「UNSIGNED 型が整数リテラルと一致しません」という苦情が表示されます。このように定義された型に数値を追加することについても苦情を受けます。私が行う必要がある好ましい変更は何ですか?

4

3 に答える 3

1
--Either 
variable LCD_DATA: unsigned(19 downto 0) := (others => '0');
--Or you can also write it like 
variable LCD_DATA: unsigned(19 downto 0) := "00000000000000000000";

そして、このタイプの番号を追加しながら、質問の2番目の部分について。

library ieee;
use ieee.std_logic_1164.all;
use IEEE.NUMERIC_STD.ALL;

コードで上記のライブラリを使用しているかどうかを確認してください。

于 2014-03-18T06:54:30.917 に答える
1

unsigned要素の値が「0」になる std_ulogic に関連しています。

variable LCD_DATA: unsigned (19 downto 0) := (others => '0');

これは、すべての要素が「0」に設定されたデフォルトの割り当ての集計を提供します。

整数型の単一の要素を std_ulogic 要素の配列に割り当てることはできません。

パッケージnumeric_stdで定義された「+」関数を使用して、自然(符号なし)または整数(符号付き)に符号付きまたは符号なしを追加できます。

  -- Id: A.5
  function "+" (L: UNSIGNED; R: NATURAL) return UNSIGNED;
  -- Result subtype: UNSIGNED(L'LENGTH-1 downto 0).
  -- Result: Adds an UNSIGNED vector, L, with a non-negative INTEGER, R.

  -- Id: A.6
  function "+" (L: NATURAL; R: UNSIGNED) return UNSIGNED;
  -- Result subtype: UNSIGNED(R'LENGTH-1 downto 0).
  -- Result: Adds a non-negative INTEGER, L, with an UNSIGNED vector, R.

  -- Id: A.7
  function "+" (L: INTEGER; R: SIGNED) return SIGNED;
  -- Result subtype: SIGNED(R'LENGTH-1 downto 0).
  -- Result: Adds an INTEGER, L(may be positive or negative), to a SIGNED
  --         vector, R.

  -- Id: A.8
  function "+" (L: SIGNED; R: INTEGER) return SIGNED;
  -- Result subtype: SIGNED(L'LENGTH-1 downto 0).
  -- Result: Adds a SIGNED vector, L, to an INTEGER, R.
于 2014-03-18T06:26:10.790 に答える