2020年4月3日金曜日

激安中華FPGAで「動かしてわかるCPUの作り方10講」を動かしてみる

最近電気回路の勉強を始めていて、FPGAに興味を持っていた。でもお値段が高いのだ。

「動かしてわかるCPUの作り方10講」ではDE0-CVという開発ボードを勧めているのだが、これは二万円ほどする。

https://gihyo.jp/book/2019/978-4-297-10821-2 
http://solitonwave.shop/?pid=135615075

安価な電子回路はAliexpressでいつも探すのだが、三千円くらいのFPGAボードがいくつか見つかる。はたしてこれは「動かしてわかるCPUの作り方10講」で使えるのか、調べてみた。

購入したのはこれ。E6とE10バージョンがあり、E6は6kLE、E10は10kLEの規模である。

https://www.aliexpress.com/item/32813061054.html

DE0-CVとの違いは、

・ 規模が1/10と小さい(DE0-CVは49kLE)
・ SRAMがついていない
・入力スイッチが少ない(8bitディップスイッチ)
・7segLEDが8桁(ダイナミック点灯)

注文してから二週間ほどで手元に届いたので、「動かしてわかるCPUの作り方10講」の例題をいくつか試してみた。

 E6とDE0-CVはどちらもAltera(INTEL)のFPGAを使っているので、開発ツールは同じものが使える。今回はQuartus Prime 13.0 Sp1を使った。
ただし、FPGAの型番(E6はCyclone IV E  EP4CE6E22C8)は異なるので、デバイスの型番とピン配置をE6に合わせて指定し直す必要がある。

動かしてみてわかったのは、論理回路はそのまま動くが、表示用の7SEGLEDの点灯のさせ方が違うことだった。例題では7SEGLEDの各素子に表示を指示するが、E6ではLEDの桁位置を指示に加える必要がある。

このために新たなポート、led_bitとDIN0〜DIN3までを指定した。



第8章-3, cpu_dec_slowのdec_7seg.vhdに以下のコードを加えた。

    process(LED_activating_counter, CLK)
    begin
     if(rising_edge(CLK)) then
        LED_activating_counter<= LED_activating_counter + "01";
     end if;
     
    case LED_activating_counter is 
        when "00" =>
        led_bit <= "1110";
          DIN <= DIN0; 
        when "01" =>
        led_bit <= "1101"; 
          DIN <= DIN1;
        when "10" =>
        led_bit <= "1011";
          DIN <= DIN2; 
        when "11" =>
        led_bit <= "0111";
          DIN <= DIN3;
        when others =>
       led_bit <= "1111";        
    end case;
    end process;

CLKの立ち上がりごとに7SEGLEDの桁をずらして(led_bitで指定)点灯させた。


クロックが遅いので表示がチラチラするが、1〜10までの和が順番に表示される。

第8章以降の例題ではROM, RAMも実装されるが、FPGA内に作るため外付けSRAMは不要である。 また、使うロジック数も2000LE程度でE6の規模に収まる。

「動かしてわかるCPUの作り方10講」の範囲内では、3000円の激安中華FPGAで例題を十分にこなせることが確認できた。
価格の面でFPGAの購入をためらっているのであれば、良い選択肢と思われる。


なお、E6の製造元はFPGAのプログラム例、ピン配置、回路図を下記で公開している。

http://www.mediafire.com/file/wyhlxgfw3g3755p/A-C4E6E10_board.rar

2014年9月24日水曜日

Camera-Wikiの今後について

Camera-wikiのメーリングリストで運営についての議論が始まりました。

Camera-wikiはフリーのカメラについてのデータベースです。
以前も紹介したことがあります。

http://oboegaki-no-oboegaki.blogspot.jp/2012/07/camera-wiki.html

今回の議論はCamerapediaからCamera-wikiが分かれた際に中心となり、運営に当たっていた二人の方がCamera-wikiの運営から離れたい、とのことで始まりました。

Camera-wikiのサーバーのトラフィックが増えていて現在ホストのプロバイダの変更を考えているようです。
ホストの運営には月$200ほどかかっているとのこと。

