VerilogとC言語の主な違いは、Verilogがハードウェア記述言語であるのに対し、C言語は高水準の汎用プログラミング言語である点です。
Verilogは、デジタル回路の設計・検証を支援する言語です。
最新の安定版はIEEE1364-2005です。
一方、C言語は一般的な汎用プログラミング言語です。
システムソフトウェアの開発によく使われています。
簡単に説明すると、VerilogはC言語をベースにしています。
Verilogとは
Verilogは、ネットワークスイッチ、マイクロプロセッサ、フリップフロップなどのデジタルシステムの記述に役立つHDL(Hardware Description Language)です。
したがって、この言語を用いてデジタルシステムのハードウェアを記述することが可能です。
図1:デジタル回路
Verilogは複数の抽象化レベルをサポートしています。
それらは以下の通りです。
ビヘイビアレベル – コンカレントアルゴリズムを使用してシステムを記述する。
各アルゴリズムは、次々と実行される命令列で構成される。
レジスタ転送レベル(RTL) – レジスタ間の演算とデータの転送によって回路の特性を記述する。
RTL設計には正確な時間的制約が含まれる。
ゲートレベル – 論理的なリンクとそのタイミング特性によってシステムを記述します。
Verilogのプログラムでよく見られるキーワードは以下の通りです。
Wire – ゲートまたはモジュールを接続する、回路内の物理的なワイヤーを表します。
Reg – ある手続き上の代入から次の手続きへの値を保持するデータオブジェクト。
Verilogの単純な変数型レジスタです。
Input – タスクやモジュールの入力ポートを宣言します。
Output – タスクまたはモジュールの出力ポートを宣言します。
Inout – タスクまたはモジュールの双方向ポートを宣言します。
Cとは
C言語は、構造化プログラミングをサポートする高水準の汎用プログラミング言語です。
C言語の開発者はDennis Ritchie。
PythonやJavaなど、多くのプログラミング言語の基礎となっている。
プログラマーはC言語のプログラムを容易に理解できるが、コンピュータは理解できない。
そこで、コンパイラがC言語のソースコードを同等の機械語に変換する。
コンピュータはこの機械語コードを理解し、プログラムで定義されたタスクを実行する。
C言語は、PHPやPythonなどのインタプリタ型プログラミング言語よりも高速にプログラムを実行することができる。
C言語の一般的な機能には、イテレータ、決定、関数などがあります。
C言語は、オペレーティングシステム、ハードウェアドライバ、コンパイラ、インタプリタなど、さまざまなアプリケーションの開発に使用されている。
また、C++という言語はC言語のサブセットです。
さらに、C言語の拡張版としてEmbedded Cというものがあり、マイコンを使ったアプリケーションのプログラミングに役立っている。
ベリログとC言語の相違点
定義
Verilogは電子システムをモデル化するためのハードウェア記述言語(HDL)であるのに対し、C言語は構造化プログラミングを可能にする汎用プログラミング言語である。
この点がVerilogとC言語の大きな違いです。
ファイル拡張子
Verilogのファイルには.vまたは.vhという拡張子がついていますが、C言語のファイルには.cという拡張子がついています。
使用方法
Verilogはデジタルシステムの設計と記述に役立ち、Cはオペレーティングシステム、データベース、コンパイラ、インタプリタ、ネットワークドライバなどの構築に貢献します。
結論
VerilogとC言語の大きな違いは、Verilogがハードウェア記述言語であるのに対し、C言語は高水準の汎用プログラミング言語であることです。
簡単に言うと、VerilogはC言語をベースにしています。