• 締切済み

VHDLでできること

現在、私はプログラミング言語のVHDLを勉強していますが、この言語でどのようなことができるのかあまりはっきりしません。そこで、VHDLを使用してできることをどんな些細なことでもいいので教えていただけないでしょうか。あとVHDLの将来性のようなこともご存じの方がいらっしゃいましたら教えてください。よろしくお願いします。

みんなの回答

  • leyi
  • ベストアンサー率0% (0/3)
回答No.8

>VHDLを用いて計算機やCPUを作製することは可能でしょうか 元々その為の言語です。 >どのような使われ方になるのでしょうか。 1.EDAツール/テキストエディタを使って、回路の論理をVHDLで記述する。(RTL) 2.同様にテストベンチ/スティミュラス(テストパタン)を作成する。 3.シミュレーション→デバッグを繰り返し、納得のいく回路に仕上げる。 4.論理合成(DesignCompiler等)でネットリストに変換。 形式検証でRTLとネットリストの一致が取れているか確認。 5.ネットリストから、レイアウトツールでLSI用のマスクパタンを作成。 6.拡散,組み立ての工程を経てLSIの出来上がり。 7.LSIテスタでLSIを検査。合格したものを出荷。 少量なら4.でFPGA用に合成してFPGAを使うのが今風。

noname#7407
noname#7407
回答No.7

VHDLはよく使われていますがディジタル回路の すべてが記述できるために複雑な文法になって いると思います。 プログラムならプログラムを書いたらすぐにパソコン で実行できますが、VHDLで書いたディジタル回路はそうもいきません。 シミュレーションをしないと、動きそうなのか、どうなのかが分かりません、テストベンチを使うのですが、これを書くのが大変で小規模のディジタル回路以外なら手書きは不可能じゃないかと思うくらいです。 テストベンチを生成するプログラムと言うのもあるらしいですが安い値段では、ないようです。 FPGAやCPLDなどでは同期式で回路を駆動することが前提になっているようです。 同期式の論理設計に対応したフリーの開発環境があります。 独自の言語形式をとっていますが、ソースの書きっぱなしで作って見ないと動くかどうか分からないディジタル回路のイメージを払拭するためにシミュレーションを含んで自在に論理設計できるようになっています。 言語形式は独自ですがVHDLやVerilogのソースやテストベンチを出力するのでFPGAやCPLDの論理設計に十分に 使えるものです。 VHDLがC++とすればBASICくらいに簡単に論理設計ができるようになっています。 論理設計自体は、どの言語を使っていても共通する 原理原則がある訳ですから、まずはフリーの簡単な 設計環境で試してみるのも良いのではないでしょう か。 74シリーズの主用な品種を使った設計サンプルも 紹介されています。

  • xyzzy55
  • ベストアンサー率0% (0/0)
回答No.6

VHDLの将来性についてですが、今、主流はソフトからハードへと移行しています。今までは、ソフトウェア(つまり、CPUによる演算)が主流でしたが、ソフトウェアでさせていた事をVHDLのようなハードウェア記述言語とFPGAを用いて容易に実装できるようになっています。なので、VHDLには十分な将来性はあると思います。ただ、システムCやスペックCのようなハードウェア記述言語もあります。システムCやスペックCの方がどちらかと言うとよりソフトに近い記述でハードウェアを作る事ができると思われます。

noname#3775
noname#3775
回答No.5

VHDLは文字通りハードウェア・記述言語です。 普通は、ハードの設計用に使う言語と思われます。 大規模のPLD(FPGAと呼ばれます)などに使われています。 AISCにはVerilog、PLDはVHDLを使用するのが好きな人が多い様に思います。 (ベンダーのツール、ライブラリの関係もあるとおもいますが) PLDなどでは、Xilinx、アルテラ社のシェアは高いよと思います。 他、ACTEL、lattice、Cypress、Quiclogic 等々の半導体メーカから PLDなどが出ています。参考は、Xilinx社のサイトです。

参考URL:
http://www.xilinx.co.jp/
noname#3227
noname#3227
回答No.4

VHDLは論理設計をするための言語です、プログラム言語は論理的な手順を積み重ねて目的を解決しますが、VHDLはハードウェア記述言語(HDL)と言われるものに属しており、論理的な構造を作って目的を解決するものです。 どちらも論理設計の範疇にありますが、手法が異なっています。 しかし、記述形式はHDLとプログラム言語で似ているところもあります、最近ではハードウェア設計とプログラム設計を共通の言語で行おうという試みもあります。 VHDLは複雑な仕様をもっているそうですが、全部が必要と言う分けでもでもなく、新しい考え方も登場しているので、VHDLに限らずひとつの言語に固執しない柔軟な考え方が望まれると思います。 VHDLを勉強されているのに、なにができるのか、ハッキリしないとのことですが。 いくつかのディジタル回路の設計にVHDLを使ってみれば、その体験から自然に理解できると思います。 計算機やCPUは論理設計することでディジタル回路に実現することができます、今では大きな論理をCPLDなどのデバイスに実装可能になっています。 その場合には、あなたの設計したVHDLのソースをCPLDメーカのツールで処理して実装するIC用のデータを作ります。 そのデータをICに書き込むと、あなた仕様のICが完成します。 大きな論理設計も比較的簡単にできる状況になってきていますが、設計どうりに完成しているかを確認することは、複雑な論理になるほど困難な状況になってきています。 論理設計の方法については言語設計がもてはやされていますが、問題山積であり、プロの現場でも体力勝負で解決しているのが「ホントだろ」と邪推しています。 論理設計の本質を十分に習得して、CPLDをいくつか完成させて実践を積めばVHDLも、その次に出てくるものも同じことだと思います。

  • hamuzo
  • ベストアンサー率48% (88/180)
回答No.3

>VHDLを用いて計算機やCPUを作製することは可能でしょうか。 VHDLでCPUを作るといったことは通常行いません。 VHDLを使ってのASIC(回路)開発は主にCPUの周辺回路として利用したり、ソフトを必要としないハードのみで動作する回路に利用したりします。 また、Cなどのプログラム言語とのVHDLの違いは 並列処理を行うということです。 Cなどでは aにbをいれてそれを足して・・・っと言ったように順次処理を行っていきますが VHDLではすべて同時に行われます。 まずはハードの設計の概念がわかっていないとこの辺の 考え方でつまづきます。

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

HDL=Hardware Description Language であって、ICやLSIの開発に 使われる言語ですから、普通のプログラミング言語(CやJavaのような) を扱うような積りでいると、大きな勘違いをおかすことになります。 将来そうした方面へ進む、あるいは、現在やっているということでしたら 大いに役立つことと思います。

  • hamuzo
  • ベストアンサー率48% (88/180)
回答No.1

まずVHDLで何ができるかですが、簡単にいえば 「IC(LSI)のプログラミングができる」ということでしょうか どんなICかといえばアルテラやザイリンクスが有名です。 たとえばいろんなロジックICを組み合わせさらにタイミング処理を行ったものを1つのICでつくることができます。 現在、ハードウェアの開発において主流の言語です。

framin
質問者

補足

回答ありがとうございます。もうひとつ質問ですが、VHDLを用いて計算機やCPUを作製することは可能でしょうか。もしそれができるのであれば、どのような使われ方になるのでしょうか。よろしくお願いします。

関連するQ&A

  • VHDLとVerilogHDL混在シミュレーション

    VHDLとVerilogHDLの異なる言語が混在するデザインをシミュレーションできる無償のシミュレータを探しています。単言語のシミュレータであればFPGAベンダのスタータエディションなどが使用可能ですがマルチリンガルとなると見つけられていません。ご存知の方ご教示お願いします。

  • VHDLの記述についての質問です

    現在、VHDLの勉強をしていて xilinxのサンプルソースを見たりしているのですが その中にto_unsigned(x,7)という記述がありました。 to_unsigned(x,7)はどういった関数なのでしょうか? ご存じの方がいましたらご教授願います。 また、to_integer()という関数がありますが、 conv_integer()との違いはあるのでしょうか? こちらの方も宜しくお願い致します。

  • VHDLをVerilog に変換できるツールはありますか

    Verilogの勉強を始めた者ですが、VHDLで記述されたファイルをVDHLに変換するようなもの、誰かご存知ですか?

  • VHDLについて教えてください

    VHDLついてお教えください。 今、VHDLの勉強しているのですがsignal文とvariable文の違いが良く分かりません。 以下の記述で(1)の結果なぜこのようになるのか分かりません。 ご存知の方、ご教授願います。 例(1) process(A, B, C, D) begin D < = A; X < = B + D; D < = C; Y < = B + D; end process; 結果 X < = B + C; Y < = B + C; 例(2) process(A, B, C) variable D : std_logic_vector( 3 downto 0 ); begin D := A; X < = B + D; D := C; Y < = B + D; end process; 結果 X < = B + A; Y < = B + C;

  • VHDLのツールの使用方法が載っているサイトや書籍について

    現在、ISEのproject navigatorを使用してVHDLの勉強しています。いろんな書籍やサイトを見ているのですが、ツールの使用方法が載っているものがありません。 もし、ツールの使用方法が載っているサイトや書籍がありましたら教えてください。

  • VHDLまたはverilog

    質問場所、ここなのか分かりませんが よろしくお願いします。 FPGAを最近使おうとしているのですが、 VHDLとverilogどちらから始めるかで 悩んでいます。verilogの方が簡単とは いいますけど。。。 世の中の流れとしてはどのような割合で 普及されているのでしょうか? 使用目的はごく趣味的なもので、研究でも 使えたらいいかなと思っている程度です。 (すなわち業務で設計をする立場では ありません。)最初は例えば、Spartan-3E でも買って始めようと思っています。 よろしくお願いします。

  • テンキー入力をVHDLで記述したい

    4×4のテンキーをVHDLで記述をしたいのですが、どのように記述をしたらよいのか分かりません。 イメージとして、エンコード記述で十分かと思っていたのですが、分かりません。 最終的に、私がやりたいことは、 テンキーでボタンを押したら、押したボタンの値を7セグメントに表示したいのですが、記述の仕方がわかりません。 ご存じの方、教えていただけないでしょうか?

  • おすすめのプログラミング言語(超初心者です)

    プログラミング言語を勉強しようかと考えております。独学で勉強できて、将来のある言語を教えて頂けないでしょうか。私自身は学生時代にFORTRANを使用したことがあるだけで、その他の経験はありません。知人に聞いたところ「PHPがよいのでは」と言ってました。それもわからないくらいのレベルですが、どなたかアドバイス願います。

  • FPGAの言語がVHDLとかVERILOGという…

    FPGAの言語がVHDLとかVERILOGというものなのでしょうか 機械設計を10年やっているものです。シーケンサは実地でやっておおよそ理解していました。マイコン(PICなど)も解説本やネットで調べて理解しました。 あるユーザーの方からFPGAを使って、ある装置の制御をおこないたいのですが、知識のある方を知らないでしょうかと質問されました。そこで、解説本やネットで調べて、ある程度の知識は得たのですが、マイコンのソフトがアセンブラやCなどのように、FPGAのソフトがVHDLやVERILOGだと思えばいいのでしょうか。 また、その装置というのが簡単に説明すると直動ステージ(パルスモーター)4軸でサーマルヘッド(プリンタ用)の位置決めを行い、最終的に印刷してサーマルヘッドの良否を決定する装置です。もともとプロト機(サーマルヘッドの制御のみの)があり、その開発をFPGAでやったので、今回の新装置のステージ等の制御も同じようにやっていただき、サーマルヘッドの制御部を後からユーザーが挿入したいということでした。がこのようなことは可能なのでしょうか。 申し訳ないのですが、ご助言よろしくお願いします。

  • HDLの言語の違いについて

    今大学の4年生です。 そこでVerilogHDLを習っています。 来年、他大の院に行きます。 そこではVHDLを習うそうです。 正直、言語が違うのは結構な負担になります。 特にVHDLは記述量が多そうなので結構不安です。 自分の中ではVerilogHDLのほうがC言語らしくてしっくりきます。(CでもFPGAはできるらしい?? VHDLは記述が硬すぎる気がします。 率直に聞きますが、VHDLとVerilogHDLどちらのほうが開発に向いているのでしょうか? また、同じ回路を作るとしても言語でFFやTrの数が違ったりするのでしょうか?

専門家に質問してみよう