散歩師・漫画居士のくだらなクラブ日記

ども、散歩師・漫画居士っす。散歩したり実働模型作ったりが趣味なんで、その時に思いついたこととか書くッス

BeMicroMAX10でDVIを出力する話(一応完

BeMicroMAX10でDVI出力出来ました。延べ24H?

廉価FPGAでHDMI(DVI)出力 - sa89a.net をほぼ踏襲してます。

sa89aさんありがとう

f:id:mangakoji:20151231145318p:plain

フォーマットは

以下 EIA/CEA-861-Bの4.5 720x480p @59.94/60 Hz (Formats 2 & 3).

と称されるものです。↓

http://read.pudn.com/downloads74/ebook/269248/EIA-CEA-861-B.pdf

 

f:id:mangakoji:20151231143623p:plain

出力はHDMIメスコネクタを介してDVI出力しています。

CK,R,G,Bの各+/-/GNDの3本と、17pin DDCGNDと、ケースGNDのみ接続。

それ以外はNCです。

配線は、今回はじめてポリウレタン線を使いましたが、楽ですね。ちゃんとついてる時はピピっと引っ張ると、リールが回って線が伸びるので、一発でわかるのとか、楽です。

↓ポリウレタン線配線TIPSはこちら。

ELM - プロト基板の配線テクニック

 

sa89aさんの作例通り、各信号線には270Ωのダンピングを入れてあります。

s_osafune氏の作例の様にDCレベル変換もする予定だったんですが、620Ωが手に入らなかったので...

 

 ■■ sa89a版との差は?

1.プラットフォームをBeMicroMAX10に変更

2.LVDSを擬似からpureに変更(ただしVCCIOは3.3V)

3.フォーマットを720x480Pに変更

4.systemCKを135MHzに/CKEでpix ckをctl

5.serilalizer を240Mbpsに/1:10から1:2に

 

■■公開

リポジトリは、こちら↓

https://github.com/mangakoji/DVI_720x480P59_94FPS_BeMicroMAX10

(sa89aさんのソースはご自由にということなので、公開します)

IPはリビルトしてくださいね。 

(いつのまにかHigh effortでないとタイミングメットしなくなってる。ナゼ? pin配置?)

 

晴れて念願のデジタル映像環境を手に入れたわけですが(HDMI映像機器持ってないのね。このために中古DVIモニター買ったのよ)

やっとFPGAからホボ直でデジタル映像を出せたけど、コレって、去年の技術なんよね。

 

何作るかなぁ~

 

「大盛況」をBeMicroMAX10で!

DVIの実装が峠を迎えるにあたり、プラモデル的簡単な作れば必ず動くアイティムを完成させて、気分を楽にすることに。

 名曲「大盛況」をBeMicroMAX10に移植しました!

https://lh3.googleusercontent.com/GM7ILsNv8L1S9orHdIdegmXJdKKvlPobDwtpFIXT9dgacR_JgzvD7LemdXHT0JIXXGEVMKFQPp5xBEGn8C6ozg6BOsX-4UoV56ZBflSeAiLJ7LEZ86znY04yTKbj43C2bLT1WV4r4_cyv53ng8eytn_s9OqhD8KP3xjZAx6jNRb-BIC2GTCusWQJ3WKOok6ItZ6PwJX561UmiAzKdUsCWL8EccSUGt-KvVjK_LuZi9BEocML4T-Gvj8CvZXEbgB2I6NY4Ys68ReTBuboNVQXtUoi1A25LN8sXp4JFBgCpF08jk-RCdx4hCCsHnA482QSHLp_3bhv8qh5MWvSH7tCx87ofvwarM2G9RUtzho7pSNjZElFlK3JGVuHyjKlufvNDryu6HNvseCS82KDZpvEP_5Jy3kZ0uu0JgUPUQ78n00_6xyg80idibHsHLjWCkrLUh40jWexMulId0TQTkUNLfL7rC_1EAF1akXuLtE_FwEeYJmqeCQN2uXRWwZEEumIoHuokEBNQ4B-VVIHsna7RuJAwT0fVF28LbrHHw_5SjgGIhc2bHFMOxglq276Y1I6MjZ66w=w1905-h1071-no

 

(大盛況は某コンビニ入店アラームで有名なナショナル電工のEC522の音声のことですよ『ふぁみふぁみまー♪』)

 

と、偉そうに書きましたが、@s_osafuneさんFPGAマガジン記事の記事の

Terasic DE0版を移植しただけです。

IPを全く使ってない上にマスタckも同じ50MHzだったので、本当にラッパ書いただけのプラモ感覚。

(圧電素子の電圧稼ぎのために、正相の他に逆相出力も追加してました)

 

以下が元記事

1.FPGAマガジンNo.9

2.@s_osafneさんのbLog

j-7system.blog.so-net.ne.jp

 

■■プロジェクト集め

1.まず@s_osafne氏のTerasc DE0版のプロジェクト リポジトリを手に入れます

Githubリポジトリ

→ osafune/CQEXT_melodychime · GitHub

zip版も準備されてるので、Gitをインスコしてない方はそちらをどうぞ。

(Git便利なんで、Gitインスコしましょうぞ)

 

2.BeMicroMAX10用差分

https://drive.google.com/file/d/0Bx4apUeGhJZwQm90ZUJ1Ri1JNWs/view?usp=sharing

これを解凍して、

./CQEXT_melodychime/qsf

に上書きしてください。

3.コンパイル

 あとは、./qsf/*.qpfを開いて、なりにコンパイルすればokです

 

■■操作法

1.BeMicroMAX10にsof or pofを書く

2.U5-1,U5-2に圧電スピーカーを繋いでください

3.SW1~4を押せば、名曲を奏でます。

 

 

■■

GitHub公開のライセンスがイマイチわからないので、

変則的な公開(差分のみ別公開)ですが、

本当は、GitHubレポジトリを公開するべきなんでしょうね...

正直良くわかりません。

 

 

■■006P電源

 ついでに9V電池006Pを使った電源を作りました。

これを使えば、セブン-イレブンに入るときに『大盛況』を流すという野望が達成できるのです!

 9V→5V変換は以下を使いました

→ 006P安定化電源モジュールキット: 組立キット 秋月電子通商

が、電源コネクタ/プラグが曲者で、外形は極性統一#2

→ マル信無線電機 MP-202L DCプラグ 極性統一#2(L型)ブッシュ無し

でイケるのですが、中pinが細すぎで、しかも若干浅いので、アルミ箔をねじ込んでなんとか使える状態。まだ接触不良中。

schに書いてあるpin径じゃないし、一体なんて規格なんだろう。

5Vなんだから普通に統一#1にしてくれればいいのに。

 

BeMicroMax10でDVIを出力する

 とりあえず、第一段階通過。

https://lh3.googleusercontent.com/AEVRiNp-qCR8EZIP_9g43cnMesmAA2ULc0Sc9qE3ZaDrZkHWNLIQQ3pxq7mnYqlzME9i94Fw-G_FXe9MweyywL3WRCgogDJPr7s__oztUoNBGAfLsAQ0wP0kixJqH_IX_c_-z4t319sXwcsicoLFIIts_G28NsW7mVBnga-XR_MvxLhZ-7-LkGYN_E2CXzvgu4nlJ5jo-KHLET_AayYN7tB7ewdNPbFYfNeDmGZmmbOwHzKM9A8NtFnHEuEvCzCG7bO0Bv1AczLTIALkP3KQ17oPbEFwjNmZPbrbhmkXhu8BxionjK_qE2Wvxm5HNCfp5D2HAmGI9PQ2xwZI4Qdg70VLIZ6cJ7FsG1r46Cp3KHMJApOGF3707zZUT_2TDLurOLNOv3Uf8YJ8W5cF4b1H7gKA5JQASMfb60QuVNOq91kNovd97spKy5pWuwMBT9nb27GCQwDM4g3jDHJ8u9m9OhbsytlYzVEsM-qBNUEMNLsFfsEWVAoXF_vHwmLPimmZFrs83myjCRX_tOQW0teefoupKCG_Mt7HVXjcU2o_56LIe36t56gND46YR6oDTgfjU0mmaw=w1920-h1080-no

やったことはといえば、

廉価FPGAでHDMI(DVI)出力 - sa89a.net

をBeMicroMAX10に移植したのと、

コネクタHDMIにしただけです。

抵抗ネットワークも同じ

720x480x59.94FPSモードを使いたいと思ってるんですが、

どうしてもダメでだったので、まずはということで移植。

 

ありがとうございます。> sa89a.netさん。

あと、FPGAマガジンも参考にしてます>osafneさん

 

ラッチミスバリバリですが、RGB全色入ってるので、傷は浅そう。

 

 

先は長いが、第一段階

 

SVNからGitへ移行

ども、DVI、コンパイルまで終わってるんですがコネクタ配線で決めまきゃならんことがあって、迷ってる中です。

気晴らしというか、この正月工作に向けて、バージョン管理をsvnから今、人気絶好調のGiJoeじゃなかったGit に乗り換えようかと画策中です。

クライアントは、TortoiseGitにしました。TortiseSvn使ってるので。

 

■■インスコ

インスコは以下のサイト参考にしたら、シャンシャンでした

TortoiseGitの前にmsysgitをインスコするのをお忘れなく

www.backlog.jp

基本的な使い方もこちらでバッチリです

TortoiseGit の基礎勉強 ~ TortoiseGit によるバージョン管理 ~ — バージョン管理システム入門(初心者向け)

 

 

■■問題

ここで、解決出来た問題と、解決出来ない問題が

■アイコンオーバーレイが表示されない

 TortoiseGitは、Git管理下のファイルか?commit完了してるか?などをMS-Windowsエクスプローラー上で、アイコン部分に記号を表示する機能があります。

この機能は、MS-Windowsのicon-overlay機能を使ってます。

これがないと、TortoiseGitを選択した魅力半減なのですよ。

以下で解決

urashita.com

私の場合は、dropboxのアイコンオーバーレイが過剰だったんですが、

dropboxを捨てられないので、Tortoise側のオーバーレイを削ってみました。

 

SVN リポジトリが読み込めない (解決 2.5H

 TortoiseGit/msysgitには、SVNリポジトリを読み込んだりcommitする機能があるのですが、なぜか「URLパスが見つからない」エラーでダメでした。

command lineでもダメでした。

 ローカルにあるのでfile:///がダメなんでしょうが、ローカルでhttpサーバ立てるしかないんですかね?

以下の記事の svn://経由というテクニックで移転できました。

 

d.hatena.ne.jp

 

むむむ、複数のprojectが一つのレポジトリに入ってて分離できない。

どっちかって言うと、svnの使い方がおかしかった模様。なんとか分離できんかなぁ

 

■log messageの変更が出来ない(未解決

 svnはlogのmessageを後から編集して見やすくできるので、随分助かってます。Gitではなかなか大変みたいで。

TortoiseGitでは結局変更方法がわかりませんでした。直前のコミット分だけは、偶然変更できたのですが、再現方がわからず。

 

■ファイル/dirのmove(解決?

今まで使ってるsvnは、それ以前のcvsに比べて、ファイルのmoveが出来る、さらに履歴を引き継げるのが売りでした。

なんだか、Gitでは不可能になってて、cvs同様del/add扱いらしく、これは多きな問題なので、考え中です。

 --実験してみたら、del and addの場合は、履歴が残るみたいですが

なぜか、管理下フラグが消えてしまう(履歴自体はタグれる)ファイルがあったり

色々不安が残ります

 

 

そんな感じで、不安ながらもGitへ移行しました。

【DVIを】【BeMicroMAX10で】4日目?

以下 EIA/CEA-861-Bの4.5 720x480p @59.94/60 Hz (Formats 2 & 3).

と称されるものに従いました

 

http://read.pudn.com/downloads74/ebook/269248/EIA-CEA-861-B.pdf

 

 だー!!

既にダウンしてあるpdfの出元調べるだけで1時間たってしまった!

 

本文はもう明日!!!

BeMicroMAX10で純正律オルガンを作る(未完

先週末~金曜作った12bit in 12bit outのsinテブルを使い、土日に16時間ほどかけて純正律のオルガンを実装しました。前から作りたかったんですよ。

が、色々問題があって、完成に至りませんでした。

完成しなかったので完成品のプロジェクトは出せないんですが、問題点リストは需要があるかもなので、そちらをupします。

 

■■MAX10はROM推測できないの?

 ALTERAのデバイスは、ピュアHDLで書いても(IPを使わなくても)ROMを実装することができます。(XilinxでもMicroSemiでもLatticeでも多分できますが。)

具体的には、以下の

「6. 推奨される HDL コーディング構文」6-24

https://www.altera.co.jp/ja_JP/pdfs/literature/hb/qts/qts_qii51007_j.pdf

の記述方法でROM推測してくれて、M9Kに展開してくれる筈なんですが、

MAX10 + Quartus Prime v15.1の組み合わせでは旨くゆきませんでした。

入力/出力両方にDFFを入れてみたんですが、それもダメ。

Cyclone I、CycloneVに、同じコードを入れてみましたが、こちらは推測してくれました。

困る。何が困るかというと、IPで設計しちゃうと、他のベンダー移植に労力がかかるし、simも大変になるし、sim実行に時間もかかります。

>>>解決 --160104mo追記

Device オプションで DeviceAndPinOptions->ConfigurationMode:で

~MemoryInitializationを選べば行けるみたいです。

が、MAX10は、FやA classのdual configできるデバイスでないとダメみたいですね?(容量のせいなのか、configデバイスのせいなのかは不明)

 

 

■14bit4入力加算は78MHz

 BeMicroMAX10搭載の10M08DAF484C8GEは、4入力s13bit加算に、78MHzかかりました。

しかたないので、2入力づつ1段叩いたら150MHz以上になりました。

192MHz動作するつもりでしたが、144MHzに妥協することに。

もう少し気にする必要があったみたいですね。

 

■サウンダーは効率悪いし歪むよ

 音出力は3.3VI/Oを逆相2ポート使って、サウンダー(100円ショップの盗難ブザーの圧電素子)を鳴らす予定でしたが、フルスイングでも、300Hzの正弦波はなんとか聞こえるレベル。

8和音とか言うと、1つの音の波高値はフルスイングの1/8になるので、パワーは-18dB(1/64)。結構HiFi?

おまけに、スプリアスがバリバリでるので、音質どころか、和音なんて言えないレベルでした。FFTの波高値で1/3くらいあるスプリアス。少なくともダイナミックスピーカーが必要なレベルなんですが、設計めんどっちーです。

多分100円ショップで探せば32Ω品があるので、それを8パラドライブすれば、聞こえるレベルにはなると思うんですが...

 

■和音用分周回路の比率計算間違い。

 任意周波数のシンセサイザーには、最近はやりのDDSみたいに、任意ステップのカウンタ(ステップ幅を周波数に比例させて大きくする)方法と

ステップは1で、1ステップ上がる時間を周波数の逆数に比例させるカウンタを使う方法がるわけです。

・ステップを変える方法の弱点

ステップ可変の方法は、システムクロック周波数を厳密に考える必要がなく、かなり自由な設計が出来る代わりに、システムクロック幅のジッターを持つ宿命にあります。

 

・周期(時間間隔)を変える方法の弱点

 逆に時間周期を変える方法は、作りたい周波数の波長の最小公倍数をマスタクロックにして、マスタクロックとの公倍数ごとに1カウントアップするような方法を取ります。

普通、マスタクロックの周波数がものすごく大きくなって、計算も大変なので、拒否られる方向です。

でも、ジッタはシステムクロックのスキュー分にとどまります。

 

  f:id:mangakoji:20151220230844p:plain

この表は純正律の各音の周波数(f)と周期(T)の比を通分したものです。

周波数は24、周期は180が分母になります。純正律は波長の比が単純なのが売りで

そのためにキレイな響きを発することができるのですが、それでも最小公約数が180にもなります。

f:id:mangakoji:20151220231314p:plain

 

これを元に、マスタクロックを計算して、48MHzでイイはず、だったんですが、

実装してオシロで周波数を測ってはじめて気が付きました。分母の108いらなかったのね。108だし。

正しくは

 fCKE=440x2^4x108x4096=3.114GHz

マスタークロック3.114GHzじゃん。というわけでした。

とりあえず、マスタークロックを144MHzにすればC7が200Hz前後になるため、今日は、この音を聴いて終わりということに。

残念!

sin tableの 精度向上

日曜のsin tableですが、

あれ、精度がたりませんね。区間代表値を無視して、足切りしてたッス。

tableを

y(n)=int(SWEEP * sin(n/pi/2))

でなく

y(n) = int(SWEEP * sin(n/pi/2)+.5)

で作るべきでした。

縦に0.5潰れてる格好。

 

 

あの回路そのままだと90°付近で(-)に折り返しちゃうんで、

そこは、直前の加算の結果のMSB(carry)で判定して、クリップしました。

 

というわけで、明日からはいよいよ音源作成。

 

12bit in/12bit out sin tableの実装

■■純正律音源を作りたい

 なんか「伝説のハンドメイドアナログシンセサイザー: 1970年代の自作機が蘇る」を読んでたら、純正律のハーモニーを聞きたくなって、オールデジタルの簡単なシンセサイザーを作ろうと思い、分周やらエンベロープやら考えてる内、やっぱり純正律なら正弦波だろうと思い、まずsin tableを実装することに。

www.amazon.co.jp

 

■16bit in/16bit out

Altera FPGAボードBeMicroMAX10 /DE0Nanoには M9kという ROMが搭載されてますが、これ 1個で16bit in/16bit outのsinテーブルを作ろうとして2日間格闘しましたが、結局あきらめました。

なんとかROMには入れたんですが、どうやっても5bit×7bitの乗算器を削れないので、アキラメ。

 

■M9K ROM

M9k ROMは 9kbitのROMなので、ベタで使うと、10bit in/9bit outか、 9bit in/18bit outになります。

 

■12bit in / 12bit out

 ベタ書きじゃさすがに芸がないので、design wave magazineのFM受信機コンテストの回路のアイデアを、一部いただいて、12bit in/12bit outにしました。

 

入出力関係

f:id:mangakoji:20151213205640p:plain

f:id:mangakoji:20151213205650p:plain

 

このアイディアのキモは、

1.1周期は90°づつ、符号反転、鏡面反転でえられるので、

  アドレス方向は2bit減らせる、データbit方向も1bit減らせる。

 

2.下図の様に、sinを0~90°で見ると、比例分を削除して、直線分を引けば、

波高さの1/4で済むため、データbit方向をさらに2bit減らせるというもの。

f:id:mangakoji:20151213205628p:plain

 

実装ブロック図は、こんな感じ。

f:id:mangakoji:20151213205608p:plain

こちらがsim結果

f:id:mangakoji:20151213205405p:plain

 

考察は20時間以上使った上に失敗だったけど、実装はテーブルデータコミでも3時間くらいかな?

やっぱりverilogは早くてキモチイ。

フラット階層でさえこれだもんなぁ。VHDLは階層間が入るとさらにたくさん書かなきゃならないんだよな。

コーディング時間30%、debug時間50%くらいは削減できると思うんだけど...誰でも。

ただverilog の時でも port size checkのstrict optionはあってもいいと思う。(そのアドバンテージもsim時のMSB詰めで帳消しだけどな>VHDL)

 

ハッキリ行って回路の余裕があるんだから8和音でも16bitでベタ書きROM余裕で入っちゃうのわかってるのに、どうしてぼくはこうも遠回りしたがるんだろうか....

困った性分である。

 

というわけで、音源自体は影も形も。

そもそも12bitで足りるかも考えずに、実装してしまったわけで。

こうやって休みがどんどん消費されてしまう。困る。

CDのサンプリングレートがなぜ44.1kHzになったか?

CDのサンプリングレートがなぜ44.1kHzになったか?

ja.wikipediaも他のサイトも、納得のいかない説明をしてて、気になった。

サンプリング周波数 - Wikipedia

app-review.jp

 

■この説明のなにがおかしいのか?

44.1kHz=水平同期周波数15.75kHzの 3×(14/15)倍

と説明してますが、

水平周波数は、15.75Hzではなく、ピタリ15.75 × 1000 / 1001kHzで

辻褄があわないんですよ。

厳密に分数で表せないクロック系は、マスタークロックを1つにできないため

めくれ/継ぎ目が生じます。こんなの提案するわけがない。

提案するなら、44,100/1.001 = 44.056 kHzでしょう。

 

ソニーphilipsに負けたのが理由

困ったときは、英語版ということで、英語版のwikipediaを見ると

44,100 Hz - Wikipedia, the free encyclopedia

 

ソニーNTSCベースの44,100/1.001 = 44.056 kHzを押してたけど、

philipsのPALベースの44,100kHzに負けちゃったってことなのね。

これなら辻褄が合います。納得。

みんな政争の話は書きたくないのかな?規格はこっちが本質なんだけど...

規格は政治ですから。

でも、なぜphilipsに負けたかまでは書いてないのね。

 

FPGAでDVI出力 3日目

一応ソース機のline数を計れました。   +6/22H

■■USB Blasterを認識できない問題 +0.5=1H

 以下で解決。本当にwebなんでも書いてあるな。何よりもできると思ってやることが大事だと思うわ。この程度のことは。

■Quartus II v12.0でUSB-Blasterが認識されない場合の対処方法@
blog 渓鉄

http://keitetsu.blogspot.jp/2012/06/quartus-ii-v120usb-blaster.html

 

■■デバグ/回路修正 2H

 テスト回路で気がついたんですが、昨日の回路では、カウント-1が表示されるため、

使いづらいので、補正しました。

f:id:mangakoji:20151129231816p:plain

RST_iにVD、PLUSE_iにCKを入力すると、VDの下がりから次の下がりまでの

CKの下がりの回数をカウントします。

結果は、PSW_i[0]を押すと、LSB8bit LEDに表示されます。

PSW_i[1]を押すと次の8btと言うように、PSWを押すたびに上のbitが表示されます。

はやり、これが一番はやい解決法でしたね。

一度、慣れちゃえば、Nios経由でPC取り込みの方が楽なんでしょうが...

早く作っておきたい、慣れたい。

 

■■測定結果 3H

 どうやら、GNDが弱くて、ちゃんと図れてませんが、

それなりには動作してるみたいです。

想定通り524line/frameだったみたいです。

やっぱり、これをソースにするのは微妙だな

 

■■回路

今回作ったプロジェクトはこちらに上げておきました。

PULSE_CTR_v001_151130su_a.zip - Google ドライブ

FPGAでDVI出力 2日目//line数測定

周波数測定カウンタを作りたい  10H /16H

DVI出力のため、ソース側の信号の特性を知る必要があります。
BeMicroMAX10の完熟も兼ねて、(周波数)カウンタをつくてみました。
今日はimpli 完了まで

 

■■■考察 1H

 腐ったNTSC系回路の出力の測定をしたい。

具体的には、1Vのline数を図りたいのだが、Vとckは出てるけど、Hが出ていない。

 Hのck数は想定出来る。

 シンクロのvideoモードのライン数表示では、いまいち不安

 周波数比を10bit精度で図りたいけど、測定器がない。

 で、FPGAでカウンタを組むことにした。

 

■■悩む時間が勿体無い

 しかし、表示装置がないので困ってる

■実装方法案

  1. EVA基板上の8LEDをpush SWで切り替えて表示
  2. UART回路を実装して、PCにダンプ
  3. NIOSを組み込んで、JTAG UARTでPCにダンプ
  4. キャラクタLCD
  5. 日の字LEDを5コ並べる(4コ品はあるんだけど...)
  6. 週末、このために若松で買ったVDF管表示器を組み立てる

■LD8035E BOARD KIT 6管蛍光表示管キット@若松

http://www.wakamatsu-net.com/cgibin/biz/pageshousai.cgi?code=18030865&CATE=1803

 

VDF表示器は、まさにこのためのアイティムなんだけど、なんだか、組んでる時間がもったいなくなってきた。gの電圧はH/Lどっちで点灯かわからないのもやな感じ。

さらに、16進->10進変換が必須なので、その回路がめんどくさい。

BDCカウンタで組むしかないのかなぁ

などと、悩んでる時間がもったいなくなってきた。

最も工数が少ないのはなんといっても1.だ。こいつで行くかな?

 ■■ 5V 耐圧設定 /調査 3H

昨日のページに記載

■設定方法

qsfに記載する方法もありますが、最初はオプション不明なのでGUIでやるしかなさそう。

GUIでの設定方法

Quartusでの設定は 回路記述、1st compile/P&R完了後

 

1.Assignment->PinPlanerでPinPlanerを起動

2. Right_click->Customize_ColumnsでPCI_I/Oを追加

3.各pinでPCI_I/O Columnを設定すれば、PCI toleant Diodeが追加されます。

プルアップや、終端も同じ様に追加すればGUIで設定できます

 

f:id:mangakoji:20151128142733p:plain

 

■■MAX 10 FPGA Device Architecture

https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/max-10/m10_handbook.pdf

 

各機能のブロック図が載ってる。日本語版もあった気がするけど

英語版しか見つからなかったので、我慢。

 

 

■■■回路設計

もうめんどくさいんで一番簡単な方法1.で。

■■ブロック設計 2.5H

f:id:mangakoji:20151128165130p:plain

 これにプラスして、テスト回路は720P59.94fpsのTGを追加

 ckは200MHzって書いてるけど13.5MHzで行こうと思う 

 ■■コーディング 2H

 何というか、休みはやっぱり、コーディングとろい。

キーボードやイスの位置も、会社の方がイイんだろうな。

 

■■■ compile/P&R 0.5H

 コンパイルはシャンシャン。27MHzのつもりで270MHzでコンパイルしたら

fmax=245MHzとか出た。恐ろしい時代になったもんじゃ!

とりあえず135MHzで作る。

DVIは、270MHz部分があるんだけど、別用途に2コともPLL使っちゃうんで、

IPのシリアライザ使えないんだよなぁ。どうしよう~

 

■■■書き込み (未) 0.5H

 programerがUSB blastar(書き込み装置)を認識してくれない。

BeMicro MAX10のstart up guideに書いてあった方法で、PCからは認識できるようになったが、QuartusPrimeのProgramerからは認識してくれない。

立ち上げ順などの問題かと思われるので、今日はこれまで。

明日。

 

■日誌 0.5H

FPGAでDVI出力 1日目//BeMicroMAX10を使ってみる(PLL資料読み)

■■ALTPLL@MAX10

3/6H

■■BeMicroMAX10
新しい、EVA基板を購入



http://www.alterawiki.com/wiki/BeMicro_Max_10

なんと、マルツで5000円、
去年の今頃の商品らしい。
LEが8064、内蔵RAMが47kByte、PLLが2コと、少ないことを除けば
I/Fが高速になっているため、むしろ、今回のフィーチャーにはマッチしてるかも?

なんといっても安いので
DE0-nanoが千石価格で20,000円と倍に上がってしまったのもモチベーション

■マルツ BeMicro Max10 販売ページ
http://www.marutsu.co.jp/GoodsDetail.jsp?salesGoodsCode=593619&shopNo=3


現在サンプルコードを眺め中。欲を出して、IPマイコンの実装まで追ってしまったため
2時間以上余計に食ってしまった。
解説がスペイン語なのには口閉。google先生に感謝だけど
bitmapまでは訳してくれないから。

■■BeMicroMAX10関連link

チュートリアルページ

https://sites.google.com/site/udifpgas/home


■Altera MAX10シリーズの使用感レポート(日本語)
http://j-7system.blog.so-net.ne.jp/2014-11-19

 

 

■■■PLL

BeMicroMAX10を買ったので、使用の

10M08DAF484C8GESで実験。

-8でタイムグレードが一番遅く、電源はdual supply modeにて。

 

□□megawizardによる実験

 ALTPLLの動作範囲

・input

max473.709MHz/min:5.00MHz

・分周比

最大分周はどうやら42500

最大逓倍は26/1::1.300GHz @50MHz

datasheetのmax 116-MHzは一体何の周波数なのかね?

 

□□datasheetより

あった。

■MAX 10 のクロッキングおよび PLL ユー ザーガイド

https://www.altera.co.jp/ja_JP/pdfs/literature/hb/max-10/ug_m10_clkpll_j.pdf

fvco = 600~1,300 MHz

分周比は、N(pre scale),M(FeedBack),C(outputDiv)ともに1~512(条件によっては~256)

(さらにK:post scaleに1,2が選べる)

あった。max 116MHzは、自走モードで使った時の最大値なんだね。

driftやjitterはどんなもんじゃろか?

 

■ reset level

多分H actだと思う。実験したら訂正するなり

なんでもイイけど、どうしてFPGAのdatasheetにリセットレベルがわかるように書かいないのかな?

alteraもxilinxも必ず1回は失敗するんだよなぁ。

 

 

■■ I/O tolerant 

 5Vに繋ぎたい時にどうすればいいのか悩んでる。

MAXは最大3.3VI/Oしか持てない。

出力の時は、CMOSで出力すれば、5Vでも大体引き込んでもらえる。

でも、入力の時は、ただつなぐと、ポートを壊してしまう。

ツェナー使うとか、抵抗ネットワークとか考えたけど、alteraでは、cyclonの時代から、3.3V電源時に

5VのPCIバスにつなぐ解決法を提案してたみたいですね。

 

■11. Using Cyclone Devices in Multiple-Voltage Systems

https://www.altera.com/en_US/pdfs/literature/hb/cyc/cyc_c51011.pdf

5.0-V Device Compatibility 11-3~11-5に書いてある。

各入力バッファには、PCI保護用ダイオードがあり、

5V入力時には、ここを通して、VCCI/Oに逃がすので、ポートを壊さない。

以下の条件あり

1.) 3.3V VCCI/O時のみ

2.) ダンピング抵抗必須(信号線に直列に入れる抵抗)

3.)ダンピング抵抗の値は、都度計算する必要がある。参考例では160Ωほど

4.)オプションなので、PinPlanerで自分で入れること

 

これで対応する方向で。

 

■追記/tolerant計算

 

f:id:mangakoji:20151128142733p:plain

件の資料は、5V deviceの最大電流を心配した設計ですが、

MAX10は PCI保護クランプは、10mA maxなので、そちらが心配。

で、計算すると、221.5Ωが最小。330Ωくらいがいいみたいですな。

その方向で

PCI保護ダイオードImaxは以下 6p. IDiodeより

■MAX 10 FPGA Device Datasheet

https://www.altera.com/en_US/pdfs/literature/hb/max-10/m10_datasheet.pdf

どうやら「だれか死ぬと思考停止するのが礼儀」だと考える人が多いらしい

昨日のパリ・テロに関しての、いくつかのtwを読んで、

 長年の疑問が一つ解けたので、メモ

 あとこれ

 

どうやら、多くの日本人が、「誰かが死んだら思考停止するのが普通で、思考停止しないのは不謹慎」という信念ないし恐怖を抱いているんだ。

 

■「だれか死んだら思考停止するのが礼儀」

多分、日本人固有ではないにしても、日本人は割合に多いんじゃないだろうか?

 

これって、日本のオタクが、知人の訃報を公開したがらない、なかなか死んだ情報が伝わらない遠因なんじゃないかと思った。

 更に、評価の定まっていない、新しいイベントの情報を流したがらないのも近い心理が働いてそう。

 

 昔知人の会社の葬式で、そこの経営者が知人に「死んだ人への給料は何ヶ月出し続けるのが通例なんだろうか?」と質問したら、相手の知人が不謹慎だ不機嫌になったことがあったが、鱗片だが理解できた。

 

■日本兵は死者に優しい

 何で読んだのか失念してしまったが、太平洋戦争時の米軍の日本人捕虜か傷病兵に関する文章に「日本人は死者に対して並々ならぬ敬意を払うが、生者に対しては過酷で無慈悲だ」とあったのを思い出した。日本兵は遺骨を作るために死ぬ兵が多い。本末転倒だと思うが。

また、鎌倉武士は元寇の時、元軍に人質をとられても意に介さず突っ込んだそうだ。

【悲報】鎌倉武士団、モンゴルより鬼畜だった:哲学ニュースnwk

 

 日本人は死んだ人間にはこころを払うが、生きてる人間には興味ない。

ISISの人質を見殺しにする感覚とも符丁する。

 

■ぼくは、人は死んだらモノだと思ってる

 一応ぼくの感覚を書いておこう。

 ぼくにとって、人は死んだらモノだ。ぼくが取る死者に対する配慮に見えるものは、すべて「残された遺族/関係者の心情に対する配慮」であって、本当は死者に対するものではない。

同時に「ウルトラマン/仮面ライダー/サンタクロースはいない」と言わない配慮も必要なんだな。

 さらに言えば、死んだ戦友からタバコや靴をくすねる日本兵は信用に足りると考える。

生きてる者こそが大事で、死者で煩うのは不謹慎だとすら思う。遺族はまだしも無関係者の心情に配慮する必要はないだろうと。

ひるがえって、自分が死んだら、当然遺品や死体は、生者が利用しやすい様に利用してください。ジビエの肉の様に扱えばいいと思ってる。そのために危害を加えなければ、遺族に不利をあたえなければ。という条件はありますが。

 

■危険!危険!

 この「死ねば思考停止癖」は為政者に利用しやすぎるので、つとめて警戒すべきだと考える。でも、

正直ぼくには希薄な感覚なのでわからないけど、きっと恐怖のような感情由来の感覚なんで、自制は不可能なんだろうなぁ

ウは♡のウ

なんか、おととい?から、twitterのfevorateボタンが☆から♡(イイネ)ボタンに代わったのが話題になってる。 

 

アンケートといい、今度のfavorateを♡(イイネ)に変更したのといい、同化圧力を強めて、居心地のわるい場所にして、従順に飼いならしたい意図が気持ちわうるいけど、まあ、それはおいておいて。

 

なんか♡を普通に文字として使えて、隔世の感を感じたので、そのことについて。 

♡マークは、今でこそunicodeに入ってて、且つほとんどのブラウザがunicodeの♡の載ってるページをサポートしてくれてるおかげで、何も気にする必要がないわけです。

 

でも、2002年位よりも前は、ブラウザがunicodeの♡をサポートしてなかったし、ソレより前は、そもそもunicodeに♡がサポートされてなかったわけです。

昔は、♡マーク一つ出すにも裏ワザで

<font face="symbol">ウ</font>

って書いてたんですよ。ウは半角のウです。

 ほーむぺーじでしか使えず、掲示板では使えなかったですね。

掲示板では、wが(笑)の省略なのと同様に、ウが♡の省略として使われてた時期もあります

(あんまり流行りませんでしたが

 

 逆に 最近のブラウザだと、font faceのsymbolの方をサポートしてなかったりして、昔のブラウザでは♡と表示してた部分がウに化けたりしてます。

もっとも、もう、既に化けてるページすらみなくなりましたね。

 

 

というわけで、古来「ウは♡のウ」だったってわけです。

 

IウU>ALL!