ChipWhisperer CW305 Artix7 XC7A100T にチュートリアル用AES回路をVivadoでコンパイルして書き込む


2021/06 追記

ChipWhisperer5.5.2を確認していたところ,いつの間にかAES周りのフォルダ・ファイル構成に変更が入っていたのを確認しました.
この記事の内容は5.3の頃に書かれたもので,内容が古くなっているので注意してください.
気が向いたらそれに合わせて修正しようと思いますが,基本的には取り込むソースコードとその階層関係に注意すれば特に問題ないと思います.


CW305に自作回路を実装するための練習として.

環境

  • Vivado2020.1

  • ChipWhisperer 5.3.1

  • CW305 XC7A100T

Vivadoプロジェクトを作る

  1. Vivadoを起動し,Quick StartからCreate Project >を選択

  2. 適当なProject NameとProject locationを設定する

  3. RTL Project,Do not specify sources at this timeにチェック

  4. Default Partはxc7a100tftg256-2を選択
    (Artix7 XC7A35Tの場合はxc7a35tftg256-2)

ソースコードを登録する

Verilogソースコードはここにある
\chipwhisperer\hardware\victims\cw305_artixtarget\fpga

以下の手順で次のソースコードを追加

  • 追加するソースコード

    • common フォルダ
      • board.v
      • cw305_top.v
      • usb_module.v
      • registers/registers.v
    • cryptosrc/aes_googlevault フォルダ
      • aes_core.v
      • aes_ks.v
      • aes_sbox.v
  • ソースコード追加手順

    1. Add Sourcesをクリックし,Add or create design sourcesにチェックしてNext
    2. ソースコードを選択してFinish
  • 同様に,Constraintsも追加

    1. Add Sourcesをクリックし,Add or create constraintsにチェックしてNext
    2. common/cw305_main.xdcを選択してFinish

合成する

  1. Run Synthesis

  2. Run implementation

  3. Generate Bitstream

書き込む

import chipwhisperer as cw

scope = cw.scope()

bitstream = <PATH_TO_BITSTREAM_FILE>
target = cw.target(scope, cw.targets.CW305, bsfile=bitstream, force=True) # 書き込み