
pp.17-18 これまで使ってきたシグナルは、プロセス同士でやりとりするための一種のデータオブジェクトであった。バリアブルのほうはもっと単純である。バリアブルはアサインされた途端に更新される。バリアブルは、プロセス内またはサブプログラム内でしか宣言できないし、宣言したプロセスまたはサブプログラムのローカル変数であるため、プロセス同士あるいはエンティティ同士でやり取りするのには使えない。要するに普通のプログラミング言語の変数と同じである。アサインには:=を使う。 ということなので試してみる。 library ieee; use ieee.std_logic_1164.all; use ieee…

pp.16-17 シーケンシャルステートメントはプロセス内かサブプログラム内かいずれかにしか記述できない。またプロセス内部でシグナルに値をアサインしても、そのシグナルの値はすぐには更新されない。プロセス内部でシグナルの値を読み取っても、そのシグナルの値は、プロセスがループを開始したときの値のままであり、シグナルの更新はプロセスの実行が終わるまで先延ばしされる。 ということなので試してみる。左がシグナルcopy、右がシグナルoriginal。copyは確かに1クロック遅れる。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logi…