SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語 [単行本]
    • SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語 [単行本]

    • ¥7,260218ポイント(3%還元)
    • お取り寄せ
100000009003325273

SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語 [単行本]

価格:¥7,260(税込)
ポイント:218ポイント(3%還元)(¥218相当)
お届け日:お取り寄せこの商品は、日時を指定できません。届け先変更]詳しくはこちら
出版社:共立出版
販売開始日: 2020/10/09
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可

カテゴリランキング

店舗受け取りが可能です
NEWマルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語 の 商品概要

  • 目次

    第1章 概要
    1.1 SystemVerilogの歴史
    1.2 SystemVerilog概要
      1.2.1 言語としてのSystemVerilog
      1.2.2 設計言語としてのSystemVerilog
      1.2.3 検証言語としてのSystemVerilog
    1.3 本書でのシンタックス記述法
    1.4 SystemVerilog言語ルール
    1.5 コンパイルとエラボレーション
    1.6 宣言と定義
    1.7 本書の対象者と目的
    1.8 本書の構成
    1.9 例題に関して
    1.10 本書の記法

    第2章 設計および検証のためのビルディングブロック
    2.1 設計要素
    2.2 モジュール
    2.3 プログラム
    2.4 インターフェース
    2.5 チェッカー
    2.6 パッケージ
    2.7 ゲートとスイッチレベルのモデリング
    2.8 primitive
    2.9 configuration
    2.10 コンパイルユニット.
    2.11 `timescaleコンパイラディレクティブ
    2.12 ガーベッジコレクション
      2.12.1 automatic変数
      2.12.2 static変数

    第3章 データタイプ
    3.1 データタイプとデータオブジェクト
    3.2 logic型
    3.3 ネット型
    3.4 変数
    3.5 ネットと変数
    3.6 4-state型
    3.7 2-state型
    3.8 integralデータタイプ
    3.9 real,shortrealとrealtime
    3.10 void型
    3.11 chandle型
    3.12 stringデータタイプ
    3.13 イベントデータタイプ
    3.14 typedef文
    3.15 enumデータタイプ
    3.16 定数
    3.17 const定数
    3.18 castオペレータ
    3.19 $castダイナミック型変換
    3.20 便利な初期値設定
      3.20.1 リテラルの拡張
      3.20.2 インデックス指定
    3.21 リファレンスポインタ

    第4章 メンバーで構成されるデータタイプ
    4.1 ストラクチャ
      4.1.1 packedストラクチャ
      4.1.2 ストラクチャへの値の設定
    4.2 ユニオン
      4.2.1 packedユニオン
      4.2.2 タグ付きユニオン
    4.3 packedアレイとunpackedアレイ
      4.3.1 packedアレイ
      4.3.2 unpackedアレイ
      4.3.3 アレイの操作
      4.3.4 packedアレイのアクセス
    4.4 ダイナミックアレイ
      4.4.1 ダイナミックアレイのメソッド
      4.4.2 アレイのコピー
    4.5 associativeアレイ
      4.5.1 associativeアレイの概要
      4.5.2 associativeアレイの要素の登録
      4.5.3 associativeアレイのメソッド
      4.5.4 associativeアレイリテラル
    4.6 キュー
      4.6.1 キューの概要
      4.6.2 キューの操作
      4.6.3 キューを操作するメソッド
    4.7 アレイ情報取得ファンクション
    4.8 アレイ操作メソッド
      4.8.1 アレイ検索メソッド
      4.8.2 アレイ要素の順序を操作するメソッド
      4.8.3 アレイを計算するメソッド
    4.9 アレイの走査法

    第5章 クラス
    5.1 クラスの概要
    5.2 シンタックス
    5.3 クラスオブジェクト(クラスインスタンス)
    5.4 クラスプロパティおよびメソッドへのアクセス
    5.5 コンストラクタ
    5.6 タイプ指定のコンストラクタ呼び出し
    5.7 staticクラスプロパティ
    5.8 staticクラスメソッド
    5.9 thisハンドル
    5.10 ハンドルのアレイ
    5.11 クラスのコピー
    5.12 クラス継承とサブクラス
    5.13 $cast
    5.14 constクラスプロパティ
    5.15 virtualメソッド
    5.16 アブストラクトクラスとpure virtualメソッド
    5.17 クラススコープオペレータ
    5.18 メンバーへのアクセス制限
    5.19 メソッドをクラスの外に記述する方法
    5.20 パラメータによる汎用クラスの定義
      5.20.1 概要
      5.20.2 パラメータによる汎用クラスの実装
      5.20.3 パラメータによる汎用クラスの開発手順
    5.21 クラスのフォワード宣言
    5.22 クラスのテストベンチへの応用
    5.23 インターフェースクラス
      5.23.1 概要
      5.23.2 機能

    第6章 プロセス
    6.1 シミュレーションプロシージャ
      6.1.1 initialプロシージャ
      6.1.2 alwaysプロシージャ
      6.1.3 finalプロシージャ
    6.2 ブロック文
      6.2.1 begin-endブロック
      6.2.2 fork-joinブロック
      6.2.3 ブロック名
      6.2.4 forkブロックの効果的利用
    6.3 タイミングによる実行制御
      6.3.1 タイミングによる実行制御の概要
      6.3.2 ディレーによる制御
      6.3.3 エッジセンシティブイベント制御
      6.3.4 代入内タイミング制御
      6.3.5 レベルセンシティブイベント制御
      6.3.6 イベント制御と解除
    6.4 プロセス制御
      6.4.1 wait文
      6.4.2 wait fork文
      6.4.3 disable fork文
      6.4.4 wait_order文
    6.5 プロセスとRNG
    6.6 ユーザ固有のプロセス制御

    第7章 代入文
    7.1 連続代入文
    7.2 ビヘイビア代入文
      7.2.1 ブロッキング代入文
      7.2.2 ノンブロッキング代入文
    7.3 パターン指定による代入

    第8章 オペレータと式
    8.1 オペレータ
      8.1.1 代入オペレータ
      8.1.2 インクリメントおよびデクリメントオペレータ
      8.1.3 算術オペレータ
      8.1.4 比較オペレータ
      8.1.5 ワイルドカード比較オペレータ
      8.1.6 論理オペレータ
      8.1.7 bitwiseオペレータ
      8.1.8 計算オペレータ
      8.1.9 シフトオペレータ
      8.1.10 conditionalオペレータ
      8.1.11 結合オペレータ
      8.1.12 insideオペレータ
      8.1.13 ビットストリームオペレータ
    8.2 オペランド
      8.2.1 パートセレクト
      8.2.2 unpackedアレイ
    8.3 タグ付きメンバーの操作

    第9章 実行文
    9.1 if文
      9.1.1 全ての条件を列挙
      9.1.2 unique-if文とunique0-if文
      9.1.3 priority-if文
    9.2 case文
      9.2.1 unique-case文とunique0-case文
      9.2.2 priority-case文
      9.2.3 casezとcasex
    9.3 insideオペレータとif文およびcase文
      9.3.1 if文とinsideオペレータ
      9.3.2 case文とinsideオペレータ
    9.4 ループ文
      9.4.1 for文
      9.4.2 repeat文
      9.4.3 foreach文
      9.4.4 while文
      9.4.5 do-while文
      9.4.6 forever文
    9.5 return文
    9.6 break文
    9.7 continue文

    第10章 タスクとファンクション
    10.1 タスク
      10.1.1 ポートリスト
      10.1.2 タスク内の記述
    10.2 ファンクション
      10.2.1 ファンクションの制限
      10.2.2 ポートリスト
      10.2.3 ファンクション内の記述
    10.3 引数に標準値を指定する方法
    10.4 値を戻すファンクションの使用
    10.5 再帰呼び出し
    10.6 クラスのメソッドと再帰呼び出し
    10.7 メソッド内での変数の初期化
    10.8 引数としてのアレイ
    10.9 インポートとエクスポート

    第11章 クロッキングブロック
    11.1 最も簡単なクロッキングブロック
    11.2 クロッキングスキュー
    11.3 クロッキングイベントとObserved領域
    11.4 サイクルディレー

    第12章 プロセス間の同期と交信
    12.1 セマフォ
    12.2 メールボックス
    12.3 パラメータ化したメールボックス
    12.4 名称付きイベント
      12.4.1 概要
      12.4.2 triggeredメソッド
      12.4.3 引数としてのイベントオブジェクト
      12.4.4 イベント資源の解放
      12.4.5 イベントの比較
      12.4.6 イベントの別名

    第13章 チェッカー
    13.1 概要
    13.2 チェッカーインスタンス
    13.3 自由変数
    13.4 DUT出力のサンプリング

    第14章 プログラム
    14.1 シンタックス
    14.2 プログラムの特徴
    14.3 プログラムの制御
    14.4 シミュレーションの終了

    第15章 インターフェース
    15.1 シンタックス
    15.2 インターフェースの機能概要
    15.3 ジェネリックインターフェースによる接続
    15.4 modport
    15.5 パラメータ化したインターフェース
    15.6 virtualインターフェース

    第16章 パッケージ
    16.1 シンタックス
    16.2 パッケージの定義法
    16.3 パッケージの使用法
    16.4 stdパッケージ

    第17章 モジュール
    17.1 概要
    17.2 モジュールの定義
    17.3 ポートリスト
      17.3.1 VerilogスタイルとSystemVerilogスタイル
      17.3.2 ポートの方向に関するルール
    17.4 パラメータ化したモジュール
    17.5 トップレベルモジュール
    17.6 モジュールインスタンス
    17.7 インターフェースを使用するモジュール記述
    17.8 未定義モジュールの宣言
    17.9 階層名称

    第18章 システムタスクとシステムファンクション
    18.1 $displayおよび$writeタスク
    18.2 $sformatタスクと$sformatfファンクション
    18.3 モニタリング
    18.4 シミュレーション時間取得ファンクション
    18.5 $printtimescale
    18.6 値の変換
    18.7 情報取得ファンクション
    18.8 ビットvectorシステムファンクション
    18.9 サンプル値を参照するためのファンクション
    18.10 エラー処理タスク
    18.11 確率分布ファンクション
    18.12 シミュレーション制御
    18.13 その他のシステムタスクおよびシステムファンクション
    18.14 コマンドラインの操作
    18.15 value change dumpファイル
      18.15.1 VCDファイルの指定
      18.15.2 VCDファイルへの記録
      18.15.3 VCDファイルへの記録の一時的停止と再開
      18.15.4 VCDファイル作成例

    第19章 制約によるランダムスティミュラスの生成
    19.1 概要
    19.2 ランダム変数
      19.2.1 ランダム変数の概要
      19.2.2 rand修飾子
      19.2.3 randc修飾子
      19.2.4 ランダム変数定義例
    19.3 乱数発生メソッド
    19.4 制約
      19.4.1 insideオペレータ
      19.4.2 distオペレータ
      19.4.3 uniqueオペレータ
      19.4.4 implicationオペレータ
      19.4.5 foreach制約
      19.4.6 乱数決定順序
    19.5 実行時に制約を定義する方法
    19.6 ランダム変数の制御
    19.7 制約の制御
    19.8 randomize()メソッドによるランダム変数の制御
    19.9 条件の否定
    19.10 ストラクチャ
    19.11 キューに乱数を発生
    19.12 チェッカーとしての制約
    19.13 制約をテストケース毎に指定する方法
    19.14 制約をクラス外部に定義する方法
    19.15 std::randomize()ファンクション
    19.16 システムファンクション

    第20章 SystemVerilogの検証機能
    20.1 ファンクショナルカバレッジ
      20.1.1 概要
      20.1.2 カバレッジ計算
      20.1.3 カバレッジ計算例
    20.2 アサーション
      20.2.1 概要
      20.2.2 アサーションの種類
      20.2.3 アサーションの式
      20.2.4 アサーション記述例

    第21章 モデリングと検証
    21.1 組み合わせ回路
      21.1.1 組み合わせ回路の記述ルール
      21.1.2 組み合わせ回路を検証するタイミング
      21.1.3 デコーダ
      21.1.4 エンコーダ
      21.1.5 ALU
      21.1.6 コンパレータ
      21.1.7 Grayコード
      21.1.8 バレルシフタ
      21.1.9 符号付き整数の加減算
    21.2 シーケンシャル回路
      21.2.1 シーケンシャル回路の記述ルール
      21.2.2 シーケンシャル回路の検証
      21.2.3 バイナリーカウンター
      21.2.4 JK-フリップフロップ
      21.2.5 Johnsonカウンター
      21.2.6 ユニバーサルシフトレジスタ
      21.2.7 Grayカウンター
      21.2.8 リングカウンター
      21.2.9 Gated clockの記述例
    21.3 FSM
      21.3.1 概要
      21.3.2 Moore FSMモデリング
      21.3.3 Mealy FSMモデリング
    21.4 FSMとビットシーケンスの認識
      21.4.1 ビットシーケンス認識問題
      21.4.2 Moore FSMモデリング
      21.4.3 Mealy FSMモデリング

    第22章 UVM概説
    22.1 UVMとは何か
    22.2 検証技術のトレンドとUVM
    22.3 UVMの検証要素
      22.3.1 トランザクションとシナリオに関連するUVMクラス
      22.3.2 メソドロジークラス
    22.4 TLM
    22.5 UVMシミュレーション
      22.5.1 シミュレーションフェーズ
      22.5.2 run_test()
    22.6 UVM検証コンポーネントの開発
    22.7 トップモジュール

    第23章 コンパイラディレクティブ
    23.1 `include文
    23.2 `define文
      23.2.1 定数を定義する場合
      23.2.2 接頭辞および接尾辞を持つ名称の創成
    23.3 文字列内のパラメータ展開
    23.4 `endif文
    23.5 `__FILE__と`__LINE__

    第24章 シミュレーション実行モデル
    24.1 スケジューリング領域
    24.2 #0ディレーの効果

    参考文献
    索  引
  • 出版社からのコメント

    SystemVerilogの基本機能から難解な機能までを徹底的に解説。初心者を含む設計者および検証技術者に必携の一冊!
  • 内容紹介

     SystemVerilogの最新仕様は,2018年2月21日に規格IEEE Std 1800-2017(以降,LRMと略称)として公開され,実質的にSystemVerilogの時代が到来したと言えます。LRMは多くの研究者,技術者による長年の努力の賜物として完成された1300ページにも及ぶ大作です。一方,LRMは標準規格であるが故に,ハードウェアを設計・検証する技術者の誰もが一度は目を通さなければならない言語仕様書です。然し,その必要性にもかかわらず,LRMは容易に理解できる英文で記述されているとは言えません。
     本書は,誰もがLRMを誤解なく解釈する事ができる様に基礎知識を提供します。即ち,本書は,SystemVerilogの根幹を成す基本機能,及び難解と考えられる機能を重点的,且つ徹底的に解説し,SystemVerilogを実践に適用する際に必要とされる準備を完全に確立します。
     本書は,SystemVerilog全般に関する基礎知識とその応用としてのRTLデザインのモデリングと検証の仕方の解説を含んでいるので,初心者,設計者,及び検証技術者に適しています。特に,データタイプ,クラス,インターフェースクラス,インターフェース,クロッキングブロック,並列処理タイミング制御,プロセス間通信機能,ランダムスティミュラス生成等に関する解説が含まれているので,設計分野だけでなく検証分野に関する知識も習得する事ができる他に類のない資料です。
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    篠塚 一也(シノズカ カズヤ)
    1972年名古屋大学理学研究科数学修士課程修了。現在、(有)アートグラフィックスEDA開発部アーキテクト。専門、言語設計、コンパイラ開発、RTL論理合成、SystemVerilog設計・検証ツール開発;クロッキングブロック;プロセス間の同期と交信;チェッカー;プログラム;インターフェース;パッケージ;モジュール;システムタスクとシステムファンクション;制約によるランダムスティミュラスの生成;SystemVerilogの検証機能;モデリングと検証;UVM概説;コンパイラディレクティブ;シミュレーション実行モデル

SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語 の商品スペック

商品仕様
出版社名:共立出版
著者名:篠塚 一也(著)
発行年月日:2020/10/15
ISBN-10:4320124634
ISBN-13:9784320124639
判型:B5
対象:専門
発行形態:単行本
内容:数学
言語:日本語
ページ数:421ページ
縦:26cm
他の共立出版の書籍を探す

    共立出版 SystemVerilog入門―設計・仕様・検証のためのハードウェア記述言語 [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!