「ARM Cortex-A9×2! ZynqでワンチップLinux on FPGA」の誤植一覧(150箇所)

2015年2月22日日曜日

2014年11月に発売されたZynq本です。発売当初から目次に圧倒され、欲しいなぁと思いつつも値段で腰が引けて買わずにいました。年が明けて2月に入ってから購入し、Zynqを使ったFPGA開発をひと通り学ぶために読みました。構成・内容共に間違いなく良書です。複雑なワークフロー、煩雑なIDEのメニュー体系、一筋縄ではいかないZynq向けブートローダ(FSBL/SSBL)構築やカスタムLinuxイメージ、動作クロックを底上げするためのチューニングといった幅広いトピックを丁寧に扱っています。
都合1週間ほどで学習を進めましたが、もしもこの本なしでVivadoへ取り組んだら1ヶ月経ってもまともな結果を出せなかったと思います。5,832円の価値は十二分にありました。
しかし、誤植が多いのが難点でした。

ISEやVivadoのメニューは複雑です。表記の正確性が分からないため、本に記載されているメニューを探して余分に時間をかけることもしばしばありました。誤植ボリュームが結構多い(特にVivadoの章)ので、パッと1ページを通読する際にも大体脳がシンタックスエラーを吐いて一瞬停止してしまう惜しい感じがありました。
このため、他の読者の学習の一助となることを期待して私の正誤メモを公開します(CQ出版社のサイトを見た限りはエラッタ公開されていないようでした)。

