vhdlで制約のないベクトルを返す最良の方法は何ですか?vhdlで制約のない配列を返す
function func(selector : natural) return std_logic_vector is
begin
case selector is
when 3 => return std_logic_vector("11");
when 4 => return std_logic_vector("101");
when others => return std_logic_vector("0");
end case;
end function;
この場合、文字列リテラルは型変換オペランドにはなりません。したがって、動作しません。信号セレクタは一般的なものなので、合成可能である必要はありません。
数値リテラル3と4の後に構文エラーがあります。タイプを明示的に指定する修飾表現を使用することを意味しますか?修飾された式: 'std_logic_vector '(" 11 ")'、 'std_logic_vector'(" 101 ");'および 'std_logic_vector '(" 0 ")'表示されていないエラーメッセージは、文字列をstd_logic_vectorに変換すると入力できないことを示します。要素の型は同じではありません(文字とstd_ulogic)。それらの ':は "=>"でなければなりません。 – user1155120
:<=はここでは間違いでしたが、不要なコードを使わずにstackexchangeに新しい部分をタイプしました。元のコードには "<="もあります。しかし、それはあなたが括弧の前で言及した 'と一緒に働く。たくさんありがとう。この場合、この関数がどのように呼び出されたかについてのヒントを教えてください。 これを回答にコピーしてください、私は受け入れられたとマークします! –
質問を編集してください... – JHBonarius