e-tipsmemo

ごった煮

合計アクセスが10000人を超えた

ブログ開始日から1年と半年ぐらいでアクセス数が10000人を超えた。
これはブログ管理画面に乗っている数字によるものなので一日においてユニークユーザーをカウントしているのかどうかなどはあまりしらない。

5月9日の11人目ぐらいのアクセスがちょうど10000人目だったと思われる。

ブログ内容的にはメジャーではないと思うし個人的なメモを主観的にわかりやすくまとめたものがおおいので、分類はわからない。
そのため訪問者数のリファレンスとなるものがなく、このペースが早いかどうかはわからない。

最近一週間の一日平均訪問者数がほぼ30人を超えているのではないかと感じる。
もしかしてGoogleクローラーの可能性もあるが、一日に30もクロールしないと思うので人間の閲覧者は0ではないと思う。

Googleからよくアクセスされているページ上から(hatenablog管理画面による 2018/05/09)

e-tipsmemo.hatenablog.com
WSL(Windows shell on linux)の導入記事
WSLが広く普及してきている?

e-tipsmemo.hatenablog.com
KiCADを使っていたころにかいた記事
KiCADは5年ぐらい使ってきたが、あまり使い心地がよくないということに気づいてしまったので最近は別のCADを検討している。
(Eagle(Autocad買収後の)、DipTrace etc..)

e-tipsmemo.hatenablog.com
Zynqで割込みを使うときの手順を1から書いたもの
昔に書いたので、いまならもっといいやり方もあるのかもしれない。

e-tipsmemo.hatenablog.com
AXI のことについてのメモ。
メモだったので雑にかいてあるのだが意外と伸びている?

e-tipsmemo.hatenablog.com
Raspberry piVNCを使う方法。
Raspberry piがまだエントリーボードとして売れてるということだろうか。

小型ディスプレイ アクリルスタンド

Raspi、FPGA、サーバーセットアップ用に小型のHDMIモニターがあると良いな。
と思った。

Amazonで小型ディスプレイを調べても、FullHDのものはなかなかない。
あっても高いか安くても小さすぎる。

秋月にちょうどいいものがあった。
akizukidenshi.com

ただこれはフレキシブルケーブル、基板などがむき出しで壊れる可能性が高いので、
アクリルスタンドを作った。

これを利用した。
www.muji.net

Amazonだと何故か3倍の値段になっている・・・

無印のアクリルを加工したら割れて使えなくなったので
ハンズで2mm厚のアクリルを買って加工した。
使えたのは金属の棒の部分だけ。

寸法を測ってCADでモデルを作った。
f:id:katakanan:20180428222434p:plain:w400

アクリルの加工を東急ハンズに頼んだが、
東急ハンズの加工サービスは手で行っているらしく、
1mm以下の精度は出せないとのこと。(2~5mmぐらいが限度?)
また、アクリル加工では端の方だと割れるのでそこも無理だと言われた。

結局、大きく四角い穴を開けてもらってディスプレイが入るまで自分で追加工した。
追加工には超音波カッターを使用した。

本多電子 超音波カッター USW-334

本多電子 超音波カッター USW-334

以前からプラ加工のためにほしかったのでついに購入に踏みきった。

組み立てた裏面
f:id:katakanan:20180428224600j:plain:w400
フレキシブルケーブルをひねるところが計画通りにいった。

ディスプレイの設定方法については秋月のサイトにある。
(FullHD以外では映らないきがする。)

Vivado IPコア コピー

Vivadoのip_repoの中に自分でつくったIPコアを複製したくなったときにコピーする方法。

Vivadoで作るユーザーIPのバージョン管理が、どういう設計手順を想定しているのかわからないが、とにかく使いにくいので、
結局自分でIPコアをコピーしてメジャーバージョンを変えるみたいな方法をとっている。
(個人的にはIPコアのポートを変えるほどの変更を加えたらメジャーバージョンをインクリメントする感じではあるが。。)

①IPコア"HOGE_1.0"がある。
②ip_repoにHOGE_2.0を作って中身をコピー
③component.xmlの中身を編集

 <spirit:modelName>HOGE_v1_0</spirit:modelName>

トップモジュール?を指定している?

<spirit:name>hdl/HOGE_v1_0.v</spirit:name>

ブロックデザイン上のGUI表示を司るtcl

<spirit:name>xgui/HOGE_v1_0.tcl</spirit:name>

とにかくIP設定のなにか

<spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.Component_Name" spirit:order="1">HOGE_v1_0</spirit:value>

その他いろいろ

HOGE_1.0だったり
HOGE_v1.0だったり
HOGE_v1_0だったり
とにかく表記が揺れているがそれらすべてを置換する。
間違えてバスのバージョンを変更しないようにする。

以下のフィールドはバスの定義に関するものなので変更しない。

