åŠ ç®—å™¨ã‚’ä½œã‚‹ === ## モãƒãƒ™ãƒ¼ã‚·ãƒ§ãƒ³ ã¨ã¦ã‚‚ã¨ã¦ã‚‚åŠ ç®—å™¨ã‚’ä½œã‚ŠãŸããªã£ãŸã€‚ * リレー回路 * 汎用ãƒã‚¸ãƒƒã‚¯IC * トランジスタ回路 ã§ã®å®Ÿè£…ã™ã‚‹ã€‚ ## リレー回路ã§ã®å®Ÿè£… ### リレーã®äºˆå‚™çŸ¥è˜ ã¾ãšã€ãƒªãƒ¬ãƒ¼ã¯ [ã“ã“](https://www.fa.omron.co.jp/guide/faq/detail/faq02056.html) ã§è¿°ã¹ã‚‰ã‚Œã¦ã„るよã†ã«è¤‡æ•°ã®æŽ¥ç‚¹ã‚’æŒã¤ã€‚ リレーã¯ã‚る入力をå—ã‘付ã‘ã‚‹ã¨ã€ONã«ãªã‚‹ã‚¹ã‚¤ãƒƒãƒ(a接点)ã¨OFFã«ãªã‚‹ã‚¹ã‚¤ãƒƒãƒ(b)ãŒçµ„ã¿åˆã‚ã•れã¦ã„る。ã“れらをé©åˆ‡ã«çµ„ã¿åˆã‚ã›ã‚‹ã“ã¨ã§ã€ã•ã¾ã–ã¾ãªè«–ç†æ¼”算を行ã†ã“ã¨ãŒå¯èƒ½ã§ã‚る。 ### 回路図 çµè«–ã‹ã‚‰ã„ã†ã¨æ¬¡ã®ã‚ˆã†ãªãƒªãƒ¬ãƒ¼å›žè·¯ã‚’組ã‚ã°ã‚ˆã„。 +ã¨ãªã£ã¦ã„ã‚‹ã¨ã“ã‚ã«ã¯ãƒªãƒ¬ãƒ¼ã®èµ·å‹•電圧を入れる。 GNDã¨ONã¯ã‚³ã‚¤ãƒ«éƒ¨åˆ†ã®13,14番ピンã§ã‚る。 下å´ãŒå…¥åŠ›ã®X, Y, C, 上å´ãŒå‡ºåŠ›ã®Sumã¨Carryã§ã‚る。  ### ãƒªãƒ¬ãƒ¼å…¨è‡ªå‹•åŠ ç®—å™¨ã®å‹•ä½œåŽŸç† æ¬¡ã«ã€ãれãžã‚Œã®å…¥åŠ›çŠ¶æ…‹ã§ã€å„リレーãŒã©ã®ã‚ˆã†ã«å‹•作ã—ã€ã©ã®ã‚ˆã†ã«å‡ºåŠ›ã•れるã®ã‹ã‚’示ã™ã€‚ オレンジãŒã‚³ã‚¤ãƒ«ã«ã‚ˆã£ã¦å‹•作ã—ãŸéƒ¨åˆ†ã€èµ¤ã¯é›»åœ§ãŒä¼æ¬ã—ã¦ã„る旨を示ã—ã¦ã„る。 * X=0, y=0, C=0 çµæžœã¯Sum = 0, Carry = 0  * X=1, y=0, C=0 çµæžœã¯Sum = 1, Carry = 0  * X=0, y=1, C=0 çµæžœã¯Sum = 1, Carry = 0  * X=1, y=1, C=0 çµæžœã¯Sum = 0, Carry = 1  * X=0, y=0, C=1 çµæžœã¯Sum = 1, Carry = 0  * X=1, y=0, C=1 çµæžœã¯Sum = 0, Carry = 1  * X=0, y=1, C=1 çµæžœã¯Sum = 0, Carry = 1  * X=1, y=1, C=1 çµæžœã¯Sum = 1, Carry = 1  上記ã®ã‚ˆã†ã«ã€é©åˆ‡ã«åŠ ç®—å™¨ã®æ¼”ç®—ã¨ãªã‚‹ã“ã¨ãŒã‚ã‹ã‚‹ã€‚ ## 調é”ã¨å®Ÿè£… リレーを実際ã«åˆ©ç”¨ã™ã‚‹éš›ã¯ã€ã‚½ã‚±ãƒƒãƒˆã‚’用ã„ãŸå®Ÿè£…ã¨ã—ãŸã€‚ ラッピングワイヤãŒä½¿ãˆã‚Œã°ãれã§ã‚‚ã„ã„ãŒã€å®Ÿéš›å•題ã€ã‚½ã‚±ãƒƒãƒˆãŒç¾å®Ÿçš„ã ã‚ã†ã€‚ ãŸã ã€ã“ã®ãƒªãƒ¬ãƒ¼ã¨ã‚½ã‚±ãƒƒãƒˆã®çµ„ã¿åˆã‚ã›ã¯æã‚ã—ã高ã„。新å“定価ã§è³¼å…¥ã—よã†ã¨ã™ã‚‹ã¨ã€2c接点ã®çµ„ã¿åˆã‚ã›ã§1500 + 1000 = 2500円ä½ã™ã‚‹ã€‚ã“れã¯ç¾å®Ÿçš„ã§ãªã„ã®ã§ã€ [FA機器](https://fakiki.com/) ãªã©ã§å®‰ã„2MYç‰ãŒå‡ºã‚‹ã®ã‚’å¾…ã¡è³¼å…¥ã—ãŸã€‚ å°šã€ã‚½ã‚±ãƒƒãƒˆã¯åŸºæœ¬çš„ã«M3ã®ãã˜ã§ã¨ã¾ã‚‹ã€‚ãŸã ã—ã€è‹¥å¹²é•·ã•ãŒã‚ã‚‹ã®ã§ã‚ã¾ã‚ŠçŸã„ã¨åˆã‚ãªã„ã‹ã‚‚。  ã“ã®çµæžœã€4c接点をå«ã‚€20å¼·ã®ãƒªãƒ¬ãƒ¼ã‚’手ã«å…¥ã‚ŒãŸã€‚ ã”覧ã®é€šã‚Šã€ãƒªãƒ¬ãƒ¼ã®ç«¯åã¯Y端åã‚’ãã˜æ¢ã‚ã™ã‚‹ã“ã¨ã«ãªã£ã¦ã„る。 é…膳部æã¨ã—ã¦ã¯ä»¥ä¸‹ã®ã‚‚ã®ã‚’用æ„ã—ãŸã€‚ * VSF 0.75mm より線(çµå±€20m分ãらã„) * ニãƒãƒ• 1.25Y-3.5 (200個) * スリーブ(TIC 1.25) (200個)  基本的ã«é›»å·¥ã‚«ãƒƒã‚¿ãƒ¼ã§å‘ã„ã¦ã€åœ§ç€ã™ã‚‹ã€‚ã®ç¹°ã‚Šè¿”ã—。  ã‚ã¨ã¯ãƒ‰ãƒªãƒ«ãªã‚ŠM3ã®ãã˜ã‚„ナットã§ã“ã†ã‚„ã£ã¦è©°ã‚ã¦ã„ã。  基本的ã«å¿ 実ã«ä½œã£ã¦ã„ã‘ã°ã‚ã¾ã‚Šå•題ã¯ãªã„。  ã»ã¼å®Œæˆã—ãŸã¨ã“ã‚。 å³ä¸Šã®ã»ã†ã®ç«¯åã¯ãƒªãƒ¬ãƒ¼å›žè·¯å®Ÿé¨“用ã®ç«¯å盤。ã“ã†ã„ã†ã®ãŒã‚ã‚‹ã¨ãƒˆãƒ©ãƒ–ãƒ«ã‚·ãƒ¥ãƒ¼ãƒˆãŒæ¥½ã€‚  最終的ã«ã“ã®ã‚ˆã†ã«çµ„ã¿è¾¼ã¾ã‚ŒãŸã€‚ # 汎用ãƒã‚¸ãƒƒã‚¯IC ã§ã®æ¼”ç®—å›žè·¯ã®æ¤œè¨Ž ã¾ãšã€NAND回路を使ã£ã¦åŠåŠ ç®—æ¼”ç®—ãŒä»¥ä¸‹ã®ã‚ˆã†ã«ã‚らã‚ã•れるã“ã¨ã¯ã‚ˆã知られã¦ã„る。NAã¯NANDを示ã™ã€‚å°šã€ä¸‹ã®å…¥åŠ›ã‚’ã‚·ãƒ§ãƒ¼ãƒˆã•ã›ã¦ã„ã‚‹NANDã¯NOTã®ç‰ä¾¡å›žè·¯ã§ã‚る。  ã“ã®ã‚ˆã†ãªå›³ã‹ã‚‰è©±ã‚’進ã‚ã‚‹éš›ã¯ã€è‡ªåˆ†ã®èª¤è§£ã‚’å«ã‚ã¦ã€æœ¬å½“ã«ã“ã®è«–ç†å¼ãŒæ£ã—ã„ã‹ç¢ºèªã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã¨æ€ã†ã€‚ [ä»–ã®è¨˜äº‹](http://www.hogetan.net/note/memo/iverilog.html) ã«ã¦ã€Velilogã‚’ã¤ã‹ã£ã¦ã€ãƒã‚¸ãƒƒã‚¯ã®æ£ã—ã•を検証ã™ã‚‹è¨˜äº‹ã‚’書ã„ãŸã€‚  ``` module HA( input x, y, output r, c); logic r11, r21, r22, r23, r31; assign r11 = x ~& y; assign r21 = x ~& r11; assign r22 = y ~& r11; assign c = r11 ~& r11; assign r = r21 ~& r22; endmodule module test; logic a, b, c, s; HA adder(.x(a), .y(b), .r(s), .c(c)); initial begin $dumpfile("test.vcd"); $dumpvars(0, test); $display("A B C S"); $monitor("%b %b %b %b", a, b, c, s); a = 0; b = 0; #1; a = 0; b = 1; #1; a = 1; b = 0; #1; a = 1; b = 1; #1; $finish; end endmodule ``` ã®ã‚ˆã†ãªãƒã‚¸ãƒƒã‚¯ã‹ã‚‰ä¸Šè¨˜ã®ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ãƒˆã‚’å°Žãã ã›ã‚‹ã€‚ ãœã²è«–ç†å¼æ¤œè¨¼ã«ã¯ä½¿ã†ã¹ãã ã¨æ€ã†ã€‚ ## åŠåŠ ç®—å™¨ã‚’ä½¿ã£ãŸå…¨åŠ ç®—å™¨ã®å®Ÿè£… åŠåŠ ç®—å™¨ãŒã‚る環境下ã«ãŠã„ã¦å…¨åŠ ç®—å™¨ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ç¤ºã•れる。 åŠåŠ ç®—å™¨ã¯HAã¨ã—ã¦è¡¨ç¾ã—ãŸã€‚  ## 汎用ãƒã‚¸ãƒƒã‚¯ICを使ã£ãŸå®Ÿè£… ã“れをåŠåŠ ç®—å™¨ã®NANDã«æ›¸ã下ã—ã¦ãã®ã¾ã¾å®Ÿè£…ã™ã‚‹ã¨  ã¨ãªã‚‹ã€‚図ã®ä¸‹ãŒNANDã ã‘ã«æ›¸ã下ã—ãŸã‚‚ã®ã 。 ã“ã®å›žè·¯ã¯ç„¡ç†ã«NANDã ã‘ã§æ¼”ç®—ã—よã†ã¨ã—ã¦ã„ã‚‹ãŒã€ORã‚’ã‚‚ã†ã¡ã‚‡ã£ã¨çœåŠ›åŒ–ã—ã¦ã‚‚ã„ã„ã‹ã‚‚ã—れãªã„。 ICã¨ã—ã¦ã¯ç§‹æœˆé›»åã§è³¼å…¥ã§ãã‚‹74HC00を使ã£ãŸã€‚ ã“ã‚Œã¯æ¯”較的低é¡ã«ã§ãる。ã›ã„ãœã„ã€IC代20円 x 4程度ã 。 ## トランジスタを使ã£ãŸNANDã®å®Ÿè£… 汎用ãƒã‚¸ãƒƒã‚¯ICã§å›žè·¯ãŒçµ„ã‚ã‚‹ã®ã ã‹ã‚‰ã€ã‚‚ã¡ã‚ã‚“ã€åŠå°Žä½“ã®ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ¼ãƒˆã§å›žè·¯ãŒçµ„ã‚る。 トランジスタç‰(FETãªã©)を使ã£ãŸNANDã®å®Ÿè£…ã¯ã„ãã¤ã‹ã‚ã‚‹ãŒã€ã¾ãšæ€ã„ã¤ãã®ãŒã€  ã¨ã„ã†å›žè·¯ã§ã€Trを用ã„ãŸæ•™ç§‘書的ãªANDã¨NOTを組ã¿åˆã‚ã›ãŸã ã‘ã®ç°¡å˜ãªå›žè·¯ã§ã‚る。 ã“れã¯ä¸€è¦‹ã—ã¦å‹•ãよã†ã«è¦‹ãˆã‚‹ã€‚ãŸã ã€é’ã„ç·šã®å ´åˆã®ã‚ˆã†ã«ã€X=0, Y=0ã®ã¨ã—ã¦GNDã«è½ã¨ã—ãŸå ´åˆã€æœŸå¾…ã¨ã—ã¦ã¯Trã®ãƒ™ãƒ¼ã‚¹ã«å¯¾ã™ã‚‹å…¥åŠ›ã¯0vã¨ãªã‚Šã€çµæžœã€outã«VccãŒå°åŠ ã•れã¦ã»ã—ã„ãŒã€ãƒ€ã‚¤ã‚ªãƒ¼ãƒ‰ã®VFãŒã‚ã‚‹ãŸã‚ã€ã“ã®å›žè·¯ã§ã¯Trã®ãƒ™ãƒ¼ã‚¹ã«ã¯0.8V以上(VF次第)ãŒã‹ã‹ã‚Šã€ãƒˆãƒ©ãƒ³ã‚¸ã‚¹ã‚¿ãŒONã—ã¦ã—ã¾ã†ã€‚ ã“ã†ãªã‚‹ã¨ã€ã‚³ãƒ¬ã‚¯ã‚¿å´ã‹ã‚‰ã®5Vã¯ã™ã¹ã¦æŽ¥åœ°ã•れã¦ã—ã¾ã„ã€outã«å‡ºåŠ›ãŒãªã„。 ãã“ã§ã€  ã®ã‚ˆã†ã«ã€Trã®æ‰‹å‰ã«(通常ã¯Inå´ã¨åŒã˜)ダイオードを入れã¦ã‚„る。ã“れをレベルシフトダイオードã¨å‘¼ã¶ã€‚ã“ã†ãªã‚‹ã¨ã€VF分è½ã¡ã‚‹ã®ã§ã€Trã¯ã‚ã§ãŸã0Vã¨ãªã‚Šã€OFF状態ã«ãªã£ã¦ã€NANDã¨ã—ã¦ä½œç”¨ã™ã‚‹ã€‚ 実際ã«ãƒ–レッドボードã«è©¦ä½œã—ãŸã€‚  ## トランジスタを使ã£ãŸåŠåŠ ç®—å™¨ã®å®Ÿè£… ã“れらを組ã¿åˆã‚ã›ã¦ä¸Šè¨˜ã®ã‚ˆã†ã«NANDã¨ã—ã¦çµ„ã¿åˆã‚ã›ã¦ã‚„る。 ã—ã‹ã—ã€ãªã‹ãªã‹ä¸€ç™ºã§å®Ÿè£…ã™ã‚‹ã®ã¯æ€–ã„ã®ã§ã€è©¦ã—ã«ã€LTSpiceã‚’ã¤ã‹ã£ã¦ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ãƒˆã—ã¦ã¿ãŸçµæžœãŒä»¥ä¸‹ã€‚ やり方ã¯ã„ãã¤ã‹ã‚ã‚‹ã‚“ã ã‚ã†ã‘ã©ã€ã‚ˆãã‚ã‹ã‚‰ãªã‹ã£ãŸã®ã§ã€é›»æºã‚’複数種類用æ„ã—ã¦ãƒ‘ルス波形をã¯ãシミュレーションã«ã—ãŸã€‚  実際ã«ã†ã¾ãã„ããã†ãªã®ã§ã€ãƒ¦ãƒ‹ãƒãƒ¼ã‚µãƒ«åŸºç›¤ã«å®Ÿè£…ã—ãŸã€‚   å®¶ã«ã‚ã£ãŸãƒ¦ãƒ‹ãƒãƒ¼ã‚µãƒ«åŸºç›¤ã«å…¨åŠ ç®—å™¨ã‚’å®Ÿè£…ã§ããªã„ã‹ãªã¨ãƒˆãƒ©ã‚¤ã‚’åˆã‚ã¦ã‚‚ã®ã™ã”ã„è©°ã‚込んã らã¤ã‚‰ã„ã“ã¨ã«ãªã£ã¦ã—ã¾ã£ãŸã€‚一応ã€å„ãƒã‚¸ãƒƒã‚¯ã‹5x5ã®ãƒ”ンã«ã¯åŽã¾ã£ã¦ã„る。