2021/06 追記
ChipWhisperer5.5.2を確認していたところ,いつの間にかAES周りのフォルダ・ファイル構成に変更が入っていたのを確認しました.
この記事の内容は5.3の頃に書かれたもので,内容が古くなっているので注意してください.
気が向いたらそれに合わせて修正しようと思いますが,基本的には取り込むソースコードとその階層関係に注意すれば特に問題ないと思います.
CW305に自作回路を実装するための練習として.
環境
-
Vivado2020.1
-
ChipWhisperer 5.3.1
-
CW305 XC7A100T
Vivadoプロジェクトを作る
-
Vivadoを起動し,Quick Startから
Create Project >を選択 -
適当なProject NameとProject locationを設定する
-
RTL Project,Do not specify sources at this timeにチェック
-
Default Partは
xc7a100tftg256-2を選択
(Artix7 XC7A35Tの場合はxc7a35tftg256-2)
ソースコードを登録する
Verilogソースコードはここにある
\chipwhisperer\hardware\victims\cw305_artixtarget\fpga
以下の手順で次のソースコードを追加
-
追加するソースコード
-
commonフォルダboard.vcw305_top.vusb_module.vregisters/registers.v
-
cryptosrc/aes_googlevaultフォルダaes_core.vaes_ks.vaes_sbox.v
-
-
ソースコード追加手順
-
Add Sourcesをクリックし,Add or create design sourcesにチェックしてNext - ソースコードを選択してFinish
-
-
同様に,Constraintsも追加
-
Add Sourcesをクリックし,Add or create constraintsにチェックしてNext -
common/cw305_main.xdcを選択してFinish
-
合成する
-
Run Synthesis
-
Run implementation
-
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) # 書き込み