<spirit:busInterface>
       <spirit:name>fifo</spirit:name>
       <spirit:displayName>fifo</spirit:displayName>
       <spirit:description>fifo</spirit:description>
       <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="fifo_write" spirit:version="1.0"/>
       <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="fifo_write_rtl" spirit:version="1.0"/>
       <spirit:master/>
       <spirit:portMaps>
       <spirit:portMap>

これで不整合があればIPコアをVivadoで編集するときにWarningになって出てくるのでそれを消すようにcomponent.xmlを修正すればなんとかなった。

Ryzen5 2600X 録画PC セットアップ

e-tipsmemo.hatenablog.com
続き。
マザーボードマザーボードの箱の上で作業する。

CPUとメモリを取り付けた。
f:id:katakanan:20180502003305j:plain

CPUは簡単に取り付けられるが、
CPUファンの取り付けが難しい。
マザーボードに最初から付いている部品を取り外す。
マザーボード裏に押さえつける金属板があるのでそれとCPUファンでCPUを挟み込む。

メモリはいつも通り。
最近のマザーボードのDIMMスロットは
スロットの片方だけが倒す爪になっているものが多い。
マザーボードの説明書に従って、A2 B2に入れる。

だいたいケースに組み付ける前に電源を差し込んでマザーボードが起動するかチェックしている。
メモリがDDR4 2666なのにDDR4 2133で動作していること以外は問題はなかった。
あとで変更する。

CX550はCPU用電源のピンが8pinしかなかったが、マザーボードには8+4pinあった。
4pinの方は刺さなくてもよい。(8pinは必須)

http://www.tomshardware.com/answers/id-2871028/motherboard-pin-pin-cpu-power-pin.html

SR-71 Blackbird said:
The extra 4 pin is for extreme overclocking , only 8 pin is needed.

オーバークロックなどするならば4pinの電源部分が必要。
CPU用電源はかなり電流が必要なので12Vだからと言って、
PCI用から取ってくるなどしてはいけない。

マザーボードは問題なかったので、ケース入れたが、
ATX24pinが外れない。
慎重に電源とマザーボードがつながったままケースに入れた。

ケースは精度が悪いので時々ネジ締めがきついことがあった。
また、マザーボードの固定は計10本のネジを締めるが、中央のネジ穴がヒートシンクに近いため、
太いドライバーを使用すると、ヒートシンクにぶつかって締められない。

最後にヒートシンクを付けたM2SSDを取り付けてマザーボード関係は終了。
SSDヒートシンクは安かったのでこれを使用した。

アイネックス M.2 SSD用ヒートシンク HM-21

アイネックス M.2 SSD用ヒートシンク HM-21

起動したらOSをインストールする。

メモリを設定するにはマザボBIOS画面に行く。
OC Tweaker→DRAM Timing Cofiguration→XMP 2.0 Profile 1
を選択する。
自動で使えるプロファイルをでしてくれたので特別なにかする必要もない。
f:id:katakanan:20180501182200p:plain
2666MHzとなっている。
CPU-Zが古いのでSummit Ridgeになってしまっている。

f:id:katakanan:20180501182242p:plain
6core 12thread。よい

EZ-USB FX2 Slave FIFO③

e-tipsmemo.hatenablog.com
の続き。

実際にLEDに表示するのではなく、FIFOに入力していく。
イメージとしては以下のような感じ。
f:id:katakanan:20180420001850p:plain

これを実装した。

EZUSBのコードは前と同じ。
FPGAのコードは以下の部分がメイン

EMPTYフラグをみてSTATE1へ遷移し、EMPTYフラグが立つまで立ち上がりクロックでデータをラッチする。
クロックはEZUSB内部クロックと位相がπずれている。(はず)

このブロックをFIFOとEZUSBバスの間に入れる。
f:id:katakanan:20180427001516p:plain
ついでにILAでデバッグしやすいようにする。

USB Control Centerなるところから6byteおくると、16bit単位なので3回送信されるはず。
f:id:katakanan:20180427001233p:plain:w400
このときのILAの波形は
f:id:katakanan:20180427001814p:plain
トリガーとして、FIFOへのwrite enableを出している。
FIFOの書き込みカウント数が3になっている。

f:id:katakanan:20180427002119p:plain
debugの[22:7]がデータバスに直接つながっているので値をみると、
FIFOから正しく値が取り出せている様だ。

上が切れてしまったが
0x02_01
0x04_03
0x06_05
となっている

次回はFIFOから読み出して云々という流れの予定。

Ryzen5 2600X 録画PC 検討

Zen+世代のAMD CPUとしてデスクトップ用Ryzen7/5 2000番代シリーズが発売。(4/19)
たった2万3000円で6コア12スレッドが手に入るのは素晴らしい。
(i5-8400は2万円で6コア6スレッド)

今回はRyzen5 2600Xを使って組んだ。
使用したパーツは以下
流用品もある。

CPU

AMD CPU Ryzen 5 2600X with Wraith Spire cooler YD260XBCAFBOX

AMD CPU Ryzen 5 2600X with Wraith Spire cooler YD260XBCAFBOX

Amazonアプリを利用すればjpからcomのものも購入できるようになったことで
為替や手数料をよく考えればドルで買っったほうが安いこともあるかもしれない。
(今回は、CPUの価格そのものが安いうえにネットでも現地でも価格差はあまりなかった)

マザーボード

ASRock AMD X470チップセット搭載 ATXマザーボード X470 MASTER SLI

ASRock AMD X470チップセット搭載 ATXマザーボード X470 MASTER SLI

AsrockのX470 Master SLIは上位のX470 Asrockマザーボードと同じ部品を使っているらしい。
それでも二万円弱。
一応Zen+はX370、B350チップセットにも対応しているので安いマザーボードは他にもあるが、
せっかく X付きのCPUを買うのでX470にしないとちょっともったいない。
Xなしの無印であればB350 microATXなどを選べばATXに比べて小さく組めると思われる。

グラフィックカード

は、余らせていたGTX660を載せてセットアップが完了したら外す。
headless構成ができないようであれば画面出すだけの安いビデオカードを別途用意。

メモリ

Ryzenは内部のインターコネクトのクロックがメモリと同期しているから速いメモリだとよりよい(体感できるほどでない?)
などと聞くので、Zen2当たりも見越して良いメモリを買った。
Skylakeを購入したときと比べて二倍以上の値段になっているのが悲しい。

電源

Corsair CX550M 80PLUS BRONZE認定 PC電源ユニット PS627 CP-9020102-JP

Corsair CX550M 80PLUS BRONZE認定 PC電源ユニット PS627 CP-9020102-JP

電源は乗せるCPU、マザーボードGPU +ケースにあるファンの数によって容量を決められる。
GTX660でゲームなどすると550Wでは効率が悪いかもしれないが、グラボは外す予定なのでコレぐらいで充分だと思われる。
後述するケースにもファンは1個しかなかった。

ケース

本当は黒色が欲しかったが、値段が高いので青にした。
このケースはATXを入れられるがレイアウトが多少へんてこらしいので電源をあまり大きいもの
(例えばこれ)
Corsair RM550x 80PLUS GOLD認証取得 550W静音電源ユニット PS592 CP-9020090-JP

Corsair RM550x 80PLUS GOLD認証取得 550W静音電源ユニット PS592 CP-9020090-JP

などにした場合は入らなるかもしれない??ちゃんと検討する必要がある。
見た目がおしゃれっぽいのが選択理由。

SSD

昔買ったVaio ZのSSDが125GBで流石に小さいので
交換したときに960 EVO 500GBを購入した。
なので125GBのM2.SSDが余っている。
データ用HDDは別途買うがそこまで高くないだろう。

今回新しく購入したモノだけを列挙すると
リアル店舗の割引やポイントなどもあって

値段(税込)
CPU 28000
マザボ 17900
GPU 流用
メモリ 22000
電源 6730
ケース 6780
合計 82000ぐらい

昔(半年前)買った960EVOは3万円
GTX660(2年前)は1.5万円ぐらいだった気がする。
今回出費した値段的にはパーツの使いまわしができる自作PCのメリットがあまり活かせていない気がする。

加えて録画PCにするならチューナーも必要である。
定番のチューナーはPT3やPLEXだと思われる。

PT3 Rev.A

PT3 Rev.A

サーバーにするには少しスペックが高いが、気が向いたらメインPCにする。
次回はPCを組み立てセットアップ。ベンチマーク、、、Ryzen Masterもろもろを予定。

EZ-USB FX2 Slave FIFO②

e-tipsmemo.hatenablog.com
続き。

FIFOを接続するまえに16bitずつ受信できるかどうかを確認する。

まずEZ-USBのデバイスディスクリプタの一部を示す。


変えたのはここらへんのエンドポイントの数や、


使わないエンドポイントをコメントアウトしただけである。

また、プログラムの方は、TD_Initとメインループの部分を変更した。

そもそもTD_pollはいらない。
GotSUDは消さない。

FPGA側は、一部抜粋すると

ちょっとハマったのはFDはinoutなのでその書き方。

波形としてはこのようなものをイメージしている。
f:id:katakanan:20180418001107p:plain

USB Control Centerからファームウェアを書き込んで、
f:id:katakanan:20180418001140p:plain
END point2からデータを送る。

そうすると、EP2の空を示すFLAGAが立ち上がるので(=空ではない)受信が開始できることになる。
スイッチをおして、適当にチャタリング防止して、
STATE1に遷移したときに、LEDにFDiをラッチする。
そのままIDLEステートに戻る。
これを三回繰り返すと、FLAGAは0になった(=空である)

受信bit数は16bitなのでLEDには上の画像のデータを送ると2進数で
(0000_0010_0000_)[0001]

(0000_0100_0000_)[0011]

(0000_0110_0000_)[0101]
と表示が変わる。