プロが教えるわが家の防犯対策術!

VHDLについてですが何がおかしいのでしょう?
下記をSynthesize実行すると「 Line 22. rol can not have such operands in this context.」という表示がでます。どういうことなのでしょうか?ソースは本のサンプルどおりのはずなのですが・・。(VHDLとCPLDによるロジック設計入門)という本の126Pのリスト6.12です。
CPLDでザイリンクスWebpackV6.31を使っています。
=====================
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;

entity shift2 is port(
SW : in unsigned(1 to 4);
SW2,SW3 : in std_logic;
LED : out unsigned(5 downto 2));
end shift2;

architecture RTL of shift2 is
signal S : integer;
begin
S <= CONV_INTEGER( not (SW3 & SW2));
LED <= SW rol S; ------------------------------Line22
end RTL;

A 回答 (1件)

「rol」の演算子が読み込まれていないようですね。


パッケージの呼び出しはしているので、パスが通っていないのか、パッケージが壊れているのか分かりません。

私の環境では上記のコードで問題無くフィッティングまで行けましたので、
ソフトの再インストールをするかバージョンを上げるといった方法が良いかもしれません。

的確な回答でなく、申し訳ありませんが、ご参考になれば幸いです。
    • good
    • 0
この回答へのお礼

私の環境が悪いんでしょうか。詳しくわかりませんが開発環境を考えて見ます。
遅くなりましたが回答ありがとうございます。

お礼日時:2010/09/11 22:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!