Tang Nano 20KでLチカをやってみる

とりあえず始めてみる

 FPGAってなにができるの?そもそも何から始めればいいの??と矢継ぎ早に生まれる疑問はそのままに、とりあえずLEDを点滅させるところから始めてみる。
Tang Nano20kは元々書き込まれた命令に従ってか、MacBookと接続するとシーケンシャルウィンカーのようにLEDを光らせている。

[tang nano 9k その1] 公式チュートリアルにLチカさせてもらった
https://qiita.com/haihuiliyuyuan/items/b6c89b5295411b5ed70d

Tang nano 9Kを使いたい(1)
https://zenn.dev/nihinihikun/articles/87066301959b48

Tang Nano 20K Blink led
https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/example/led.html

習うより慣れろの精神で、とりあえず参考ページの内容をそのままコピペしてみる。(haihuiliyuyuanさん、ありがとうございます!!)

module led(
    input sys_clk,          // clk input
    input sys_rst_n,        // reset input
    output reg [5:0] led    //6 LEDs Pin
);

reg [23:0] counter;

always @(posedge sys_clk or negedge sys_rst_n) begin
    if (!sys_rst_n)
        counter <= 24'd0;
    else if (counter < 24'd1349_9999)
        counter <= counter + 1'b1;
    else
        counter <= 24'd0;
end
always @(posedge sys_clk or negedge sys_rst_n) begin // Toggle LED
    if (!sys_rst_n)
        led <= 6'b111110;
    else if (counter == 24'd1349_9999)       // 0.5s delay
        led[5:0] <= {led[4:0], led[5]};                         // ToggleLED
    else
        led <= led;
end

endmodule

Gowinの実行結果ウィンドウ(コンソール画面)には赤文字表記がずらずら現れる…。何これ??

ERROR  (CT1136) : Bank 6 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'led_5_obuf' : IO_TYPE = LVCMOS18 in the same bank
ERROR  (CT1136) : Bank 6 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'led_4_obuf' : IO_TYPE = LVCMOS18 in the same bank
ERROR  (CT1136) : Bank 6 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'led_3_obuf' : IO_TYPE = LVCMOS18 in the same bank
ERROR  (CT1136) : Bank 6 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'led_2_obuf' : IO_TYPE = LVCMOS18 in the same bank
ERROR  (CT1136) : Bank 6 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'led_1_obuf' : IO_TYPE = LVCMOS18 in the same bank
ERROR  (CT1136) : Bank 6 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'led_0_obuf' : IO_TYPE = LVCMOS18 in the same bank
ERROR  (CT1136) : Bank 3 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'sys_rst_n_ibuf' : IO_TYPE = LVCMOS18 in the same bank
ERROR  (CT1136) : Bank 7 vccio(3.3) is locked by other constraint or embedded port, conflicting BANK_VCCIO set by 'sys_clk_ibuf' : IO_TYPE = LVCMOS18 in the same bank
Physical Constraint parsed completed with errors

元々基板上に乗ってるLEDの電圧は3.3Vのところ、自分で定義した電圧が1.8Vだったために生じたらしい。
要はデフォルトのままだったので修正が必要。

LEDのIO TypeをLVCMOS18からLVCMOS33へ変更してみる。今度はLED絡みのエラー表示が消えてくれた。
今度はうまくいきそう。
残すはsys_rst_nとsys_clkのみである。これらも同じように3.3Vへ変更してみる。
今度は今までと違うエラーメッセージが表示された。ピン間違えをしているみたいである。

ERROR  (PR2028) : The constrained location is useless in current package
ERROR  (PR2017) : 'sys_rst_n' cannot be placed according to constraint, for the location is a dedicated pin (SSPI)
Screenshot

なるほど。参照していたページではTang Nano 9Kをテーマとする記事だったので、そのまま踏襲したせいでエラーが生じていたみたい。
回路図中の割り当てピンを確認するとクロックの入力(sys_clk)は4番であった。
また基板上のタクトスイッチを使ってみようと思い、リセットの入力(sys_rst_n)は87番とした。
改めてPlace&Routeをダブルクリックすると、今度は赤いエラーが消えてくれた。

ボードに書き込んでみる

Double click Program Device to run the Programmer program、とあるので沿って進めてみる。

Screenshot

とりあえずPC側とTangNanoは繋がっているみたいだ。何も触らず、Saveボタンを押して先に進めてみる。
なお、Operationの項目については公式Wikiで下記のように書いてある。
よくわからないだけに、変に保存されて再起不能になるのだけは避けたいので、デフォルトのSRAM Program(電源切ったら書き込んだデータ消える)を選んでおく。

5.2. Burn to SRAM#
Normally this mode is used to verify biststream.

Because of its fast burning characteristics so the use of more, but of course the power will lose data, so if you want to power on the running program you can’t choose this mode.

Click the function box below Operation to open the device configuration interface, then select the SRAM Mode option in Access Mode to set to download to SRAM, and finally click the three dots box below to select our generated .fs bitstream file . Generally speaking, bitstream firmware file is in the impl -> pnr directory.
https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/example/led.html

書き込み実行すると、LEDの一つが点灯するようになった。
S2を長押ししてみると1つだけしか点灯していなかったLEDが続々と点灯するようになった。スイッチから指を離すと初期位置から点灯し始める。

おお…多分参考にしたプログラムは走ってぽいぞ?

将棋と向き合う10月の目標

先月から本格開始した詰将棋などの取り組みを10月も継続して行います。
とりあえず3手詰ハンドブックは難なく周回できるようになったので、今月は5手詰ハンドブックがハードルになるかと思っています。

先月の成果を受けて次の考えで過ごしたいと思います。
・3手詰ハンドブック
 20分/周を切れるようになったので今度は後ろから読み進めます。
 後ろから読んでも20分切れるようになったら当該棋書は卒業かな。本を逆さにしてチャレンジは面白そう。
2巻目に手を出すかは要検討。
・5手詰ハンドブック
 今月のメインになると思われる。悪戦苦闘の末、周回は1時間半まで短縮できるようになりました。
 目標タイムは60分。おそらく中旬頃には達すると思われる。もしもレコード更新できたら30~40分を目指したいけど、、、取らぬ狸の皮算用だよな…。
 60分を安定して切れるようになったら、2巻目に手を出したいと思ってる。
・寄せの手筋200
 同著者の”必死道場”を取り組んでいたところ、難しいというよりもっと内容を理解したいと思うようになった。
そこで基礎的なところを学ぶため以前から気になっていた本書を読み始めた。
寄せは深く考えてこなかっただけになんというか考え方を改めさせられている感じ。
200問あるため今月はまず解説をしっかり読み込んで周回時間・回数は設定せずに取り組む予定。
次に凌ぎの手筋と美濃崩しも読みたいけど時間確保できるだろうか。

余力があれば、、、
・棋譜並べ
・実戦の録画(あとで何を考えながら指していたか思い出すため)
・居飛車急戦の定跡
・三間飛車の定跡(78飛車戦法)
とかとかを取り組みたい。

【更新日10/26】A, 3手詰ハンドブック
B, 3手詰ハンドブックII
A, 5手詰ハンドブック
B, 5手詰ハンドブックII
寄せの手筋200その他
A, 四間飛車を指しこなす本(1)
B, 将棋・ひと目の攻め
目標・20分/周に変更(9/27)
・とにかく早く答える
・目標タイム後は後ろから
・60分/周
→40分に更新(10/11)
・とにかく早く答える
・全章読む
・200問をしっかり理解する
-
実績(~9/30)A, 0:18:03A, 1:36:30第2章まで読了-
10/4-A, 1:16:30--
10/7A(後), 0:29:51A, 1:08:59第4章まで-
10/11A(後), 0:27:58A, 0:55:46第1章の復習-
10/14A(後), 0:19:42
B, 1:10:35
A, 0:47:53第5章実施-
10/17B, 1周A, 0:30:38--
10/20A, 1周
B, 1周
A, 1周第6章実施-
10/25A, 0:21:58
B, 0:46:06
A, 0:35:37
B, No. 1-52
第7章および第8章実施
第2章を復習
A, pp. 1-75
10/26A, 0:17:02
B, 0:34:53
A, 0:23:17
B, No. 53-100
第9章実施A, pp. 76-133
10/27A, 0:14:06
B, 0:25:26
A, 0:30:55
B, No.101-148
-A, pp.
B, 第1-26問まで
10/30-B, No.149-200--
10/31

(2022/10/11更新)
5手詰ハンドブックにおいて念願の60分切達成!!
先んじて2巻目をポチってしまった…。

(2022/10/17更新)
5手詰ハンドブックは30分台に達しました。
ちょっと早い気がするけど2巻目を読み始めようと思う。
定跡の勉強や棋譜並べが全然できていない・・

3・5手詰めハンドブックの取り組み経過具合

 詰将棋(ハンドブックシリーズ)を取り組むようになって1週間と少しが経ち、ようやく3手詰ハンドブックが1時間をきって30分の大台まであと6分くらいになった。
内容の2割くらいは詰み筋を文字で記憶してしまっているようで、そうはならないようになるべく初見の問題に取り組む気持ちで周回している。
 3手詰ハンドブックと平行して5手詰にも取り組んでおり、こっちは3手詰ハンドブックの効果があってか初見時はだいたい20問/1時間のペースで読めるようになってきた(以前の状態に比べれば正答できることに驚いている。詰む筋にアタリがつけられるようになった感がある。)
 5手詰ハンドブックは周回に2時間を要してしまうと考えられ、3手詰が落ち着いてきた今はこっちに本腰を入れようとしている。
なお、必死道場は面白いのだけど、手をだす頃合いにはいつも疲れていて毎度明日野郎になってる感じ…。

これら詰将棋の効果は実戦でも徐々に現れてきていて、詰む筋(けれど怖くて踏み込めない)や詰みそうな筋が見えたり、自身が詰む状態なのか否か(1手2手耐えられるか)、何を指せれば必死を掛けられるかに要所要所考えられるようになってきた。
当たり前なんだけども、これが結構新鮮なんです。。

【更新日9/27】3手詰ハンドブック5手詰ハンドブック必死道場→
寄せの手筋200(2022/9/27)
目標・30分/周→20分/周に変更(9/27)
・とにかく早く答える
・60分/周
・とにかく早く答える
・2週間?/周
・答えのみでなく、なるべく合駒を列挙する
9/61:52:00読むだけ /No.1~17読むだけ/ No.1~9
9/71:37:000:21 /No.1~17
読むだけ/No.18~48
12分 /No.1~9
読むだけ /No.10~14
9/81:10:000:12 /No.1~17 (参考値)
0:56 /No.1~48
読むだけ/ No. 49~100
15分 /No.1~14
読むだけ / 15~21
9/90:57:190:31/No.1~48(参考値)
1:54 /No. 1~100
読むだけ/No. 101~112
-
9/100:39:17--
9/140:42:131:10:37/No. 1~100-
9/150:37:590:49:38/No. 1~100
読むだけ/No. 101~180
-
9/16-読むだけ/No. 180~200-
9/170:35:100:48:56/No. 1~100
0:30:25/No. 101~127
-
9/190:28:470:41:57/No. 1~100-
9/210:23:440:38:47/No. 1~100
0:16:07/No. 101~127
0:39:02/No. 128~149
-
9/270:24:030:53:06/No. 1~100
1:48:54/No. 1~148
寄せの手筋200へ変更
→第一章
9/280:20:11-~第二章
9/300:18:030:27:43/No. 1~100(参)
0:44:45/No. 1~148
1:36:30/No. 1~200(参)
~第三章

目指せ将棋ウォーズ二段!

将棋ウォーズで万年1級~初段をさまよってる状況に嫌気が差し、今までロクに取り組んでこなかった終盤力の鍛え直しを行っています。

普段の棋譜を解析かけると全体的に難があるのはおいといても、詰みの取り残しや必死の掛け方、凌ぎ方にアラが目立ちます。

状況は深刻です。試しにホコリを被っていた5手詰ハンドブックを開いたところまともに正解できたもんではないのです。そっこで新たに3手詰ハンドブックを買い足してイチから将棋を見直しています。

現状はこんな状況

【更新日9/27】3手詰ハンドブック5手詰ハンドブック必死道場→
寄せの手筋200(2022/9/27)
目標・30分/周→20分/周に変更(9/27)
・とにかく早く答える
・60分/周
・とにかく早く答える
・2週間?/周
・答えのみでなく、なるべく合駒を列挙する
9/61:52:00読むだけ /No.1~17読むだけ/ No.1~9
9/71:37:000:21 /No.1~17
読むだけ/No.18~48
12分 /No.1~9
読むだけ /No.10~14
9/81:10:000:12 /No.1~17 (参考値)
0:56 /No.1~48
読むだけ/ No. 49~100
15分 /No.1~14
読むだけ / 15~21
9/90:57:190:31/No.1~48(参考値)
1:54 /No. 1~100
読むだけ/No. 101~112
-
9/100:39:17--
9/140:42:131:10:37/No. 1~100-
9/150:37:590:49:38/No. 1~100
読むだけ/No. 101~180
-
9/16-読むだけ/No. 180~200-
9/170:35:100:48:56/No. 1~100
0:30:25/No. 101~127
-
9/190:28:470:41:57/No. 1~100-
9/210:23:440:38:47/No. 1~100
0:16:07/No. 101~127
0:39:02/No. 128~149
-
9/270:24:030:53:06/No. 1~100
1:48:54/No. 1~148
寄せの手筋200へ変更
→第一章
9/280:20:11-~第二章
9/300:18:030:27:43/No. 1~100(参)
0:44:45/No. 1~148
1:36:30/No. 1~200(参)
~第三章

慣れた人だと3手詰ハンドブックは10分、5手詰ハンドブックは30分で行けるらしい。
当面の目標は3手詰ハンドブックは30分、5手詰ハンドブックは60分を目指そうと思う。
そもそも5手詰ハンドブックは全体を通すところから始めないとね(;´∀`)

雑記(2022/7/2)

 Linuxよくわからない勢の一人です。ただサーバーのOSはどれが良さそうってのはなんとなく知っていて、大学の知り合いから吹き込まれたCentOSを好んで使っていました。
ただ昨年の今頃くらいにCentOSのあり方が変わることを耳にし、慣れきらないうちにOSの変更を考えるようになりました。
期限切れは2024年6月であるものの、kifuyu.netの運用環境が若干古くなってきたこともありサーバー再構成とOS変更を同時に実施です。
 いっその事、個人・開発用途であれば無償で使えるRHELにしてみるのもありだったけど、特に思い入れもないのでDebian系のUbuntuを選択。

この日の新鯖における作業は下記の通り。

  • ユーザの追加
  • SSHの設定
  • Fail2banの設定
  • DBのkill

>SSHの設定
“SSH2 User Auth Failure “publickey,gssapi-keyex,gssapi-with-mic”
Status=1004 Send Disconnect Message…
publickey(ssh-ed25519),publickey(ssh-ed25519)”

上記のポップウィンドウが出てきてしまって見事にハマった。
公開鍵のフォーマットを見直したら、ようやくsshでの通信が通った。
楽しようとRloginで生成したけど、結局ssh-keygenで生成した方がスムーズに行けたという。原因はopensshの設定にあるのか、Rloginのせいなのかよくわからん。後者ぽいけど。

//Rloginで生成
-----BEGIN OPENSSH PRIVATE KEY-----
*****
-----END OPENSSH PRIVATE KEY-----
->
//ssh-keygenで生成したやつ。
ssh-ed25519 ***** hogehoge

 sshdの設定ファイルは、/etc/ssh/配下のsshd_configをsshd_config.dへコピーして、hogehoge.confへリネーム。
また同ファイルを下記の設定に書き換え。

// コピー先の*.conf内のincludeをコメントアウト
- Include /etc/ssh/sshd_config.d/*.conf
+ # Include /etc/ssh/sshd_config.d/*.conf

// ポート番号変更。Firewallの設定も忘れずに。
- Port 22
+ Port hogehoge

// rootユーザでログインはしないので無効化
- PermitRootLogin yes
+ PermitRootLogin no

// 公開鍵認証に限定のため変更。公開鍵使ってるのにあえて"yes"を指南する記事があったけど何故…
- PasswordAuthentication yes
+ PasswordAuthentication no

// コメントアウトしないと何故かエラーが発生する。"Failed to start OpenBSD Secure Shell server."
- Subsystem sftp /usr/lib/openssh/sftp-server
+ #Subsystem sftp /usr/lib/openssh/sftp-server


 authorized_keysはssh接続するユーザのディレクトリ配下(home/hogehoge/.ssh/)に置いとく必要がある。
しばらくrootのディレクトリに配置していたせいで接続できんかった。。