ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

FPGA/CPLD友の会コミュのVHDL記述についての質問です。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
現在、Quartus?ver4.2で以下のプログラムが記述された、
プロジェクトをコンパイルすると。

「Warning: VHDL Process Statement warning at sub_dis.vhd(45): signal "Q1" is read inside the Process Statement but isn't in the Process Statement's sensivitity list」

とWarningがでてしまいます。

私は、今までC言語を使っており、その感覚でプログラムを記述しているためにでてしまっていると思うのですが、
どなたか、この警告の改善方法を教えてください。


LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;--標準ロジック使用
USE IEEE.std_logic_unsigned.ALL;--算術パッケージ呼び出し(符号ビットなし)
USE IEEE.std_logic_arith.ALL;

--入出力変数の定義--

ENTITY sub_dis IS
PORT(
Q2 : IN std_logic_vector(15 downto 0);
CLK : IN std_logic;
RESET : IN std_logic;
Q1 : IN std_logic_vector(31 downto 0);
y : OUT std_logic_vector(15 downto 0)
);
END sub_dis;

------------------

--プログラム本体--
ARCHITECTURE RTL of sub_dis IS
------------------

--使用する変数の定義(信号の定義)--
SIGNAL Q : std_logic_vector(15 downto 0);
----------------------

--プログラム開始--

BEGIN

y<=Q;

PROCESS(CLK,RESET)--クロックかリセットが変化したら実行
BEGIN
if(RESET='1') then

Q<="0000000000000000";

else

Q<=Q1(30 downto 15) - Q2 ;

END if;
END PROCESS;

END RTL;

コメント(4)

まず、何を書きたいのかですねえ。
この process がどんな回路になるのか
さっぱりわからんので...

もし、クロックのエッジで動作すべきなら、
コード自体が間違っています。
reset の else にエッジをひっかけるように
書かないといけません。
clk'event and clk = 1
とかですな。

Q<="0000000000000000";
は、
Q <= (others => '0');
とすると簡単で、ミスも防げます。
同期回路ならelseにクロックのEVENTを、非同期ならPROCESSのあとに(変化したらそのPROCESS実行という)信号を加えましょう。
sensivitity list に Q1 が入っていないと言う警告だと思うのでsensivitity list に Q1を入れれば警告は出なくなると思います

PROCESS(CLK,RESET,sensivitity)

それよりも、のぼしぇもんさんが仰っているようにクロック同期がよろしいかと思います

BEGIN

y<=Q;

PROCESS(CLK)--クロックが変化したら実行
BEGIN
if rising_edge(CLK) then
 if(RESET='1') then
  Q <= (others => '0');
 else
  Q<=Q1(30 downto 15) - Q2 ;
 END if;
END if;
END PROCESS;
END RTL;

こんな感じかな?
のぼしぇもんさん・peaceofblueさん・S氏さんどうもありがとうございました。
すべてのプログラムをクロックの立ち上がりエッジで同期させて動作するようにプログラムを変更して動かした結果、気になっていた警告文を消すことができました。

また、いろいろと質問させていただくとは思いますがそのときは、よろしくお願いいたします。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

FPGA/CPLD友の会 更新情報

FPGA/CPLD友の会のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング