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

このQ&Aに関連する最新のQ&A

A 回答 (8件)

>VHDLを用いて計算機やCPUを作製することは可能でしょうか


元々その為の言語です。

>どのような使われ方になるのでしょうか。

1.EDAツール/テキストエディタを使って、回路の論理をVHDLで記述する。(RTL)
2.同様にテストベンチ/スティミュラス(テストパタン)を作成する。
3.シミュレーション→デバッグを繰り返し、納得のいく回路に仕上げる。
4.論理合成(DesignCompiler等)でネットリストに変換。
形式検証でRTLとネットリストの一致が取れているか確認。
5.ネットリストから、レイアウトツールでLSI用のマスクパタンを作成。
6.拡散,組み立ての工程を経てLSIの出来上がり。
7.LSIテスタでLSIを検査。合格したものを出荷。

少量なら4.でFPGA用に合成してFPGAを使うのが今風。
    • good
    • 0

VHDLはよく使われていますがディジタル回路の


すべてが記述できるために複雑な文法になって
いると思います。

プログラムならプログラムを書いたらすぐにパソコン
で実行できますが、VHDLで書いたディジタル回路はそうもいきません。

シミュレーションをしないと、動きそうなのか、どうなのかが分かりません、テストベンチを使うのですが、これを書くのが大変で小規模のディジタル回路以外なら手書きは不可能じゃないかと思うくらいです。

テストベンチを生成するプログラムと言うのもあるらしいですが安い値段では、ないようです。

FPGAやCPLDなどでは同期式で回路を駆動することが前提になっているようです。

同期式の論理設計に対応したフリーの開発環境があります。

独自の言語形式をとっていますが、ソースの書きっぱなしで作って見ないと動くかどうか分からないディジタル回路のイメージを払拭するためにシミュレーションを含んで自在に論理設計できるようになっています。

言語形式は独自ですがVHDLやVerilogのソースやテストベンチを出力するのでFPGAやCPLDの論理設計に十分に
使えるものです。

VHDLがC++とすればBASICくらいに簡単に論理設計ができるようになっています。

論理設計自体は、どの言語を使っていても共通する
原理原則がある訳ですから、まずはフリーの簡単な
設計環境で試してみるのも良いのではないでしょう
か。

74シリーズの主用な品種を使った設計サンプルも
紹介されています。
    • good
    • 0

VHDLの将来性についてですが、今、主流はソフトからハードへと移行しています。

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

VHDLは文字通りハードウェア・記述言語です。


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

参考URL:http://www.xilinx.co.jp/
    • good
    • 0

VHDLは論理設計をするための言語です、プログラム言語は論理的な手順を積み重ねて目的を解決しますが、VHDLはハードウェア記述言語(HDL)と言われるものに属しており、論理的な構造を作って目的を解決するものです。



どちらも論理設計の範疇にありますが、手法が異なっています。

しかし、記述形式はHDLとプログラム言語で似ているところもあります、最近ではハードウェア設計とプログラム設計を共通の言語で行おうという試みもあります。

VHDLは複雑な仕様をもっているそうですが、全部が必要と言う分けでもでもなく、新しい考え方も登場しているので、VHDLに限らずひとつの言語に固執しない柔軟な考え方が望まれると思います。

VHDLを勉強されているのに、なにができるのか、ハッキリしないとのことですが。
いくつかのディジタル回路の設計にVHDLを使ってみれば、その体験から自然に理解できると思います。

計算機やCPUは論理設計することでディジタル回路に実現することができます、今では大きな論理をCPLDなどのデバイスに実装可能になっています。

その場合には、あなたの設計したVHDLのソースをCPLDメーカのツールで処理して実装するIC用のデータを作ります。

そのデータをICに書き込むと、あなた仕様のICが完成します。

大きな論理設計も比較的簡単にできる状況になってきていますが、設計どうりに完成しているかを確認することは、複雑な論理になるほど困難な状況になってきています。

論理設計の方法については言語設計がもてはやされていますが、問題山積であり、プロの現場でも体力勝負で解決しているのが「ホントだろ」と邪推しています。

論理設計の本質を十分に習得して、CPLDをいくつか完成させて実践を積めばVHDLも、その次に出てくるものも同じことだと思います。
    • good
    • 0

>VHDLを用いて計算機やCPUを作製することは可能でしょうか。


VHDLでCPUを作るといったことは通常行いません。

VHDLを使ってのASIC(回路)開発は主にCPUの周辺回路として利用したり、ソフトを必要としないハードのみで動作する回路に利用したりします。

また、Cなどのプログラム言語とのVHDLの違いは
並列処理を行うということです。

Cなどでは
aにbをいれてそれを足して・・・っと言ったように順次処理を行っていきますが
VHDLではすべて同時に行われます。
まずはハードの設計の概念がわかっていないとこの辺の
考え方でつまづきます。
    • good
    • 0

HDL=Hardware Description Language であって、ICやLSIの開発に


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

まずVHDLで何ができるかですが、簡単にいえば


「IC(LSI)のプログラミングができる」ということでしょうか
どんなICかといえばアルテラやザイリンクスが有名です。

たとえばいろんなロジックICを組み合わせさらにタイミング処理を行ったものを1つのICでつくることができます。

現在、ハードウェアの開発において主流の言語です。

この回答への補足

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

補足日時:2001/09/09 10:09
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVHDLについて

 卒業研究としてVHDLを用いて除算器を設計することになったのですが、VHDLについては全くの初心者です。
 こんな私にとってVHDLの基礎から除算器を設計するにいたるまで、参考になる本やホームページがあれば教えていただけませんか?

Aベストアンサー

質問者の状況から言うと、だいたいこんなところがお奨めです。

・『VHDLによるハードウェア設計入門』長谷川裕恭:CQ出版、\2,233
VHDLについて、ほとんどのことが書いてある。
古くから出版されているけど、いまだに根強い人気がある。
初心者から上級者まで、VHDLをやるなら持っておきたい本。

・『VHDLによる論理合成の基礎』枝均:テクノプレス、\2,600
わかりやすい書き方をしている。
それだけにあまり深いところまでは書かれていない。初心者向け。

・『HDLによる高性能ディジタル回路設計』森岡澄夫:CQ出版、\2,400
ソフトウェア記述をハードウェア記述に書き換える例を紹介している。
ソフトウェアからハードウェア記述言語に入る人は読んでおきたい本。

・『VHDLで学ぶディジタル回路設計』吉田たけお、尾知博:CQ出版、\2,800
大学の講義のテキストに使えそうな本。それだけにちょっと堅い。
しかし、剰余算の例が載っているので、除算器を設計をするなら、立ち読みででも一読しておいたほうがいいと思う。

・『実用HDLサンプル記述集』鳥海佳孝、田原迫仁治、横溝憲治:CQ出版、\2,800
いろいろな回路のサンプル例が載っているので、回路設計の参考になる。

一冊あたりが高いので、全部購入するというのは、
学生には、なかなか難しいと思います。
初心者なら、一冊目(長谷川裕恭)と二冊目(枝均)を自分で購入し、
あとは大学の図書館に買ってもらうというのがいいと思います。

あと、余談ですが、除算は使う論理合成ソフトによって、
論理合成可能なときと不可のなときがあります。
(まったくできない、std_logic_vectorは2の乗数なら可能、
integerならすべて可能、などなど)
1クロックで結果を出さなくてもいいなら、
筆算を使うのが個人的にお奨めです。

質問者の状況から言うと、だいたいこんなところがお奨めです。

・『VHDLによるハードウェア設計入門』長谷川裕恭:CQ出版、\2,233
VHDLについて、ほとんどのことが書いてある。
古くから出版されているけど、いまだに根強い人気がある。
初心者から上級者まで、VHDLをやるなら持っておきたい本。

・『VHDLによる論理合成の基礎』枝均:テクノプレス、\2,600
わかりやすい書き方をしている。
それだけにあまり深いところまでは書かれていない。初心者向け。

・『HDLによる高性...続きを読む

QC言語より後に開発されたプログラミング言語は

C言語を基にして開発されたのでしょうか?

C++,C#はもちろんそうですが、Java、PHP、JavaScriptなどもそうなのでしょうか?と言うのも、C言語の関数とこれらのプログラミング言語の関数がかなり似ているところ(共通しているものも)があるからです。また、Excelの関数とも似ているのですが、これらのプログラミング言語と何か関係があるのでしょうか。

Aベストアンサー

ちょっと面白いものがあります
http://gigazine.net/news/20070126_computer_languages_history/

影響は受けるでしょうが、「C言語を基に」というのはちょっと違うと思います。


ただ、関数名だけに注目した場合は別の理由もあります。

関数名は、その関数の機能を表わすような名前を付けるのが普通です。
その際、英単語がよく使われます。数学関数だと、数学用語がそのまま使われます。
そのため、同様の機能の関数は、同じ英単語/数学用語が元になることが多く、結果、同じ関数名になることが多いです。

例えば、sin関数なら、数学のsinから来たもので、特定プログラミング言語の影響とは考えにくいです。

QVHDLとVerilogの違いについて

Verilogでの回路設計の経験はあるのですが、VHDLでの経験がありません。
今度の仕事はVHDLで回路設計をしなくてはいけなそうなのですが、ちょっと心配です。
Verilogとの違いは何なんでしょうか?
またVerilogを知っていればすぐに理解ができるものなのでしょうか?

Aベストアンサー

私はVHDL専門で、Verilogのことはよく知りませんが。

一般的印象としては、VHDLは無駄な記述が多く、Verilogはそれが少ないです。(Verilogにはないentity宣言が無駄に思える)

言語の習得については、VHDLを先に覚えておいたほうがいいという人が多いようです。なぜかVerilogを先に知っている人はVHDLが取っ付きにくいらしいです。

VHDLは「ada」というプログラム言語をもとに開発された「使用記述言語」で、
Verilogは「C言語」をもとに開発された「シミュレーション専用言語」です。
その辺の関係で、VHDLに比べて論理合成不可能な記述が多いと聞いたことがあります。

先日CQ出版から発売された「HDLによる高性能ディジタル回路設計」の巻末付録に「HDL対照表」が書かれているので、2言語を比較する参考にしてみてください。

Qプログラミング言語(主に通信中心に使うなら)何の言語がいいですか?

タイトルどおりなんですが、通信中心に使うとなれば、なんのプログラム言語が一番なんですかね?
Winnyとかは、BorlandC++とからしいですが。

Aベストアンサー

通信中心とのことですので、重いのはやめたほうが良いと思います。メモリ消費が激しいものも適さないでしょう。
となると C/C++あたりになりませんかね。
Java,VB,Delphi,Kylix,PHP等ソケットはほとんどのメジャーな言語で使えますが、直接OSのAPIを利用できる言語が良いと思います。

Qコンピュータのベクタ番号について

割込み処理について勉強しているのですが、どうしても納得できない箇所があり質問させてください。
ベクタ番号の16と19って浮動小数点の例外割込みと定義されているのですが、ソフトウェア割込みのint 10hとint 13hはモニタ関連とディスク関連のBIOSに割り当てられています。
「int 10hはベクタ番号16」「int 13hはベクタ番号19」ではないのでしょうか。
基本的な質問で申し訳ありませんが、よろしくお願いいたします。

Aベストアンサー

文献を見てやっと意味がわかったように思います。

自分もWindows時代になってからBIOSコールやファンクションコールがAPIに置き換わってからというもの、あまり深く掘り下げてはいないので浅学なため間違いもあるかも知れませんがご了承を。

要するに、IntelのCPUアーキテクチャに80286からプロテクトモードというのが搭載されてアプリの階層を設けてシステムを安全に運用しようという機能を付けた時点で、それ以前のアーキテクチャであるリアルモードでのメモリマップががらりと変わって、BIOSコールに代表される旧アーキテクチャの固定テーブルによる割り込みベクタというのが追いやられてエミュレーションという形でフォローされている(メモリ上に複製されるのでOS側でパッチをあてたりしてた時代もあった)ようなのですが、そういった意味でnihon-jinさんの理解はどちらのモードも同じものとしてみていられるのではないでしょうか。

DOSやリアルモードオプションの付いたWindows3(懐かしいー \^o^ /)なんかでは、メモリマップ上にBIOSやOADGにあるベクターテーブルがたしかに存在していたのですが、80386以上が主流になって(80286まではモードの切り替えには再起動が必要だった:SEGAのTeraDriveというマシンではちょっと変則的でしたが)、立ち上げ時以外はあまり意識しなくなったというか、割り込みベクタを云々するその手のプログラミングは主流からはずれていったのでこの辺に詳しい方は結構少ないのではないかと思います。

すいません、昔の慣習でリアルモードとかプロテクトモードとか言う単語を使いましたが、ご提示のマニュアルで言うところの
保護モード=プロテクトモード
実アドレスモード=リアルモード
となります。

プロテクトモードで動作しているソフトウェアにとっての割り込みテーブルと、リアルモードで動作しているソフトウェアにとっての割り込みテーブルは、同じものではないということですね。

リアルモードの割り込みはご存知のようですので、プロテクトモードの割り込みに関してこのページに解説が役に立つかと思います
図の少し前の解説でテレコになってるので戸惑いますがそこさえ気をつければ図も多くわかりやすいかと思います
http://caspar.hazymoon.jp/OpenBSD/annex/interrupt_protect.html

文献を見てやっと意味がわかったように思います。

自分もWindows時代になってからBIOSコールやファンクションコールがAPIに置き換わってからというもの、あまり深く掘り下げてはいないので浅学なため間違いもあるかも知れませんがご了承を。

要するに、IntelのCPUアーキテクチャに80286からプロテクトモードというのが搭載されてアプリの階層を設けてシステムを安全に運用しようという機能を付けた時点で、それ以前のアーキテクチャであるリアルモードでのメモリマップががらりと変わって、BIOSコールに代表され...続きを読む

Qプログラミング言語ってたくさんあるけど 結局できることは同じ?

世界では言葉は違うけど最終的に意味は同じなように
プログラミング言語ってたくさんあるけど
結局できることは同じなのでしょうか?

それともこの言語はここに強い!などはあるのでしょうか?

これからVBかC++を勉強しようと思うのですが
もしメリットなどがあれば教えてください。
よろしくお願いします。

Aベストアンサー

>>結局できることは同じなのでしょうか?

違います。

>>それともこの言語はここに強い!などはあるのでしょうか?

あります。

>>これからVBかC++を勉強しようと思うのですが
もしメリットなどがあれば教えてください。

これから勉強されようと思うのなら、その質問程度はご自分で調べましょう。このくらい調べられないと、勉強は続きませんよ。

Q仮想ベクタテーブルについて

私、このたび10年ぶりにマイコンプログラム制作をすることになったので、現在必死に勉強しておりますがどうしてもわからないことがあり質問いたしました。

現在は昔と違い、プログラムの書き換えが簡単にできるようにRAM上にフラッシュのプログラムをコピーして、RAM上でプログラムを起動するのが一般的なやり方のようですが、その際、仮想ベクタテーブルはなぜ必要なのでしょうか?

ROMの先頭アドレスからマッピングされた通常のベクタテーブルに、RAMにコピーした関数のアドレスを登録しておけばよいように思うのですが?

フラッシュの書き換え回数の問題があるからといっても、ベクタテーブルはアドレスを登録しておくだけだから、通常でしたら頻繁に書き換えなど怒らないかと思うのですが。。。?

なぜ仮想ベクタテーブルというやり方をしなくてはいけないのかよくわかりません。

どなたかわかりやすくご教授下さい。

よろしくお願いします。

Aベストアンサー

こんにちは。
お話が最初に戻るわけですね。
余計なやり取りを介してしまい、申し訳ない限りです。

で、最初のご質問「なぜ仮想ベクタを使わなければならないのか?」ですが、これは最初から申し上げている通りです。
仮想ベクタを使わなければならない、なんてルールはどこにもありません。
やりやすいようにやって頂くのが一番です。

ただ、システムは、将来どんな変更があるか分かりません。
ダウンロード更新で済むものがPC持って全国行脚とかになるリスクは、極力避けたいものです。
そのため、システムにはある程度の柔軟性を持たせる事が必要かと思います。
ブートローダを書き替えないのなら、なおさら工夫が必要なんじゃないのかなぁ、と感じるのですが、詳しくは分からないので何とも言えません。
質問者様が検討した結果、仮想ベクタなんぞ要らん!と判断すれば、そうして一向に構わないと思います。

ご検討下さいませ。

Qコンピュータ言語とプログラミング言語の違い

履歴書のようなものに自分のスキルを登録する際に、
「使用したことのあるプログラミング言語を記入してください」とあったので、
C、C++、アセンブラ、Perl、HTML、
としました。
その後、「使うことの出来るコンピュータ言語を記入してください」とありました。

この、「プログラミング言語」と「コンピュータ言語」という定義には何か違いがあるのでしょうか?また、C、C++、アセンブラは間違いないと思うのですが、残りの2つはプログラミング言語に含めてもいいのでしょうか?

よろしくお願いいたします。

Aベストアンサー

まず、皆さんも書いてるように、プログラミング/コンピュータ言語の違いはないと思います。

しかし、HTMLはプログラミング/コンピュータ言語ではないと思います(^^;

HTMLは「書式(フォーマット)付きテキスト」です。いわゆる「リッチテキスト」ってやつです。
リッチテキストには、HTMLの他に、RTF形式や、MS-Wordのファイルなどが含まれます。
プログラミング/コンピュータ言語にHTMLを入れるとすると、その欄にRTFやWordなども入れなきゃならないでしょうねぇ・・・

QVHDLを書くときのエディタについて。

はじめまして。
最近VHDLで論理設計の仕事を始めたものです。

そこでお聞きしたいのですが、
VHDLを書くのにお勧めのエディタがあれば教えてほしいです。
私が調べて今使っているのは「MKeditor」なのですが
背景が白で強調文字が見づらいのでできれば背景が黒で強調文字が使えて、タブで並べて表示できるものがあればベストです。

Aベストアンサー

社内では秀丸が多いようです。

秀丸は、予約語の強調、色設定が出来ます。
タブ字数の設定出来ます。

私はアルテラの開発ツール付属のエディターを使っていますので、秀丸でバックが変えられるかはわかりません。

Qプログラミングに興味がありますが、プログラミングとは、どのようなことなのですか

プログラミングとは、どのようなことをプログラミングというのですか

Aベストアンサー

プログラミング言語を使って処理手順を記述する事です。


人気Q&Aランキング

おすすめ情報