プロバイダの変更があってもCamera-wikiのURLはそのまま
2016年の1月まで使えるとのことです。

金銭的な面では来月のサーバー代までは支払えるそうです。
広告の排除が目的でCamerapediaから分かれたので、ホストの運営費用は
現在Paypalによる寄付によりまかなわれています。

こちらに詳細が記してあります。現時点でのCamera-wikiへの最大の援助は資金援助となります。

http://blog.camera-wiki.org/donate/

現時点ではPayPal経由の募金は日本では受け付けていないので、運営に代案がないか確認をしています。


運営については二人が行ってきたホスト管理(サーバーの契約、スパムの排除等)、編集の補助(英語の添削、写真のアップロードのサポート等)、新規編集者へのサポートなどをアクティブな編集メンバーのなかで分担しようということで話が進んでいます。

時々飛んでくるメールの内容を追うのに必死ですが、進展がありましたら随時ご報告させていただきます。

2014年6月11日水曜日

スマホで Mathematica ?

先日中国から一万円のAndroid中華スマホを購入した。

いろいろ見てみると、Android上でLinuxを動かすことができるGNUrootというアプリがあったのでこれで遊んでみた。狙いはスマホでMathematicaを動かすことである。

  • GNUrootのインストール

GNUroot

https://play.google.com/store/apps/details?id=champion.gnuroot&hl=ja

GNUroot Wheezy

https://play.google.com/store/apps/details?id=champion.gnuroot.wheezy&hl=ja

をインストールする。

また、Xが動くようにする。Xサーバーは XServer XSDLを使用した。

https://play.google.com/store/apps/details?id=x.org.server&hl=ja

GNUrootをインストールしてFake Rootでログインする。

まずはじめに

apt-get update
apt-get upgrade

をおこなう。 tzdataのインストールに失敗してインストールが完了しないので、以下を修正。

/var/lib/dpkg/info/tzdata.postinst

の二行目、set -s を set -x に書き換えてupgradeを再度行うこと。

XとXfce4は、

apt-get install xfce4

でインストールされる。ここでXサーバーに表示が出るか確認する。
あらかじめXServer XSDLをAndroid端末上で起動しておく。
次にGNUrootのコマンドラインに次のコマンドを打ってXサーバーに画像を表示させる。

DISPLAY=localhost:0.0 startxfce4

XServer XSDL上にデスクトップ画面が表示されればOKである。



MathematicaのダウンロードのためにIceweasel(Firefox)を入れておく。

apt-get install iceweasel


  • Mathematicaのインストール


Mathematicaをインストールするためにarmef (Wheezy)とarmhf (Mathematica)を混在させる。

dpkg add-architecture armhf
apt-get update

MathematicaをRaspbianのサイトからダウンロードする。java7も入れておく。

http://archive.raspberrypi.org/debian/pool/main/w/wolfram-engine/
http://archive.raspberrypi.org/debian/pool/main/o/oracle-java7-jdk/

先にjava7を入れておく。

dpkg -i oracle-java7-jdk_1.7.0+update40_armhf.deb

インストールに失敗するので、

apt-get -i install

を実行し、armhf のバイナリを取得する。

Mathematicaも同様に、

dpkg -i wolfram-engine_10.0.0+2014012903_armhf.deb
apt-get -i install

を実行する。

これでもまだarmhfのライブラリが足らないので、以下のコマンドを実行。

apt-get install libstdc++6:armhf
apt-get install libXmu6:armhf
apt-get install libXrandr2:armhf
apt-get install libXfixes3:armhf
apt-get install libXcursor1:armhf
apt-get install libfontconfig1:armhf

これでMathematicaが立ち上がる、のだが…



コマンドライン版のwolfram、X版のmathematica両方とも起動途中で止まってしまう。
wolframの方ではライセンス認証の画面となる。
ここにmathpassに書いてあるコードを入れたが認証に成功しなかった。
RaspberryPi以外のマシンでは動かないのかな…









