Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cortex-M0プロセッサから自作して Lチカをやってみた

2,631 views

Published on

mbed祭り@クリスマスイブの金沢。MakeLSI:、ARM Cortex-M0 DesignStart、Lチカ。参考:「またまた懲りずに再度、LED点滅用のLSIをつくってLチカをやってみた 」https://www.youtube.com/watch?v=Ptb5kcw3QtY

Published in: Engineering

Cortex-M0プロセッサから自作して Lチカをやってみた

  1. 1. Interface Device Laboratory, Kanazawa University http://ifdl.jp/ Cortex-M0プロセッサから自作して Lチカをやってみた 秋田純一(金沢大) @akita11
  2. 2. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 自己紹介  本業:(機能つき)イメージセンサ  金沢大(’98~’00・’04~)  公立はこだて未来大(’00~’04)  ’95〜’00:はこだて未来大 計画策定委員  副業:はんだ付け  小4から大須(名古屋の秋葉原)通い  好きなはんだはPb:Sn=60:40  「集積回路を作って使う」研究  ※意外と、こういうバックグラウンドの LSI/回路研究者は少ない?
  3. 3. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 自己紹介(おまけ) mbedでLチカしてみると気づく、 「ちゃんとした回路の計算」の意義
  4. 4. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 自己紹介(おまけ:2) http://deviceplus.jp/people/eagle-eye/
  5. 5. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ LSIの進化の歴史:Mooreの法則 ref: http://www.intel.com/jp/intel/museum/processor/index.htm 傾き:×約1.5/年 G.Mooreが1965年に論文[1]で述べる→C.Meadが「法則」と命名→「予測」→「指針(目標)」へ [1] G.E.Moore, "Cramming more components onto integrated circuits," IEEE Solid-State Circuit Newsletter, Vol.11, No.5, pp.33-35, 1965.
  6. 6. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ ムーアの法則とコンピュータの歴史 DEC VAX(1976) 1MIPS Cray-1 (1978) 100MIPS MIPS:Million Instruction Per Second (1秒間に実行できる命令数) (世界最初のスーパーコンピュータ) 「世界トップの高速化」+「身近なものにも高速化の恩恵」の2つの側面がある 20000MIPS 10MIPS 100MIPS 20MIPS 20000MIPS 109MFLOPS
  7. 7. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ コンピュータ:「CPU」から「原子」に Atmel ATtinyシリーズ (ふりかけマイコン) 出典:ARM Ubiquitous→IoT /IoE / CPS / M2M IoT = Internet of Things IoE = Internet of Everything CPS = Cyber Physical System M2M = Machine to Machine
  8. 8. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「LED点滅(Lチカ)」のパラダイムシフト コスト面:マイコン○(「もったいなくない」) 機能面:マイコン○(多機能・仕様変更も容易) 「集積回路の低価格化」が起こした 「コンピュータ=部品」へのパラダイムシフト マイコン使用 部品点数=1 コスト:100円 発振回路(555) 部品点数=4 コスト:150円 while(1){ a = 1; sleep(1); a = 0; sleep(1); } ※さすがにPCではちょっと・・・
  9. 9. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ ※ウソです 広辞林(第6版)より
  10. 10. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 日本工業標準調査会(JISC) JIS規格一覧 ※ウソです
  11. 11. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 集積回路は「道具」になっているか? 高性能な「汎用品」:道具になった (マイコン、FPGA、オペアンプ、・・・) 「専用品」(カスタムLSI)は?:現状、無理 例:学部1年生にLSIを作らせる? 「高いんだぞ・・・」「失敗したらシャレにならんぞ」 「ツールの使い方が難しいぞ」 「基礎知識(回路理論など)をいっぱい勉強しろ」 「ちゃんと動かすのは難しいぞ」 TATが長い(=チップが届くころには忘れている) 作れない→経験できない→学べない 11
  12. 12. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ LSIは「道具」になっているか?:調査 https://www.youtube.com/watch?v=A188CYfuKQ0 http://www.nicovideo.jp/watch/sm23660093 CMOS 0.18um 5Al 2.5mm x 2.5mm RingOSC x 1001 T-FF (Div)
  13. 13. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ LチカLSI動画:ニコ動でのコメント  こっから?  ニコ技界のTOKIO  ゲートの無駄遣い  ここから!!?  ひでえ、勿体ない使い方wwwww  マジかよ。レジストレベルの設計とか ガチすぎる。  無駄遣い過ぎるだろw  贅沢というかなんというか  え?まじでここからかよ」wwww」」  IC版FusionPCB的なところが現れれば・・・  (FPGAでは)いかんのか?  俺はFPGAで我慢することにする  いや、そこまでは必要ないです  量産品すらFPGA使う時代に専用LSI・・・  アマチュアはFPGAで良いんだよなぁ・・・w
  14. 14. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 集積回路を「つくる」ためのハードル 設計CAD 市販の業務用CAD: 高すぎ、高機能すぎ 製造方法 高すぎ、時間かかりすぎ(1000万円・半年) NDA(設計ルールなどのアクセス制限)が厳しすぎ ユーザ・コミュニティ 参入障壁:現状は専門家ばかり “How”の専門家は多いが、”Why/What”は皆無 例:IoT時代のTrillion Sensor←経済的な方策(設置・運用)は? 例:エナジーハーベストで動く永久センサノード←いずれ故障する ※半導体業界の人気がないのは、 半導体業界の苦境、は原因ではないと思う
  15. 15. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「カスタムIC」ならではのことは? 実世界との界面 センサ、アクチュエータ(MEMS) アナログ回路 超LowPower カスタムマイコン 15
  16. 16. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ LSIを道具にするために: MakeLSI: 情報収集・整理 フリーCADなど(けっこうある) VDEC非依存の環境で 仲間さがし 参加条件:特になし(アツい心) けっこういる(100名程度) プロ・経験者〜SWエンジニア〜主婦 http://ifdl.jp/make_lsi Wgex(浅田先生作)
  17. 17. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/
  18. 18. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ MakeLSI: まずはやってみた 2015年7月~8月&2016年7月~8月 参加: 2015年:8人・9種類@2チップ(高専生~ギーク~元プロ) 2016年:11人・13種類@2チップ(高専生~プロ~主婦) IP蓄積が異様に速い(オープンソース/Github) Linuxのような、オープンソース&分散型IP開発の可能性?
  19. 19. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「道具」としてのLSIを持つこと ふつうの情報工学の研究・・・「あるもの」を使う カメラ、Kinect、マイコン、FPGA・・・ 新技術で、一気にパラダイムが変わることがある 「LSIをつくれる」という道具 =「いまできること」という発想から脱却 「カメラをつくれる」→画素をいじってみる 「容量センサをつくれる」→回路とつなげる Depth画像
  20. 20. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「DIYマイコン」はどうか? ARM Cortex-M0 DesignStartプログラム 誰でも申請OK、評価目的でCortex-M0のHDLソース
  21. 21. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「自作Cortex-M0でLチカ」:概要 0: 23a0 movs r3, #160 ; 0xa0 2: 05db lsls r3, r3, #23 4: 4c0b ldr r4, [pc, #44] 6: 4f0c ldr r7, [pc, #48] 8: 2201 movs r2, #1 a: 601a str r2, [r3, #0] c: 2500 movs r5, #0 e: 6025 str r5, [r4, #0] 10: 2600 movs r6, #0 12: 3601 adds r6, #1 14: 42be cmp r6, r7 16: d1fc bne.n 12 <main+0x12> 18: 3501 adds r5, #1 1a: 2dff cmp r5, #255 ; 0xff 1c: d1f7 bne.n e <main+0xe> 1e: 2200 movs r2, #0 20: 601a str r2, [r3, #0] 22: 25ff movs r5, #255 ; 0xff 24: 2600 movs r6, #0 26: 3601 adds r6, #1 28: 42be cmp r6, r7 2a: d1fc bne.n 26 <main+0x26> 2c: 3d01 subs r5, #1 2e: 2d00 cmp r5, #0 30: d1f8 bne.n 24 <main+0x24> 32: e7e9 b.n 8 <main+0x8> 34: 50000004 38: 0000270f #define GPIO 0x50000000 #define PWMDUTY 0x50000001 #define WAIT 10000 // 3,000,000=0.3s / 256 -> 10,000 void main() { volatile unsigned int w; volatile unsigned int d; while(1){ *(volatile unsigned int *)GPIO = 0x0001; for (d = 0; d < 256; d++){ *(volatile unsigned int *)PWMDUTY = d; for (w = 0; w < WAIT; w++); } *(volatile unsigned int *)GPIO = 0x0000; for (d = 255; d >= 0; d--){ *(volatile unsigned int *)PWMDUTY = d; for (w = 0; w < WAIT; w++); } } } arm-gcc/gas VerilogHDL module imem(clk, addr, data2); input clk; input [31:0] addr; output [31:0] data2; reg [31:0] data, data2; // 0x00000000 - 0x1fffffff : code (0x00000000-0x000000c0: int.vec.) // code memory: little-endian (LSB=1st byte / MSB=2nd byte) wire [31:0] addr2; assign addr2 = {addr[31:2], 2'b00}; always @(addr2) begin case (addr2) 32'h00000000 : data <= 32'h0020000; // insital SP 32'h00000004 : data <= 32'h0000101; // reset (bit[0]=T) 32'h00000100 : data <= {16'h05db,16'h23a0}; 32'h00000104 : data <= {16'h4f0d,16'h4c0c}; 32'h00000108 : data <= {16'h601a,16'h2201}; 32'h0000010c : data <= {16'h6025,16'h2500}; 32'h00000110 : data <= {16'h3601,16'h2600}; 32'h00000114 : data <= {16'hd1fc,16'h42be}; 32'h00000118 : data <= {16'h2dff,16'h3501}; 32'h0000011c : data <= {16'h2200,16'hd1f7}; 32'h00000120 : data <= {16'h25ff,16'h601a}; 32'h00000124 : data <= {16'h2600,16'h6025}; 32'h00000128 : data <= {16'h42be,16'h3601}; 32'h0000012c : data <= {16'h3d01,16'hd1fc}; 32'h00000130 : data <= {16'hd1f7,16'h2d00}; 32'h00000134 : data <= {16'h0000,16'he7e8}; 32'h00000138 : data <= 32'h50000004; 32'h0000013c : data <= 32'd1999; default: data <= 32'h0; endcase end always @(posedge clk) begin data2 <= data; end endmodule 「Lチカ」&「Lほわ」 Thumb命令
  22. 22. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「自作Cortex-M0でLチカ」:メモリマップ
  23. 23. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「Lチカ専用Cortex-M0」:設計してみた CMOS 0.18um 5Al 0.55mm x 0.65mm ※このチップの設計は、東京大学大規模集積システム設計教育研究センターを通し、 日本ケイデンス株式会社、シノプシス株式会社研究センターの協力で行われたものです。 ※このチップの設計で使用したライブラリは、京都大学情報学研究科 田丸・小野寺研究室の 成果によるもので、京都工芸繊維大学 小林和淑教授によりリリースされたものです。 ※このチップの試作は、東京大学大規模集積システム設計教育研究センターを通し、 ローム(株)および凸版印刷(株)の協力で行われたものです。 Synopsys Design Compiler & IC Compiler
  24. 24. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「Lチカ専用Cortex-M0」:製造してみた ※基板はスイッチサイエンスPCBで製造 ※クロック周波数=10MHz
  25. 25. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 「Lチカ専用Cortex-M0」:動作させてみた 詳細はこちら→https://www.youtube.com/watch?v=Ptb5kcw3QtY / niconico: sm30093578
  26. 26. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ DIYマイコン:どう作る?ミニマルファブ 0.5インチウエハ・局所クリーン化・DLP露光 工程ごとの小型装置群 小ロットのLSI製造 加工寸法:1um程度 単TAT(1〜2日) pMOS, nMOS:OK →CMOS回路へ/MEMS 一部装置は既に販売開始 CMOS製造装置群&製造サービスはあと数年? 基板界での「P板.com」や「スイッチサイエンスPCB」に 似た位置づけ http://unit.aist.go.jp/neri/mini-sys/fabsystem/minimalfab.html
  27. 27. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 1um?0.5in?いえいえ、けっこう使えます 1[um]/3Alプロセス・0.5inウエハに Cortex-M0コアが4ショットは入る カスタムなペリフェラル・アナログ・センサ・MEMS の混載も(これが数万円&1週間@1個から) ※0.18[um]/3Alでの配置配線結果の レイアウトデータ(GDS)を1/0.18=28倍に 拡大して作成
  28. 28. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ Cortex-M0 DSの可能性:SWとHWの継続 電子回路→コンピュータの継続性 本来はつながっている知識学問体系 ・・・全体を通して理解している人がいるか?
  29. 29. 2016/12/24 Interface Device Laboratory, Kanazawa University http://ifdl.jp/ 似た現象?:化学〜生物学・医学 化学〜生物学・医学の学問体系 脳・知能 生物(多細胞生物) 細胞 タンパク質・DNA 分子・原子 SWとHWが分断すると・・・? 「ガン化するトランジスタ」:確率的に’0’にならない 論理回路(量子効果) SWからは「ガン」にしか見えない?(対処療法) 超えられない壁?

×