コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
Wikippe
検索
検索
表示
ログイン
個人用ツール
ログイン
VHDLのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
VHDL
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
{{Infobox プログラミング言語 | name = VHDL | logo = | caption = | file ext = | paradigm = [[ハードウェア記述言語]] | released = {{Start date|1981}} | designer = | developer = | latest release version = IEEE 1076-2008 | latest release date = {{start date and age|2009|1|26}} | latest preview version = | latest preview date = <!-- {{start date and age|YYYY|MM|DD}} --> | typing = [[静的型付け]] | implementations = | dialects = | influenced by = [[Ada]] | influenced = | programming language = | operating system = | license = | website = | wikibooks = }} '''VHDL'''<ref>名前の由来は英語の「{{lang-en-short|very-high-speed-integrated-circuits hardware description language}}」である。</ref>は、[[デジタル回路]]設計用の、[[ハードウェア記述言語]]の一種である。[[EDA]]分野における標準の一つで、主として[[論理回路]]の設計に、特に[[FPGA]]や[[ASIC]]などの設計で使われる。規格が存在し、[[IEEE]] 1076-2008 である。 == 歴史 == 米国[[国防総省]]は、業者の納品する機器で含む[[ASIC]]の動作の文書記述のためにVHDLを開発した。すなわち、分厚く複雑になりがちな紙のマニュアルの代替を目指したのが始まりである。 全般に、同じく米国防総省のプログラミング言語である[[Ada]]の影響が大きく、その構文は(Adaと同じく)いわゆる「[[ALGOL]]系」である。規格では、ケース・インセンシティブ(大文字、小文字の区別をしない)としている。 この文書作成用言語で書いた仕様がそのまま実行できたら便利であろうとのアイデアにより、論理([[シミュレータ]])が実装され、さらにゲートレベルの回路を生成する[[論理合成]]ツール(ソフトウェア)が実装された。合成ツールを用いれば、他のHDLと同様、同じVHDL記述から設計者の指定する条件で別の回路を合成することもできる。費用を優先するか、性能を優先するか、その他各種の複合条件を指定して生成することができる。 VHDLの最初のバージョンは[[IEEE]] 1076-1987として規格化した。[[整数]]、[[実数]]、論理値、文字、時間およびそれらの配列として<tt>bit_vector</tt>や<tt>string</tt>([[文字列]])など広範囲なデータ型がある。 しかしこのバージョンでは多値論理を定義していない。信号のドライブ能力や不定値を考慮した9値の<tt>std_logic</tt>を定め、IEEE 1164として規格化した。 その後、IEEE 1076-1993<ref>[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=392561 1076-1993 IEEE Standard VHDL Language Reference Manual]</ref>、IEEE 1076-2000<ref>[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=893288 1076-2000 IEEE Standard VHDL Language Reference Manual]</ref>、IEEE 1076-2002<ref>[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1003477 1076-2002 IEEE Standard VHDL Language Reference Manual]</ref>、IEEE 1076-2008<ref>[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4772740 1076-2008 IEEE Standard VHDL Language Reference Manual]</ref> と改定していった。 == コード例 == ここではVHDL-93に準拠したコードを示す。 === [[Hello world|Hello World]] === Hello Worldプログラム例: <source lang="vhdl"> -- VHDL example programme: hello.vhd use std.textio.all; entity hello is end entity hello; architecture Wiki of hello is constant message : string := "hello world"; begin process is variable L: line; begin write(L, message); writeline(output, L); wait; end process; end architecture Wiki; </source> メッセージはシミュレータのデフォルト出力ウインドウに出力される。 === [[フィボナッチ数列]] === 次の例はもう少し実用的なものである: <source lang="vhdl"> -- Fib.vhd -- -- Fibonacci number sequence generator library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; entity Fibonacci is port ( Reset : in std_logic; Clock : in std_logic; Number : out unsigned(31 downto 0) ); end entity Fibonacci; architecture Rcingham of Fibonacci is signal Previous : natural; signal Current : natural; signal Next_Fib : natural; begin Adder: Next_Fib <= Current + Previous; Registers: process (Clock, Reset) is begin if Reset = '1' then Previous <= 1; Current <= 1; elsif Clock'event and Clock = '1' then Previous <= Current; Current <= Next_Fib; end if; end process Registers; Number <= to_unsigned(Previous, 32); end architecture Rcingham; </source> シミュレーションを行うと<code>Next_Fib</code>がオーバーフローするまで、フィボナッチ数列を生成する。 ==参照== <references /> ==外部リンク== * [http://www.eda.org/twiki/bin/view.cgi/P1076/WebHome IEEE VASG (VHDL Analysis and Standardization Group)] [[Category:EDAソフト]] [[Category:ハードウェア記述言語]] [[Category:電子工学]] [[Category:IEEE]]
このページで使用されているテンプレート:
テンプレート:Infobox プログラミング言語
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
VHDL
に戻る。
検索
検索
VHDLのソースを表示
話題を追加