ここでは議論の余地なく誤りと断言できる点のみを挙げました。分かりづらい表現や言い回しの改善案は含みません。
この本が売れて第2刷が出る際にはこれらが取り込まれ、より読みやすい本となることを期待しています。 あっ、その時には見本誌お待ちしております!!(ずいっ



第1章(5箇所)

    p.12
        図1.4(ACPの使い方)の右下はPS(プログラマブル・ロジック)ではなくPL
    p.15
        1段目20行目あたり「表示実行するに説明に始まり」→「表示実行する説明に始まり」
    p.16
        3行目、「ポイントについてに」→「ポイントについて」あるいは「ポイントに」
        1段目末尾「Xilinx社のツールにはすでにその仕組みを持っています」→「〜ツールは〜」
        2段目10行目あたり「IPコアを使う,利用する,作って提供する」→使うと利用するはさすがに同じなので作ると利用するの意らしい

第2章(5箇所)

    p.21
        2段目13行目「使って見ると」→「使ってみると」
    p.22
        「複雑な処理も自動化することもできます」→「複雑な処理を〜」あるいは「〜自動化できます」
    p.23
        リスト2.1のキャプション末尾、「led2.sh」記載は「led.sh」の誤り
    p.24
        リスト2.3のキャプション「LEDを点灯制御する点灯制御するスクリプト」→「LEDを点灯制御するスクリプト」
    p.28
        2段目2行目「State-0 Boot」→「Stage-0 Boot」

第3章(5箇所)

    p.32
        2段目最終行「Project Name」→「Project name」(直後のProject locationがISE上ウィザード文言に準拠しているので揃える)
    p.40
        図3.8(a)のキャプション「Export Hardware SDKで」→「Export Hardware for SDKで」
    p.46
        「ディスプレイ」→「ディスプレ」(第2章までずっとこれで統一されていたので、ここでも統一)
    p.48
        2段目下から2行目「Connectionの横の横の」→「Connectionの横の」
    p.58
        1段目1行目「GPIOが使えるよな設定」→「GPIOが使えるような設定」

第4章(56箇所)

    p.72
        図4.6(c)のキャプション「FIEXED IO」→「FIXED IO」
        1段目3行目「ARMプロセッサだけが配置しても」→「ARMプロセッサだけを配置しても」
    p.76
        2段目2行目「Block Inteface Properties」→「Block Interface Properties」
    p.78
        1段目3行目「あらがじめ」→「あらかじめ」
        2段目2行目「S_AXI(〜)接続します」→「S_AXI(〜)を接続します」
    p.80
        図4.11(b)のキャプション「Make Debugを選択」→「Mark Debugを選択」
    p.81
        1段目7行目「プログラムを走らした際」→」プログラムを走らせた際」(※または実行した際)
        「Generator Block Design」(ページ中に7箇所)→すべて「Generate Block Design」へ
        「Hierachy」(ページ内に2箇所)→"Hierarchy"
        "Generator Output Product..."→"Generate Output Products..."
        「RTL Analisys」→「RTL Analysis」(2段目下から6行のなかに2箇所)
        このページ、全体的に日本語酷い
            「この機能が便利なように左のメニューの中に追加されました」→…
        2段目19行目「make_warapper」→「make_wrapper」
        2段目28行目「Vivad」→「Vivado」
        2段目下から5行目「合成にはには」→「合成には」
    p.82
        図4.13(a)は本文と合っておらず、おそらく図4.11(c)と取り違え。図4.13(b)のポップアップメニュー無し状態のものが正しいはず
    p.83
        「RTL Analisys」→「RTL Analysis」(1段目前半に3箇所、図4.16のキャプションに1箇所)
        1段目下から10行目「筆者の環境では7分程度合成が終了しました」→「筆者の環境では7分程度で合成が終了しました」
    p.84
        図4.17(g)のキャプション「タイミング・レポート結果」→「使用リソース・レポート結果」
    p.85
        図4.17(c)のキャプション「Open Synthesized Designで合成」→「Open Synthesized Designで合成結果を確認」
        2段目7行目「〜でなくてならないという条件」→「〜でなくてはならないという条件」
        2段目下から3行目「proccessing_system」→「processing_system」
        2段目末尾「クリックすことで完成です」→「クリックすることで完成です」
    p.86
        1段目1行目「Generated Bitstream」→「Generate Bitstream」
    p.87
        1段目7行目「Generated Bitstream」→「Generate Bitstream」
        図4.18(f)のキャプション「proccessing_system」→「processing_system」
    p.88
        下から4行目「Eclispe」→「Eclipse」
    p.89
        1段目2行目「Eclispe」→「Eclipse」
    p.90
        6行目「自働的」→「自動的」
    p.91
        1段目1行目「もの使う」→「ものを使う」
    p.92
        1段目6行目「自働的」→「自動的」
    p.96
        図4.25(a)のキャプション「hw_ila1_1」→「hw_ila_1」
        図4.25(c)の図内囲みがData Depthの下の1024にあたっている→Trigger Posの下の512にあてるべき
    p.97
        2段目下から2行目「All Programable SoC」→「All Programmable SoC」
    p.99
        2段目4行目「IP Integrater」→「IP Integrator」
    p.101
        1段目最終行「Add or Crate」→「Add or Create」
    p.102
        図4.29(c)のキャプション「Create Filesの選択」→「Create Fileの選択」
    p.105
        2段目4行目「すべて工程を一気に」→「すべての工程を一気に」
    p.106
        1段目8行目「をを」→「を」
    p.107
        図4.34(b)のキャプション「Packet New IP」→「Package New IP」
    p.111
        1段目5行目「oled」→「led」
        1段目下から4行目「Packger」→「Packager」
        1段目下から3行目「achirve」→「archive」
    p.116
        下から3行目「LDEs」→「LEDs」
    p.119
        2段目6行目「でその後」→「その後」あるいは「そして次に」
    p.122
        2段目6行目「IPベンダがや」→「IPベンダや」

第5章(30箇所)

    p.124
        図5.1の上部「マルチスレット」→「マルチスレッド」
        コラム5.1の2行目「Xylon社社の」→「Xylon社の」
    p.125
        2段目6行目「トップページには[URL]の」→「トップページ([URL])の」
    p.126
        2段目3行目「logiREF-ZCPU-ZED」→「logiREF-ZGPU-ZED」
        2段目最終行「デモを確認ができます」→「デモを確認できます」
    p.127
        2段目最終行「[図5.5(c)].」→「[図5.5(c)],」
        コラム5.2の1段目下から2行目「Windows Embeded」→「Windows Embedded」
        コラム5.2の2段目下から3行目「logiREF-ZCPU-ZC706」→「logiREF-ZGPU-ZC706」
        コラム5.2の2段目下から2行目「logiREF-ZCPU-ZCPU」→「logiREF-ZGPU-ZC706」
    p.129
        2段目2行目「ramdisk8M.iamge.gz」→「ramdisk8M.image.gz」
    p.130
        このページと周辺には日本語怪しい記述やイマイチな表現がいくつかある。ここでは明らかな誤記のみ扱う
        2段目下から9行目「シンボリックをファイルをFATに」→「シンボリックリンクをFATに」
    p.134
        2段目3行目「さまざまUSB機器」→「さまざまなUSB機器」
        2段目9行目「対応して入れば」→「対応していれば」
    p.136
        1段目11行目「32ビットARGB」→直前の説明と被っているので削除
    p.139
        1段目9行目「メニューなどので」→「メニューなどで」
        図5.17内の説明、レイヤー1〜5はレイヤー0〜4の誤り(本文と整合しない)
    p.140
        1段目3行目「毎フレーム秒」→「フレーム毎秒」(※毎フレーム秒だとseconds per frameぽい)
        1段目4行目「Frame Per Second」→「Frames Per Second」
        1段目10行目「対応すれよいのです」→「対応すればよいのです」
        1段目下から2行目「PL部部分で」→「PL部で」
    p.142
        2段目8行目「簡便にアクセスするに」→「簡便にアクセスするために」
    p.144
        表5.3
            copy_image: 第1引数の「rc_layer_no」→「src_layer_no」
            box_fill: 第1引数の「ayer_no」→「layer_no」
            is_busy_bitblt: タイトル「s_busy_bitblt」→「is_busy_bitblt」
            is_busy_bmp: タイトル「s_busy_bmp」→「is_busy_bmp」
    p.145
        1段目2行目「連続している思っている」→「連続していると思っている」
        1段目10行目「場合によっては領域は破壊をしてしまうでしょう」→「場合によっては領域を破壊してしまうでしょう」
        1段目下から3行目「enable_layer(boolean)」→「enable_layer(int, boolean)」
        2段目3行目「enable_layer(3);」→「enable_layer(3, true);」
        2段目6行目「enable_layer(2);」→「enable_layer(2, true);」

第6章(13箇所)

    p.147
        2段目1行目「一つのピンで共有されていいます」→「一つのピンで共有されています」
    p.148
        1段目3行目「PS(プロセッサ・システム)」→「PS(プロセッシング・システム)」(※前章までずっとこの表記で統一されていた)
    p.150
        図6.4の図内文字「PS(プロセッサ・システム)」→「PS(プロセッシング・システム)」(※前章までずっとこの表記で統一されていた)
    p.151
        リスト6.1のキャプション「(ps7_init.tc)」→「(ps7_init.tcl)」
    p.152
        1段目19行目「自動的に〜関数群も自動的に作られ」→「自動的に~関数群も作られ」
    p.153
        1段目8行目「プログラムを作るのことができる」→「プログラムを作ることができる」
    p.157
        1段目下から2行目「#interrupts-cells」→「#interrupt-cells」
        2段目下から5行目「ウォッチドック・タイマ」→「ウォッチドッグ・タイマ」
    p.159
        1段目下から5行目「cloneしきます」→「cloneしてきます」
        2段目最後の行「書きなす必要」→「書きなおす必要」
    p.160
        1段目10行目「生成れています」→「生成されています」
        1段目下から3行目「Avianのテストにはまた,Jikesの動作にはC++が必要です〜通さなければなりません.ネットワークとして〜使うものがあります.」→「Jikesの動作にはC++が必要です~通さなければなりません.Avianのテストには,ネットワークとして~使うものがあります.」
    p.163
        2段目14行目「Ccrosstool-NG tooolchain」→「Crosstool-NG toolchain」

第7章(11箇所)

    p.166
        1段目下から6行目「Enetnet0」→「Enet0」
    p.173
        13行目「eglic」→「eglibc」
        下から10行目「なんからの」→「なんらかの」
    p.176
        1段目2行目「IPIF Serverces」→「IPIF Services」
    p.191
        2段目下から3行目「Recan」→「Rescan」
    p.197
        図7.35のキャプション「SEK」→「SDK」
    p.198
        図7.35(続き分)のキャプション「SEK」→「SDK」
    p.199
        2段目3行目「できることわかりました」→「できることがわかりました」
    p.202
        リスト7.9のキャプション「genericC文」→「generic文」
        2段目15行目「PlataHead」→「PlanAhead」
        2段目20行目「Generate Bistream」→「Generate Bitstream」

第8章(8箇所)

    p.205
        1段目1行目「AXI-lite」→「AXI-Lite」
        1段目9行目「Vertex-6」→「Virtex-6」
        2段目8行目「非論理になっています」→「負論理になっています」
    p.206
        1段目6行目「AXI-Llite」→「AXI-Lite」
    p.207
        1段目5行目「Microblaze」→「MicroBlaze」
        1段目最終行「AXI比べ」→「AXIに比べ」
    p.208
        表8.5、設定項目一番下「OPTIOANAL」→「OPTIONAL」
    p.210
        リスト8.1の説明箇所「シュミレーション」→「シミュレーション」(2箇所)

第9章(17箇所)

    p.217
        1段目6行目「1次元DCT」→「1次元IDCT」
        1段目下から10行目「Zedboard」→「ZedBoard」(ここ以外全部統一されていたので)
        表9.1、設定項目の一番下「OPTIONL」→「OPTIONAL」
        2段目下から7行目「DCT」→「IDCT」
        2段目下から5行目「Conifg」→「Config」
        図9.3(a)の説明部分「S_AXI.HPO」→「S_AXI_HP0」
    p.218
        図9.3(c)の説明部分「Enables S_AXI.ACP」→「Enable S_AXI_ACP」
    p.219
        図9.3(d)の説明部分「Enables S_AXI.HPO」→「Enable S_AXI_HP0」
        図9.3(e)の説明部分「Bus Interface」→「Bus Interfaces」
    p.220
        1段目1行目「Bus Interface」→「Bus Interfaces」
        2段目3行目「AX4-Lite」→「AXI4-Lite」
    p.221
        図9.3(h)の説明部分「S_AXI_ASP_ACLK」→「S_AXI_ACP_ACLK」
        図9.3(h)の説明部分「FCLK_CKLO」→「FCLK_CKL0」
    p.227
        図9.11の左側、「3回目の結果(25ns)」→「3回めの結果(30ns)」
    p.231
        コラム9.1の1段目下から2行目「Signal」→「Signals」
    p.238
        1段目下から3行目「Synsthesis」→「Synthesis」
    p.242
        1段目1行目「メニュ」→「メニュー」



繰り返しになりますが、構成・内容は素晴らしかったです。そうでなければ多分最初の10ページあたりでそっ閉じしているはずです。これだけ細かく読んだ私が言うのだから間違いありません。ZedBoardを購入したけれどあんまり全容分かってないなーという方には間違いなくお勧めの1冊です。

ARM Cortex-A9×2! ZynqでワンチップLinux on FPGA  (*ボードは付属していません) (Design Wave)
鈴木 量三朗 片岡 啓明
CQ出版
売り上げランキング: 125,114

0 件のコメント:

コメントを投稿