デジタル回路設計・検証エンジニア
ハードウェア記述言語で論理回路を設計し、シミュレーションで正しさを確かめ、論理合成とタイミング解析を経てチップの形にしていく技術者です。
ハードウェア記述言語で論理回路を設計し、シミュレーションで正しさを確かめ、論理合成とタイミング解析を経てチップの形にしていく技術者です。
デジタル回路の設計エンジニアは、プロセッサや通信用の回路などの機能を、Verilogなどのハードウェア記述言語を使ってRTL(レジスタ転送レベル)で記述します。検証エンジニアは、その設計が仕様どおりに動くかを、テストベンチを使ったシミュレーションなどで確かめます。大きなチップでは、検証に設計と同じかそれ以上の手間がかかることもあります。RTLは論理合成で論理ゲートの回路に変換され、STA(静的タイミング解析)で目標の周波数で動くかを確かめます。配置配線を経て、製造用のデータを渡すテープアウトまでが一つの区切りです。どの段階を担当するかは、会社やチームによって異なります。
仕様を決めるアーキテクト、チップ全体をまとめる設計者、配置配線やタイミングの担当者、テストのしくみを組み込むDFT(テスト容易化設計)の担当者などと、チームで仕事を進めます。チップ上で動くソフトウェアの開発者と、動作の確かめ方を話し合うこともあります。扱うものは、仕様書、RTLのソースコード、テストベンチ、EDAツール、シミュレーションやタイミング解析の結果です。設計データはソフトウェアと同じようにバージョン管理し、回帰テストで変更の影響を確かめます。
論理回路の基礎、つまり組み合わせ回路と順序回路、フリップフロップ、状態機械の理解が土台です。そのうえで、SystemVerilogなどの言語で、合成できる回路の書き方と、検証のための書き方を使い分けられることが求められます。タイミングでは、セットアップ時間とホールド時間、スラック、異なるクロックドメインをまたぐ信号の扱いが重要です。検証では、制約付きランダム検証やカバレッジの考え方を学んでおくと役立ちます。スクリプト言語で作業を自動化する力も、多くの場面で使われます。
まずは『論理回路』の分野で基本を固め、『ハードウェア記述言語と検証』でVerilogの書き方とテストベンチの考え方を学びましょう。続いて『LSI設計フロー・EDA』で設計の流れ全体を、『タイミング解析とCDC』でタイミングとクロックをまたぐ信号の扱いを学びます。設計の対象になることが多いプロセッサについては、『CPU・アーキテクチャ』の分野が役立ちます。就職や転職の面接に備えるなら『ハードウェア技術面接対策』コース、回路とメモリを広く学ぶなら『回路・設計とメモリ』コースがおすすめです。
論理回路 50問 ハードウェア記述言語と検証 51問 LSI設計フロー・EDA 50問 タイミング解析とCDC 50問 CPU・アーキテクチャ 50問 テスト・検査 51問 電力管理(ソフトウェア制御) 51問
学んでおきたい分野から、基本の問題を10問選びました
RTL(レジスタ転送レベル) SystemVerilog テストベンチ 制約付きランダム検証 回帰テスト 論理合成 STA(静的タイミング解析) スラック セットアップ時間 クロックドメイン 同期化回路 テープアウト
論理回路とプログラミングの知識が中心になる職種です。一般に、電気電子や情報系の知識が求められることが多いですが、ソフトウェア開発の経験を生かして検証の仕事から入る人もいます。採用の条件は会社や時期によって異なります。論理回路とハードウェア記述言語を自分で学び、簡単な回路を設計してシミュレーションしてみると、適性を確かめるのにも役立ちます。
ハードウェア記述言語はプログラミング言語に似ていますが、書いたものが順に実行されるのではなく、並列に動く回路になる点が大きく違います。また、チップは製造したあとに直すことが難しく、作り直しには大きな費用と時間がかかるため、製造前の検証がとても重視されます。タイミングや面積、消費電力といった物理的な制約を常に意識する点も特徴です。
一般に、必須の免許や資格はありません。実務では、論理回路の理解、ハードウェア記述言語で設計や検証をした経験、タイミングの考え方が重視されます。学生のうちは、FPGAを使って自分で回路を動かしてみると、設計から動作の確認までの流れを体験できます。