2014年3月4日火曜日

Finepix F401をWindows7で使う

職場のゴミ箱に捨てられていたFinepix F401、フルセットそろっていたので拾ってくる。

USBケーブルをPCにつないでも認識しない。ドライバをフジのサイトから拾ってくるが、XPまでしかない。

メーカーのサイトにはWindows7は標準ドライバで対応と書いてあるのだが・・・

よくわからないけど、レノボのサイトにあったID5CAR02WW5.exeというファイルをインストールしたらなぜかカメラがUSBマスドライブとして認識できた。

謎だ。

2013年11月11日月曜日

ソビエト時代のカメラ特許を探して読んでみる

TwitterのTLで日本とソビエトの間でのカメラ技術の交換が話題になった。

なんでも昭和38年にソビエトから使節団が来て、コパルや小西六と技術提携をしたようだ。

そんなわけで当時のソビエトのカメラ特許が探せないか調べてみた。

いろいろ調べた結果、特許検索はEspacenetでできることがわかった。

Espacenet日本語トップページ

画面左のメニューから「高度の検索」をクリックして検索画面に入る。


ポイントは公報番号にSU(Soviet Union)をいれること。
1980年代以降は英語のキーワード検索ができるので「名前でのキーワード」に入力する。
それ以前はIPC分類による検索となるので、カメラならG03B17を入れる。
発行年の指定は「公報発行日」に西暦(たとえば1965)を入力する。期間指定はできない。

特許は1924年から収録されている。全期間でG03B17を指定して検索すると300件ほど見つかる。

  

「英語の発明の名称は利用できません」(本来は発明の名称)をクリックすると閲覧の画面に入る。


画面左側の「原文献」をクリックすると特許のトップページが出る。
「Page」の右のプルダウンメニューから"Claims Drawings"を選ぶと図面が見られる。
とりあえず、「Download」をクリックして特許のpdfファイルを手に入れよう。

こいつを何とかして読みたいときはGoogleDriveの力を借りる。


まず、「アップロード設定」で「アップロードしたPDFや画像ファイルからテキストに変換」と「アップロード前に、毎回設定を確認する」をチェックしておく。

画面右側の赤い矢印をクリックして先ほど手に入れた特許を選択し、アップロードする。
このとき、アップロード設定の画面が出るので、「ドキュメントの言語」をロシア語にしておく。


アップロードが完了するとOCR済みの文書が表示されるので、クリックして開く。
文書の原画像とOCRで読み込まれたロシア語の文書が一頁おきに表示される。


最後に機械翻訳をかける。「ツール」メニューから「ドキュメントを翻訳」を選ぶ。
翻訳したい言語を選択して(英語がお勧め)「翻訳」ボタンをクリックする。


なにやらひどい訳だがそれらしいことが書いてあるのがわかる。
OCRと翻訳の精度が上がればこの状況も改善するかもしれない。

ソビエトの特許探しをしたいという物好きの参考になれば幸いである。

2013年8月19日月曜日

ルビコン特許

ルビコンは小西六が戦前に試作した35mmレンジファインダーカメラ。
戦後のKonicaIの原型となる。

TwitterのTLで話題が出たので特許調べをしてみる。

その1

その2

その3

と具体的なものが昭和13年に出願されている。

ルビコンについては戦後の写真雑誌CAMERAに記事が載っているのを確認できた。


KDP-2をAndroidに移植

いつまでも移植中のレンズ設計プログラムKDP-2をためしにAndroid上で動かしてみた。

Android用gfrotran(とIDE)はgoogle playから入手できる、CCToolsというもの。
これとgnuplotのAndroid版、droidplotを組み合わせる。

CCToolsでは拡張子.FORは使えないので、あらかじめ拡張子を.fに直しておく。
コンパイルは無事通って、バイナリができた。実行したのが下の図。





おー、動いている。droidplot経由で図の表示も可能だ。

あとはタッチUIがあればAndroid版完成となるが、だれかつくってぇ(こればっかりw)