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.v
cw305_top.v
usb_module.v
registers/registers.v
-
cryptosrc/aes_googlevault
フォルダaes_core.v
aes_ks.v
aes_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) # 書き込み