![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは。VHDLのprocessとeventで質問です。
process (CLOCK,RESET)
begin
if(RESET = '1') then
...(処理)
elsif(CLOCK'event and CLOCK = '1') then -- ☆
...(処理)
end if;
end process;
で書くのは黄金パターンのようですが、
☆の行を以下のようにevent文を取り払うと、何が違うのでしょうか?
elsif(CLOCK = '1') then
諸々の解説を見ると、processは()内の状態が変わったときにendまでのものが同時に処理されるという解説があり、eventはその指定された信号が変わったときにtrueなわけですよね。それでは何故processとeventを併用する必要性があるのでしょうか?
シミュレーションをやった感じでは何にも変わり映えしないのですが…厳密に何が起きているか知りたいのです。
No.1ベストアンサー
- 回答日時:
私もVHDLをかじっただけの人間なので詳しいことはわかりませんが、参考になれば幸いです。
憶測ですが、言語で決まった書き方をすることはコンパイラに対し、明示的に一定の回路を形成するための指示を与えることができるような気がします。例えば
entity Led_test is
Port ( CLK : in STD_LOGIC;
RESET : in STD_LOGIC;
OUT0 : out STD_LOGIC);
end Led_test;
architecture Behavioral of Led_test is
signal sub_out : std_logic;
begin
process(CLK,RESET)begin
if(RESET= '1')then
sub_out <= '1';
elsif(CLK'event and CLK = '1')then
sub_out <= sub_out xor '1';
else
end if;
end process;
OUT0 <= sub_out;
end Behavioral;
のような記述をした場合、Xilinx ISE 11でデバイスがXC9572の場合は出力までの遅延が6.5nsと出ました。
一方、eventを省いた場合は出力ラッチが複数あるというWARNINGが発生しましたが、コンパイルは成功し、遅延が10nsとなりました。この原因はデバイスとのfit行程でCLKをクロック信号、RESETをリセット信号として認識したかそうでないかの違いによるものだと思います。現に自動配置されたピンを確認すると前者ではそうなっていました。後者は通常のIOピンに接続されていたので、遅延が長くなったと思われます。
結局、結論はわからないのですが、process文とeventについては記述する方法だと私は認識しています。的外れな回答で申し訳ない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードセットにnullの場合
-
subsequentとnextの違いってな...
-
TreeViewのTag情報取得
-
アクセスできない保護レベルエ...
-
C言語のサフィックスについて
-
C#のループでtextboxに値を入れ...
-
他のフォームから別のフォーム...
-
演奏記号の・・・・
-
VBAでcallで呼び出したsubを終...
-
テキストボックスかラベル上の...
-
VB.NETでのイベントの途中終了
-
配列に複数の値があるか簡潔に...
-
Excel VBAでsub,dimは何の略?
-
【C#】コンボボックスにおけるS...
-
零元のはいっている
-
構造体のコピー
-
VBAのフォーム カーソル移動
-
GetNextWindowがDLLファイルUse...
-
プロシージャまたは関数の引数...
-
ユーザーフォームへのデータ入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードセットにnullの場合
-
タイムアウトする仕組みを作りたい
-
subsequentとnextの違いってな...
-
verilogのcase文
-
日付の重複
-
vbsのmsgboxランダム表示について
-
リスト間のアイテム移動について
-
TreeViewのTag情報取得
-
pascalでの二分探索(バイナリ...
-
delphi
-
Pascalのプログラムです
-
C言語のプログラムで...
-
【FPGA】VHDLのprocessとevent
-
エクセルVBAついて ①if•••••the...
-
FORTRAN77でプログラミング
-
クラスモジュールの処理
-
EXCEL VBA 文字 アドレス 検...
-
パスカル言語
-
Verilog-HDLによる設計において
-
なんで? cEn-P^-1AP=P^-1(cEn-AP)
おすすめ情報