ニューメキシコ州ロズウェルにおいてドイツ系の厳格な父親の家庭に長男として生まれる。父親が空軍パイロット（B-58の速度記録を持ち、空軍殿堂入り）であったため引っ越しを繰り返し、友達作りの難しい少年期だったが、 アリゾナ州 では少年合唱団に2年間在席、幸せな日々を過ごす。11歳、母方の音楽好きの祖母からアコースティック・ギターをもらう。アラバマ州、次にテキサス州フォートワースに移住、当地のアーリントン・ハイツ高校（en:Arlington Heights High School）3年の時、父親の車でカリフォルニア州の知り合いを訪ね音楽活動を開始。父親がジェット機で彼を連れ戻しに現れ復学、卒業。テキサス工科大学（en:Texas Tech University）で建築学を学ぶが、1963年中退、ロサンゼルスに移住、フォーク・クラブ（en:folk club）で歌う。1965年、フォーク・グループのチャド・ミッチェル・トリオ（en:The Chad Mitchell Trio）に参加。トリオを脱退した1966年、ビートルズなどのカバーを含むアルバム『John Denver Sings』を自主制作。アルバムの中に収められていた「悲しみのジェット・プレーン」（当時のタイトルは「Babe, I Hate To Go」）がプロデューサーのMilt Okunによりピーター・ポール&マリーのアルバム『Album 1700』（1967年）に収録、シングルはBillboard Hot 100の1位となる。1969年10月、デビュー・アルバム『Rhymes & Reasons』をRCAレコードから発表。親しみやすい曲調と繊細で情感あふれる歌詞が特徴で、1971年4月に発表したシングル「故郷へかえりたい（Take Me Home, Country Roads）」はBillboard Hot 100の2位を記録する大ヒットとなった  。同曲の カバー （日本のタイトルは「カントリー・ロード」）はオリビア・ニュートン＝ジョンにより1973年全英15位、1976年日本でオリコン洋楽チャート1位（テレビ番組がきっかけ）。また1995年本名陽子で スタジオジブリのアニメ映画『耳をすませば』の主題歌（映画ではオリビアのカバーもオープニングで使用）として使われた（オリコン22位）。1976年、デンバーはコロラド州スノーマス近郊にニューエイジ・コミューン（New Age Commune、ニューエイジ村）を作り、合気道によって宇宙精神と合致することを目指したり、ピラミッドのなかで瞑想を行い、将来自分が大統領になることなどを信じて、生活をした。1977年、世界の飢餓に対する組織 Hunger Project の創設者の1人となり、死まで組織を支える。1985年、デンバーはアフリカの飢餓救済キャンペーン「ウィ・アー・ザ・ワールド 」への参加を申し出るが、却下される。飛行を愛しNASAを支援、自身1985年NASA初の市民宇宙飛行計画の体力試験に合格、最終選考で落選。1986年のチャレンジャー号爆発事故の追悼歌を捧げる。1994年、自伝「Take Me Home 」出版、自らの薬物使用、不倫、元妻への暴力を語る。1996年、作曲家殿堂（en:Songwriters Hall of Fame）入り。デンバーは航空機の収集家で複数の飛行機（複葉機、セスナ）を所持していた。1997年10月12日 、米国内ツアーを終えてカリフォルニアで休日を過ごしていたが、単独で操縦するプロペラ機（ルータン ロング・イージー）が墜落し死亡（機体に対する不慣れが原因とされる）。遺体は損傷が激しく身元確認は指紋によった。子供は3人。葬儀はコロラド州で行われた。53歳没 2014年にハリウッド殿堂（en:Hollywood Walk of Fame）のレコーディング部門の2531番目の殿堂入りしたことが明らかとなった。
Verilogのようなハードウェア記述言語は、ソフトウェアプログラミング言語に似ている。これは、信号の伝達時間や信号強度を記述するコードから作られているからである。Verilogには、ブロッキング代入とノン・ブロッキング代入という2種類の代入演算子代入演算子がある。ノン・ブロッキング代入文のおかげで、設計者はステートマシンの更新を一時変数を宣言せずに書くことができるようになった。これらの概念はVerilog言語のセマンティックの一部となっているため、設計者は大規模な回路の記述を比較的にコンパクトで簡潔な形式ですばやく書くことができる。Verilogが開発された当初（1984年）、回路設計者はグラフィカルな回路図入力ソフトウェアや、ドキュメントと電子回路シミュレータのためだけに書かれた特殊なソフトウェアを使っていたため、複雑な回路を簡潔に記述できるVerilogは、極めて大きな生産性の向上をもたらした。Verilogの設計者は、言語の構文を、工学分野のソフトウェア開発で当時すでに広く普及していたC言語と似たものにしたいと考えた。そのため、C言語のように、Verilogの識別子は ケース・センシティブであり、基本的なプリプロセッサーを持っている（ただし、ANSI C/C++のものほどは洗練されていない）。制御フローのキーワード（if/else、for、while、caseなど）はC言語と同一であり、演算子の優先順位もC言語と互換性がある。構文の違いとしては、変数宣言にビット幅が必要であることや、手続きブロックの宣言の相違（カーリー・ブレイス{}の代わりにbegin/endを使用する）があり、その他多数の細かな違いがある。Verilogは変数に固定サイズを与えなければならないが、C言語の場合はサイズは変数の「型」から推定される（たとえば、integer型は8ビットであると）。Verilogのコードはモジュールの階層から構成する。モジュールは設計の階層をカプセル化し、他のモジュールとは、宣言された入力、出力、必要に応じて双方向ポートを使用して通信する。モジュールの内部では、net/変数の宣言（wire、reg、integerなど）、並行または逐次のステートメントブロック、他のモジュールのインスタンス（サブ階層）などの、あらゆる組み合わせが記述できる。逐次的な文は、begin/endブロック内に配置し、ブロック内では逐次的に実行される。しかし、ブロック自体は並列に実行されるため、この特徴によりVerilogはデータフロー言語となっている。次に、配線を示すwire、記憶素子を示すregとサブモジュールのリストなどを定義する。さらに、続いてその動作を規定するステートメントやステートメントをグループにしたブロック群を定義する。ブロックはbeginキーワードで始まり、endキーワードで終わる範囲で定義し、ブロック内はステートメントが並列に実行される。逐次実行したい場合は、ブロッキング代入を使うか、クロックのタイミングを待つ書き方をする。各ブロックは並列に実行される。Verilogの'wire'の概念は信号の値 (4状態："1、0、floating、undefined") と信号の強度（強い、弱いなど）からなる。このシステムのおかげで、共有信号線の抽象的なモデリングが可能になり、複数のソースで共通の回路網を駆動することが可能になった。wireが複数のドライバーを持つ時、wireの（読み取り可能な）値はソースドライバーの関数と強度で解決される。Verilog言語の文のサブセットは、合成可能である。RTL（register-transfer level; レジスタ転送レベル）として知られる合成可能なコーディングスタイルを使用して書かれたVerilogのモジュールは、合成ソフトウェアを使用することで物理的に実装することができる。合成ソフトウェアは、アルゴリズムを用いて、（抽象的な）Verilogのソースをネットリストに変換する。ネットリストとは、特定のFPGAやVLSI技術で利用可能な基本ゲート（AND、OR、NOT、フリップフロップなど）のみからなるソースコードと論理的に等価な記述である。さらにネットリストに修正を加えることで、究極的には（ASICのフォトマスクのセットやFPGAのビットストリームなどの）電子回路製造の設計図を生成することが可能である。「Verilog-HDL」という表記が用いることがあるが、IEEEなどの文書では「Verilog」と「HDL」との間にハイフンが入らない「Verilog HDL」のように表記されている。