過 去 ロ グ

目次ページへ戻る。

ORIGINAL CPU


[1693]Re: 4ビットCPU - 投稿者:大西 2006年1月9日(月) 21時51分

> トラ技4月号にCPLDが付録で付きます。それを使ってサクっとCPU
> 作ろうかなぁ・・・。いやいや、男は黙って半田付け。

ALTERAのMAX2ですね。
今回は、これまで(デザインウェーブ誌)と違って、ダウンロード回路付きです。
トラ技の読者層が初心者を含んでいることを意識してのことと思います。
デザインウェーブ誌の3月号にも基板がつきますが、ARM7とのうわさがあります。
明日発売のトラ技で発表されるかな。


[1691]Re: 4ビットCPU - 投稿者:taka 2006年1月9日(月) 20時55分

>思いどうり動くのは当たり前と思ってやっているのですが、それ>が本当に
>使いやすいかということを確認するためにエミュレータを作りま>した。

そうでしたか。では、僕が作るときも(まだまださきのことですが)エミュレータ
作って実験してやってみようと思います。

>たぶん名著だと思います。がんばってください!

はい、ありがとうございます。がんばります。

>いやっ 私のは64ではなくて、4なのでお間違えのないよ
>う・・・。
>それから極端なことを言えば、桁が増えるだけなので64ビット>だろうが
>128ビットだろうが非実用的なCPUなら作れますよね。CP>LDで・・・。

64とか128bitだと4bitのアーキテクチャ自体はほぼそのまま生かせると思いますが、
やはり大きくなった分作るのが大変そうですね。
話はそれますが、僕はWINDOWSがあまり好きではないので、自作のCPUでを
つかったパソコンを作ってそれにOSを作って入れて遊びたいなぁとも思ったります
(そうだいすぎてじっさいにやるのははてしなく先になりますが…
僕は夢はたくさんあるんですが、なかなか知識と時間がなくて何もできないのが
現状です。

>トラ技4月号にCPLDが付録で付きます。それを使ってサク>っとCPU
>作ろうかなぁ・・・。いやいや、男は黙って半田付け。

そういえば今年の4月号もついてくるんですね。僕は2年前のH8マイコンや、去年の
マイコンまだ使わずに残っています。(そのことはCなんて書けなかったし知識もあまり
なかったので。
Cがかけるようになったのはここ2ヶ月くらい前のことなので。


[1689]Re: 4ビットCPU - 投稿者:ryosuke 2006年1月9日(月) 20時50分

> 思いどうり動くのは当たり前と思ってやっているのですが、それが本当に
> 使いやすいかということを確認するためにエミュレータを作りました。

ん〜、思い通りに動くのは当たり前 ← 思い通りに動くハズである、もし
そうならない場合は直す! ・・・・・カンペキな自信があるわけでは
ありません。カンペキな自信があったら回路図を公開しています (^_^;)
エミュレータを作った目的は、あくまで使い勝手を評価するためという
ことです。実際、無くても良いなぁ、と思える命令をいくつか減らしました。
それから効率を少し良くするために転送命令のフラグの保持を変更しました。

トラ技4月号にCPLDが付録で付きます。それを使ってサクっとCPU
作ろうかなぁ・・・。いやいや、男は黙って半田付け。


[1688]Re: 4ビットCPU - 投稿者:ryosuke 2006年1月9日(月) 20時49分

 takaさん、こんにちは。

> すごいですね。アーキテクチャをかんがえたあと、エミュレート
> してから製作をしているんですか。やはり、思いドウリ動くか
> エミュレートしないとわからないからですか?

思いどうり動くのは当たり前と思ってやっているのですが、それが本当に
使いやすいかということを確認するためにエミュレータを作りました。

> >とりあえず動作するだけの4ビットCPUでしたら、TD4と>いうのが
>
> 「CPUの創りかた」という本に載ってるCPUですね。
> 僕はコレを購入しようと思ったいます!!

これは名著だと思います。がんばってください!

> >構想を聞いてください。
> >最終的には、最強の手作り4ビットパソコンを作ります。
> >最強の手作り64ビットパソコンでは、ありません・・・・・。
>
> すごいですね!!ディスプレイ表示とかもできるようにするんですか?

なんらかのディスプレイは付けますよ。スペックは未定です。

> 64ビットパソコン・・・普通のロジックでそれを作るのはほぼ困難
> ですよね?せめてCPLDとか。それでも64bitかなり難しいと思いますが。
> というか、むりかな。

いやっ 私のは64ではなくて、4なのでお間違えのないよう・・・。
それから極端なことを言えば、桁が増えるだけなので64ビットだろうが
128ビットだろうが非実用的なCPUなら作れますよね。CPLDで・・・。


[1684]Re: 4ビットCPU - 投稿者:taka 2006年1月9日(月) 18時7分

>ありがとうございます! 一昨年、ALUの話から急に思い立っ>て
>ALUを2716(EPROM)上に設計・実装してスイッチとLED
>で動かし
>てみまし>た。面白かったです。その勢いでCPUのアーキテク
>チャを
>設計して、エミュレータをC言語で書いてパソコン上で動かし静>的な
>デバッグが完了。エミュレータと、そのCPUのマシン語で書い>たアプリ
>ソフト(ジャンケン)を丸文デモボードを利用した回路でQT4>上に
>移植して動作確認しました。その後、エミュレータではなく74>HCの
>ICを使って設計して、製作に取り掛かったところでパッタリ止>まって
>います。動的デバッグは未実施です。エミュレータで動きました>から、
>いわゆる脳内シミュレーションよりは進んでいます(笑)

すごいですね。アーキテクチャをかんがえたあと、エミュレートしてから製作を
しているんですか。やはり、思いドウリ動くかエミュレートしないとわからない
からですか?
実は、CPU作るやつ、僕も興味あるから本かって勉強しようと思ってます。

>とりあえず動作するだけの4ビットCPUでしたら、TD4と>いうのが

「CPUの創りかた」という本に載ってるCPUですね。
僕はコレを購入しようと思ったいます!!


>構想を聞いてください。
>最終的には、最強の手作り4ビットパソコンを作ります。
>最強の手作り64ビットパソコンでは、ありませ
>ん・・・・・。

すごいですね!!ディスプレイ表示とかもできるようにするんですか?
64ビットパソコン・・・普通のロジックでそれを作るのはほぼ困難ですよね?
せめてCPLDとか。それでも64bitかなり難しいと思いますが。というか、むりかな。


[1682]Re: 4ビットCPU - 投稿者:ryosuke 2006年1月9日(月) 12時16分

> HC08マイコンも、私の中ではある意味一段落しましたので、
> 今年はCPUを作り終えますよ!! 今年の4大目標の1つですからね。

一段落と書きましたが、終わったという意味ではありません。
私の中では 「うまく軌道に乗った」 という意味です。HC08マイコンはまだまだ
これから行きますよ!


[1676]4ビットCPU - 投稿者:ryosuke 2006年1月9日(月) 0時2分

takaさん、こんばんは。

> 管理人さんが、4bitCPUを作っているみたいですが、それも
> とても気になります。CPU作れるなんてすごいなぁと!!

ありがとうございます! 一昨年、ALUの話から急に思い立って
ALUを2716(EPROM)上に設計・実装してスイッチとLEDで動かし
てみました。面白かったです。その勢いでCPUのアーキテクチャを
設計して、エミュレータをC言語で書いてパソコン上で動かし静的な
デバッグが完了。エミュレータと、そのCPUのマシン語で書いたアプリ
ソフト(ジャンケン)を丸文デモボードを利用した回路でQT4上に
移植して動作確認しました。その後、エミュレータではなく74HCの
ICを使って設計して、製作に取り掛かったところでパッタリ止まって
います。動的デバッグは未実施です。エミュレータで動きましたから、
いわゆる脳内シミュレーションよりは進んでいます(笑)

HC08マイコンも、私の中ではある意味一段落しましたので、
今年はCPUを作り終えますよ!! 今年の4大目標の1つですからね。

とりあえず動作するだけの4ビットCPUでしたら、TD4というのが
発表されていますから真似して作ればいいわけですが、私のは、それより
もう少し上等なCPUです。ここはいばって良いのか誰にも分からない
でしょうけど (^^;  (なんせ、回路自体はまだ未発表です。)
ちゃんと動作確認してから発表しますね。

せっかくネットショップを開いたので、うまく行けばCPU&周辺回路
キットとか、またはプリント基板のみ販売とか、なんか夢があっていい
かなぁ、と考えています。

構想を聞いてください。
最終的には、最強の手作り4ビットパソコンを作ります。
最強の手作り64ビットパソコンでは、ありません・・・・・。


[1611]Re: オリジナル CPU のアートワーク - 投稿者:ryosuke 2005年12月22日(木) 7時14分

> ざっくり見積もって、約11万円でした。5日でできちゃうんだなぁ。
> 11万円かぁ、出せないことはないですけど。まだゆっくり考えてみます。

それだけ出す気があるのなら、オートルータ付きのCADを購入という選択も
考えてみないといけませんね。ヒマさえあれば、やりかけのユニバーサル基板
を手配線で作り上げるんだけどなぁ。

2006年には完成させるぞ〜!!


[1610]Re: オリジナル CPU のアートワーク - 投稿者:ryosuke 2005年12月22日(木) 0時9分

> 1年くらい放ったらかしの「オリジナル CPU」を再開します。
>
> と言っても、時間にゆとりがないので知人にプリント配線板の
> アートワークをお願いすることにしました。
> これで少しは前に進みます。

う〜〜〜ん、半分忘れていました。ぜんぜんやっていません。
まだ回路図の清書ができていません (^_^;)

もしかして私にはこのプロジェクト自体、無理?

「そんなことないない」自分で言ってみました。(/_;)

参考までに、P板.com でプリント基板(プリント配線板)の
アートワーク設計をしてもらったらどうなるか、お試し見積もりを
してみました。

 サイズ 200mm × 150mm 両面基板 700ピン 回路図+ネットリスト

ざっくり見積もって、約11万円でした。5日でできちゃうんだなぁ。
11万円かぁ、出せないことはないですけど。まだゆっくり考えてみます。

そうだ! ここの掲示板で「今年の目標」として書くと、かなりの確率で
実現していますから、2006年の目標の1つとして、この4ビット CPU を
完成させる、を入れておきましょう!


[1345]オリジナル CPU のアートワーク - 投稿者:ryosuke 2005年7月24日(日) 15時33分

1年くらい放ったらかしの「オリジナル CPU」を再開します。

と言っても、時間にゆとりがないので知人にプリント配線板の
アートワークをお願いすることにしました。
これで少しは前に進みます。

    私                            知人

回路図を清書する → アートワークを依頼する → 受け取る
    ↓                            ↓
【他のことをする】                     アートワーク作業
    ↓                            ↓
   受け取る ← アートワーク結果をもらう ←  完成
    ↓
  評価を行う
    ↓
  いろいろ


[1007]4bit CPU - 投稿者:ryosuke 2004年12月16日(木) 1時42分

本物のマイクロコントローラ設計者ハウディさんのような方も見えたし、
私もそろそろ 4bit CPU の製作を再開しようかな。

忙しい忙しいと思ってばかりでは何もできません。優先順位としては、
最高が 「家の中のDIY」 次が 「HC908Qいじり」 続いて 「4bit CPU」
といったところでしょうか。仕事はまた別格ですが。

デザインウェーブマガジンの CPLD と FPGA 付録の号をパラパラ読んでみて
解ったことは、私はその前に 74HC??? で CPU を作って動かしたいんだ、と
いうことでした。設計は夏頃にできていて製作も始めているんだから、早く
続きを作らなくては!


[721]オリジナルCPU 最近の状況と今後の方向 - 投稿者:ryosuke 2004年9月10日(金) 1時48分

忙しくてほとんど進んでいません。ハンダ付けも少ししか進んでいません (x_x;)

だんだんと、できあがったらどんなふうに使おうかと想像をするようになって
きました。メインクロック速度はどのくらいだろう。ちゃんと計算したわけでは
ないけど、ROMとRAMが結構遅いからアクセスに300nsくらい見て
おきたいです。すると、メインクロックはせいぜい 1〜2MHzくらいかな?

4ビットでできる範囲の仕事なら、そこそこの速さで動きそうです。
しかしひとたび8ビット以上のデータを扱う仕事をするとなると、めちゃ遅!
でしょうねぇ。まぁ、いいです。高性能を追求するわけではないので。

とは言っても、メモリの速度が足を引っ張るのなら、その要素を減らすことも
考えておきたいです。実はROMという物を外部メモリ空間のほかに、
CPU内部にALUという形で持っているんです。これは無くせるかな??

つまり今のところは 全加算、論理積、排他的論理和、各種シフト8種 という
多彩な(?)演算をROMテーブルで持っているわけですが、これをハードウェア
だけで実現すれば少しはスピード改善の余地が生まれます。
そうしたときに、全加算、論理積、排他的論理和 は簡単に組めます。
しかし各種シフト8種・・・これって無駄が多くない!?
今までは、どうせROMの中にデータで持たせるだけだから、という意味で
便利そうな充実した8種類のシフト・ローテート命令を用意していたわけです。
回路で組むなら本当に必要なものだけに絞りたいです。
そんなわけで、キャリ付き左ローテート、キャリ付き右ローテート、の2つ
だけを残してあとは削除しようと思います。これで、命令数が24から18に
減りました。

ALUをROMで実装した場合の回路設計は変更ありません。今まで使おうと
していた6種類のコードを使わないようにするだけです。

将来的に、ROMを使わないでICで組んだALUも実現しそうです。

さて、回路の方はそんな感じです。ソフトウェアは・・・?

MS−DOSまたはウィンドウズ上で動くアセンブラを用意したいです。
ローダーを作ってメモリ空間の0番地からのROMに置きたいです。
シリアル経由などの方法でプログラムをメモリにロードして、実行させたいです。
そしてセルフアセンブラを作りたいですね!
うまく行けばその上、セルフコンパイラも作りたいです。
夢が大きすぎ??


[644]Re: 手作りCPU製作開始 - 投稿者:ryosuke 2004年8月25日(水) 5時8分

せっかく載せた部品を全部外しました。アドレス12ビットで作ろうと
していましたが、後でアドレス20ビットまで追加できるように部品追加の
ためのスペースを空けて並べ直しました。すごくキツキツになりました。


[642]手作りCPU製作開始 - 投稿者:ryosuke 2004年8月24日(火) 1時36分

本業が思いがけず資料作りに突入したのでストレスが溜まってしまいます (^^;
こんなときこそ趣味の電子工作です。先日アールエスから届いた部品を
使って、今日からオリジナルCPUの製作を開始しました。

と言っても、まだユニバーサル基板上にコネクタとICソケット、それに
パスコン(これで全部です)を取り付けただけです。

この後結構な量の配線をしないといけないので、これはこれでタイヘンです。
まぁ締め切りがないのでマイペースでやっていきます。


[591]オリジナルCPU組み立て実験の部品を発注 - 投稿者:ryosuke 2004年8月19日(木) 0時9分

ついに、アールエスコンポーネンツへオリジナルCPUの組み立て
実験に使う部品を注文しました!

今回はハンダリール台など備品のような物も買ったため3万円近くに
なりました。
アールエスだけではなく、ICやソケットなどは秋月や若松に分けて
注文すればいくらか安く買えることは解っているのですが、つい面倒で
一箇所に注文してしまいます。それに到着が早いというのも嬉しいです。

Digi-Key はパーツの入手性や値段を見たりするのに使っていますが
まだ注文したことはありません。


[586]Re: CPUテストボードの設計 - 投稿者:ryosuke 2004年8月17日(火) 1時52分

> 後になって「このCPUのバスサイクル
> ではダメでした」ということにならないよう、テストボードもしっかり
> 設計しておきます。

嬉しいな〜、パズルが解けました。良かった良かった。

これで紙と鉛筆と消しゴムでできる範囲のことは済ませました。


[573]CPUテストボードの設計 - 投稿者:ryosuke 2004年8月15日(日) 1時32分

CPUの回路設計は終わっているのですが(IC30個になりました)、
テストボードの設計で思いのほかてこずっています。

単純な構成ならできるのは判っているのですが、その次を考えて
どうやったらうまくいくか思案中です。これはCPU外部の話なの
ですが、内部にも少し関係がありました。

内部信号に「/DIROUT」というのがあります。データバスの
方向が出力のときLになる信号です。これをCPU外部に出した方
が周辺回路を構成するとき非常に有利だということが判りました。
その際、論理を反転して「/DIRIN」として出すことにしました。

その反転のために余っていた 74HC00 の1ゲートを使いますので、
余っているゲートは 74HC139 の片方のみとなりました。

さて。いよいよ大詰めだなぁ。後になって「このCPUのバスサイクル
ではダメでした」ということにならないよう、テストボードもしっかり
設計しておきます。

急がば回れ。


[543]Re: RK4CPU(仮称)の回路設計できました - 投稿者:ryosuke 2004年8月11日(水) 15時26分

書き終えてみて、一番ごちゃごちゃしているのが
「DECODE, EXECUTE & WRITE BACK」の部分です。

これはマシン語の割り当てを検討し直すことによってもっとスッキリ
させることも可能です。最大で2個くらいICを減らすことができそう
です。しかし、命令体系をスッキリさせたかったので最初にマシン語の
割り当てを決めておいて、回路設計によってそれを変更しないつもりで
やってきましたからこのままで行きます。(^_^)

つまりソフト的、ハード的な変更なしで等価的に回路をスッキリさせて
回路設計の完了とします。(目標はIC数30個)


[541]RK4CPU(仮称)の回路設計できました - 投稿者:ryosuke 2004年8月11日(水) 13時44分

えがわさんへは「私もなかなか進みません」と書きましたが、
今日は思いがけず非常に進みました!

オリジナル4ビットCPUの回路設計が一通りできました (^_^)v

昨日までの「RESET」「CLOCK」「PC」「PTR & SEL」「ADDRESS BUS」
「INSTRUCTION」「BUS A & DECODE」「BUS B & DECODE」
「ALU & FLAGS」「ACC」「DATA BUS」に続いて

「DECODE, EXECUTE & WRITE BACK」「JUMP FUNCTION」を書いて
全体が完成しました!

今のところ、使用するICは全部で33個となっています。

このままでも作れますが、ゲートの無駄が多いのでもう少し
ブラッシュアップします。

30個くらいにしたいですね!


[540]Re: RK4CPU(仮称)の回路設計 - 投稿者:ryosuke 2004年8月11日(水) 0時59分

今日も少しですが進みました。

おとといまでの「RESET」「CLOCK」「PC」「PTR & SEL」
「ADDRESS BUS」「INSTRUCTION」

に続いて
「BUS A & DECODE」「BUS B & DECODE」「ALU & FLAGS」「ACC」
「DATA BUS」

を書きました。 もうすぐ完成かな!?


[534]RK4CPU(仮称)の回路設計 - 投稿者:ryosuke 2004年8月8日(日) 1時10分

オリジナル4ビットCPU、RK4CPU(仮称)の回路設計を再開
しました。

回路図CADを使ってかっこよく、と考えていましたが慣れないうちは
思考の邪魔になるのでやっぱり紙と鉛筆で書き上げて、それを回路図
CADで清書することにします。
初めてワープロやパソコンで文書をかくときのような感覚ですね。
日本語変換やワープロの操作に気を取られて文章が書けなかったりした
覚えがあります。

あ、そうか、今回は手書きで書き終わったら清書じゃなくて、実際に
モノを組み立てて確認が終わってから(修正したものを)清書することに
なります。

今日は「内部リセット信号生成回路」と「各種内部クロック信号生成回路」
を書きました。


[487]4ビットCPUについてのこだわり - 投稿者:ryosuke 2004年8月1日(日) 22時54分

江川さん、こんにちは。

> 私と、ヒラタさんは(失礼)しっかりおじさんですけど、
> 川野さん、大西さんはオジサン呼ばれはつらいかもね。

いやぁ、私はオジサンと思われるのはむしろ光栄なのでちっとも構いません。
かっこよく年を重ねていきたいと常々思っているんです。

> すいません。私は、4bitオリジナルCPUについてじゃんけんやMPUとの
> 結びつきなどが、まだ理解できてません。そこらへんがもやもやです。

この件については私一人が皆さんと別方向を向いちゃってるので申し訳ない
ような変なかんじです。でもみんな好きなことだけやっていれば幸せなので
こういうペースが良いと思っています。

> オリジナルALU,CPU、川野さんが拘るとこなど、また教えてください。

成り行きは丸文デモボードのページで番外編2として書いた通りなんです。

こだわるところですか、うーん、それはですね。

ソフトウェア技術でハードウェアの貧弱さをカバーするという手段を使い、
74HCシリーズとROMだけの簡単な回路でそこそこ使えるCPUを作って
みたいというわがままと言えます。誰かまねして作ってくれたら嬉しいですし。

こう書いてしまえばバレてしまいますね、実はエミュレータにはそれほど
こだわっていないんです。設計検証、仕様検証のためのツールとして利用して
います。実際、ずいぶん役に立ちました。

そのうち回路ができあがって実機が動くようになったら、パソコン用の
エミュレータなどもきちんと公開するつもりです。誰かが実機をまねして作る
のは結構大変だと思いますがエミュレータなら手軽に動かしてみることができ
ます。


[478]Re: 大西さん、解決おめでとさん。 - 投稿者:えがわ 2004年8月1日(日) 7時3分

> すいません。私は、4bitオリジナルCPUについて
> じゃんけんやMPUとの結びつきなどが、まだ理解できてません。そこらへんが
> もやもやです。いわゆる馬の耳にねんぶつです。
>
> オリジナルALU,CPU、川野さんが拘るとこなど、また教えてください。
>
すいません。解説が番外編にでてました。

●リンクURL : http://3.csx.jp/fulton


[474]Re: QT4 にオリジナル 4bit CPU を移植しました - 投稿者:ryosuke 2004年8月1日(日) 0時27分

ジャンケン判定プログラムのマクロアセンブラ風ニモニックを書いていて
気付いたことがあります。

最初の時点では MOV ACC, MEM と MOV MEM, ACC はどちらもZフラグが
更新されるように作っていました。

最近それでは効率が大変悪いことに気が付いて、フラグは更新されないように
変更したばかりです。

ところが、マクロ機能を使ってもっと複雑な MOV を書くことを考えると、
フラグは更新されてしまうのです。
なぜかと言うと、MOV ACC, MEM と MOV MEM, ACC 以外の演算命令も使う
からです。別に不都合は無いとも言えるのですが、アドレッシングモードに
よってフラグが更新される場合とされない場合があるというのは紛らわしい
です。

そこで、ネイティブなコードである MOV ACC, MEM と MOV MEM, ACC は
それぞれLDA MEM と STA MEM に命令の名称を変更します。表記が
変わるだけです。このことによって、LDA MEM と STA MEM はフラグが
変化しない命令、MOV ○○,○○はフラグが変化する命令と使い分けが明確に
なるのです。バグを生みにくくなります。


[472]Re: QT4 にオリジナル 4bit CPU を移植しました - 投稿者:ryosuke 2004年8月1日(日) 0時13分

> 読みやすくして中間発表みたいな形で載せておきましょう!

まだ最終的な形ではないので、番外編 その2 ということで載せて
おきました。

これを見て何か作ったりする参考にはならないと思いますが、とにかく
何かやっているよ、という意思表示と思っていただければ・・・(^_^;)


[469]Re: QT4 にオリジナル 4bit CPU を移植しました - 投稿者:ryosuke 2004年7月31日(土) 13時24分

デバッグも簡単にできました。
入力ポート値の受け渡しで、反転の部分で失敗していました。
そこを直したらめでたくオリジナル4ビットCPUエミュレータを
QT4に実装した環境で、オリジナル4ビットCPUのためのマシン語
プログラム「ジャンケン判定」が動きました!

読みやすくして中間発表みたいな形で載せておきましょう!
もうちょっと待っててくださいね。
良かった、良かった。


[468]QT4 にオリジナル 4bit CPU を移植しました - 投稿者:ryosuke 2004年7月31日(土) 1時31分

結局、すぐできるという理由で
「 HC908Q にオリジナル 4bit CPU エミュレータを移植」を先に
行いました。

パソコンで動くエミュレータはすでにできていて、その上で動く例の
ジャンケン判定(オリジナルCPU用マシン語コード)も動いて
いましたから新しい MOV 命令用にジャンケンプログラムを変更して、
丸ごと 68HC908QT4 に移植しました。

エミュレータの部分はC言語なので1行も変更しないでそのまま移植
できています。やはり CodeWarrior は優秀でした!

ジャンケンプログラム部分はオリジナル4ビットCPUのための
ネイティブなマシン語なので、もちろん1バイトも変更しないで移植
できています。

変更したのはポート入出力の受け渡し部分だけです。
パソコン用のときはキーボードと画面出力で入出力を行っていました。
今回は「14th」の記事で紹介した QT4 用ジャンケンプログラムの
入出力部分をアレンジして使いました。

全体の移植は割とすんなり行ったのですが、RAMの残りがあと10
バイトくらいしかありません。結構使いましたねぇ。

さぁ、動かないだろうけど動かしてみよう! と電源を入れてみると
あれっ!? おおっ!! ちょっと点灯消灯の条件がおかしいけど、
ちゃんと押しボタンSWを押すと表示ができている!!!

すごいです。この移植性の良さこそC言語の力です。
デバッグはあとにして、今日はもう寝ます。明日は空き瓶回収です。


[467]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月29日(木) 23時24分

パソコンで動くオリジナル4ビットCPUエミュレータのテストがやっと
終わりました。CPUの24個の命令を簡単ながら全てテストしました。
4ビットマイコンのネイティブのコードで262ステップ使いました。
今回のテストで問題は発見されませんでした。
と言うより、すぐわかる問題はこれまでの実験中に出てしまったんですね。
やっておいて良かったです。

さぁ、次はどうしようかな?

この CPU エミュレータを HC908Q に移植するのが先か、それともやっぱり
回路図を書くのが先か?

回路図を書いてもそれだけでは発表できないから製作して動かすところまで
発表はお預けになってしまいます。

HC908Q に移植するのは簡単です。ソフトもハードもすでにできちゃって
いますから!

しかし回路図を書かぬことには前へ進めないなぁ。うーん、明日考えます!


[458]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月29日(木) 1時29分

> > > しました。念のために24個の命令を全部テストすることにします。

本当に少しずつ進んでいます。帰宅が遅いからしょうがないです (x_x;)
今のところ16個の命令をテスト済みです。196ステップ使っています。
残りは各種シフト命令が8個のみです。もうちょっとだ、がんばろう!


[456]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月28日(水) 1時10分

> > しました。念のために24個の命令を全部テストすることにします。

今日も少しだけ進みました。今のところ14個の命令をテスト済みです。
174ステップ使っています。

残りは新しいMOVが2つとシフト関係が8個です。
だんだん「ただやっただけ」みたいなテストになってきましたが、やらない
よりやった方がいいと信じています。本当にまずければこの段階で発見
できる可能性大です!


[451]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月27日(火) 3時10分

自分へのつっこみ

> 他の14個の命令もこの調子でテストをやってしまいます。
> 後で発表するときのネタにもなりますし、コーディング例にもなりますからね!

おいおい、ネタどころか、実際にICで回路を組んだときにテストに使えるでは
ないの (^^; よし明日もガンバロウ。


[449]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月26日(月) 23時10分

> 今日はパソコンで動く4ビットCPUエミュレータを更新しました。
> 簡単なテストプログラム「足し算」と「引き算」が正常に動くことを確認
> しました。念のために24個の命令を全部テストすることにします。

今のところ、10個の命令を色んな条件でテストし終えています。
126ステップ使っています。

他の14個の命令もこの調子でテストをやってしまいます。
後で発表するときのネタにもなりますし、コーディング例にもなりますからね!


[438]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月25日(日) 23時7分

> MOV命令ではCフラグ、Zフラグを変化させないようにしてから
> 上記の足し算プログラムを書き直したところ、25%も命令数が減少
> できました。

引き算プログラムも新しいMOV用に書き直しました。こちらは15%ほど
減少しました。足し算プログラムに比べて全体サイズが少し大きいので、
一箇所の影響が割合的に見て小さかったみたいです。

少しずつでも前進すると自分への言い訳になりますね、ははは。


[435]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月24日(土) 15時16分

> 4ビット幅 + 4ビット幅 = 8ビット幅 と
> 4ビット幅 − 4ビット幅 = 8ビット幅 のプログラムを

ちょっと解りにくかったですね。
1011 + 0111 = 00010010 とか
0010 − 0100 = 11111110 のような
計算をするテストプログラムのことです。


[433]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月24日(土) 14時37分

4ビットCPUの命令をまた少し変更しました。
命令は変えていないのですが、実行結果を変更しました。

4ビット幅 + 4ビット幅 = 8ビット幅 と
4ビット幅 − 4ビット幅 = 8ビット幅 のプログラムを
見直したところ、処理がかなり書きにくくなっていました。

それはMOV命令が他の演算命令と同様にCフラグとZフラグが
変化するようになっていたたためです。つまり演算をしてすぐに転送
をするともう判定ができなくなりますから、演算して判定してジャンプ
した後で転送ということをやらざるを得なかったのです。そうすると、
分岐する前に共通の処理として転送することができないので、分岐先で
それぞれ同じ転送処理を書くはめになっていたのです。

MOV命令ではCフラグ、Zフラグを変化させないようにしてから
上記の足し算プログラムを書き直したところ、25%も命令数が減少
できました。


[430]Re: 縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月24日(土) 0時44分

> 今日はパソコンで動く4ビットCPUエミュレータを更新しました。
> 簡単なテストプログラム「足し算」と「引き算」が正常に動くことを確認
> しました。念のために24個の命令を全部テストすることにします。

今日も少しだけやりました。以前作った「オリジナル4ビットCPU用の
ジャンケン判定プログラム」を、縮小した命令セットで書き直しました。
その結果、5%ほど命令数が増えましたがちゃんと処理できました。
もともと効率の悪いアーキテクチャなので、少しくらい増えてもどうって
ことありません。(強がり)

ハードを簡単にするためにソフトでがんばるからこれで良いのです。


[413]縮小した命令セットのCPUエミュレータ - 投稿者:ryosuke 2004年7月22日(木) 23時46分

> 今日はエミュレータの新しいフローチャートを書きました。
> パソコン上でエミュレータとテストプログラムを動かすのが楽しみです。

今日はパソコンで動く4ビットCPUエミュレータを更新しました。
簡単なテストプログラム「足し算」と「引き算」が正常に動くことを確認
しました。念のために24個の命令を全部テストすることにします。

関心を持ってくれている方も居ると思うのですが、公開はもう少し待って
くださいね。また変わるかもしれないし。


[404]4ビットCPUの命令デコーダ検討 - 投稿者:ryosuke 2004年7月21日(水) 23時48分

命令数が以前から大幅に減りましたので、命令デコーダもいくらか
規模が小さくなります。

命令デコーダの回路設計を行う前に、以前作っていた「パソコン上で
動かす4ビットCPUエミュレータ」を更新しようと思います。
そうしておけばポイントが掴めてくるんです。

今日はエミュレータの新しいフローチャートを書きました。
パソコン上でエミュレータとテストプログラムを動かすのが楽しみです。


[303]Re: オリジナル4ビットCPUの仕様 - 投稿者:ryosuke 2004年6月30日(水) 1時22分

 大西さん、こんにちは。

> ブートストラップでしょう、私ももってます。とりあえず、
> モニタを動かしただけですが。

そうですブートストラップです。さすがですね!
これも再開したいと思っているのですが、他にやりたいことが
多くて優先度が下がっています。

> FDDが最近のDOS/V用とは違うのではなかったでしょうか。
> 一応確保してますが、壊れたら、いや、もう長いことさわって

そうですね。NECキューハチ仕様でした。入手難になることは
判っていたので私もTEACのドライブを確保しています。
まだ壊れてはいないようです。

> これから構築するならスマートメディアあたりのフラッシュメモリ

そうなんですけどねぇ、昔の憧れが今も消えなくて、自力でFDC
を使いこなしてみたいですねぇ。

> 読めるようにするならMS-DOS互換か、なんて勉強もせずに思っています。
> 空想ですね。

空想は楽しいです。夢があります。いつかもしかしたら自分にも・・・?
と思えることは幸せだと感じます。


[300]Re: オリジナル4ビットCPUの仕様 - 投稿者:大西 2004年6月29日(火) 22時19分

こんばんは。今頃はQT4の相手をされている最中でしょうか。

> > 入力と文字表示、ちょっとした入出力くらいです。ファイルは、
> > うーんRAM上にならなんとか (^^; 勉強不足だなぁ。
>
> ファイルと言えば、8086とフロッピーディスクコントローラの
> 実験も途中で中断しちゃってるから、やっぱりその続きでFDCも
> マスターしたいなぁ。

ブートストラップでしょう、私ももってます。とりあえず、モニタを動かしただけですが。
ファイルシステムについては、これ以外にCP/MやDR DOSの製作で資料もあると
思うんですが、FDDが最近のDOS/V用とは違うのではなかったでしょうか。一応確保
してますが、壊れたら、いや、もう長いことさわってないので壊れてるかも知れません。
DOS/V用がすんなり使えるのでしょうか。調べることが多そうです。
それより、これから構築するならスマートメディアあたりのフラッシュメモリにCP/M互換
ファイルシステムが一番簡単か、Windowsからも読めるようにするならMS-DOS互換か、
なんて勉強もせずに思っています。
空想ですね。

●リンクURL : http://www.page.sannet.ne.jp/je3nqy/


[298]Re: オリジナル4ビットCPUの仕様 - 投稿者:ryosuke 2004年6月29日(火) 7時15分

> 入力と文字表示、ちょっとした入出力くらいです。ファイルは、
> うーんRAM上にならなんとか (^^; 勉強不足だなぁ。

ファイルと言えば、8086とフロッピーディスクコントローラの
実験も途中で中断しちゃってるから、やっぱりその続きでFDCも
マスターしたいなぁ。

こんなに大風呂敷を広げて大丈夫でしょうか!?


[295]オリジナル4ビットCPUの命令を減らす - 投稿者:ryosuke 2004年6月29日(火) 0時50分

おととい、

> 昨日はひざを診てもらいに病院に行きました。そのときたっぷり
> 待ち時間があったので手書きで回路設計とタイミング検証をして
> いました。

をやりかけたので続きを考えています。
CPUエミュレータの全部の命令の検証をするより前にこっちを
やり始めて良かったです。というのも、命令を減らすことにした
のです。

今までメモリから読んで演算した結果をまたメモリに書き戻す
命令を持っていたのですが、データバスの管理が複雑になるので
無くすことにしました。

例えば
AND MEM,#IMM という命令を無くして、

MOV ACC,MEM
AND ACC,#IMM
MOV MEM,ACC  というふうに処理することにします。

これで一気に心細くなるほど簡単なCPUになってしまいました。
(いいのか悪いのか ^^;)


[273]Re: オリジナル4ビットCPU On QT/QY - 投稿者:大西 2004年6月23日(水) 21時56分

こんばんは。

ALUのエミュレーションとは思いつきませんでした。
QTQYはI/Oポートの数が少ないですからそれだけで却下扱いでしたね。
私はせいぜい、F9368、F9370(7セグメントデコーダ0〜F)が見かけなくなったので、
これの代役ならできるなあ、と思ったくらいです。
CPLDよりQY4の方が安いですし。

どんなものになるか楽しみです。

●リンクURL : http://www.page.sannet.ne.jp/je3nqy/


[269]オリジナル4ビットCPU On QT/QY - 投稿者:ryosuke 2004年6月22日(火) 7時52分

もうそろそろ書いてしまおうかな。

オリジナル4ビットCPUは、もちろん本当に汎用ロジックICで
CPUを作るのですが、他にも考えていることがあるのです。

それは・・・。
他のワンチップマイコンによるエミュレーションの実現です。

具体的には目の前にあるQT/QYでオリジナル4ビットCPUを
エミュレーションして、オリジナル4ビットCPU用のマシン語で
書かれたプログラムを実行させてみようというものです。

もうすでにパソコンで動くエミュレータは作って実際に動かしている
ことはお話ししました。これがC言語で書いてあって、わりとコンパ
クトなものなのです。こいつをそのまんま、QT/QYに移植すれば
簡単にワンチップマイコンによるエミュレーションができてしまうの
です。

サイズについても最初から考えています。ALU部分はROMの
2716に収まるサイズに仕立ててありますが、これは2KBの
ROMサイズです。ということはROMイメージをそのままQT4/
QY4(どちらも4KB)のROM内部に埋め込むことができます。

その結果QT4/QY4の4KBのROMは2KBのALUテーブル
と1KB程度のエミュレータ部分、それに1KB程度のユーザプログ
ラムが格納できるというわけです。

面白そうでしょう? C言語の移植性の良さは素晴らしいですよね。
アセンブラやVB、エクセルなどではこううまくはいきません。
それに、中途半端なCコンパイラでもすんなりとはいかないでしょう。
2KBの大きさのテーブルをそのまま持つことができる優秀なCコン
パイラ(ワンチップマイコンのアーキテクチャにも関係しますが)が
あればこそです。まだ実際には試していませんが期待しています(笑)

QT/QYにてオリジナルCPUのエミュレーションを行うメリット
としては、まず回路を組むのが簡単ですね。そして忘れてはならない
のが、開発環境の豊富さです。そうです、CodeWarrior を利用して
実際に動かしながら中身の状態を監視しつつデバッグができるのです。
そのためにもユーザモニタモードを使ったデバッグ環境が有用なのです。

素晴らしい計画だと思いませんか?

さあ、書いてしまったからには急いで仕上げなくては・・・!!


[267]Re: オリジナル4ビットCPUのエミュレータ - 投稿者:ryosuke 2004年6月20日(日) 23時15分

> 明日はやっと休日なので4ビットCPUエミュレータの検証をします。

少しだけやりました。命令を減らしてもいいなぁ、という部分があり
ました。例えば JGU という条件付きジャンプ命令があるのです
が、これは「Cフラグ=1かつZフラグ=0」つまり「符号無しで
大きいときにジャンプ」という意味です。
滅多に使わないでしょうねぇ。しかもこのCPUは直接的には減算
命令も比較命令も無いのですから、ある方がちょっと不自然かもしれ
ません。本当は使い道があるのですが、JNC命令やJZ命令を組み
合わせれば実現可能ですから、削除しても良い、と思えてきました。
後で回路設計をするときに邪魔になるようなら2つくらい命令を削除
します。


[265]Re: オリジナル4ビットCPUのエミュレータ - 投稿者:えがわ 2004年6月20日(日) 10時34分

> あとは音声信号処理ですね。フーリエ変換の続きもしっかりやり
> たいし、DSPも使いこなせるようになりたいです。(今DSPの
> 本を注文して届くのを待っていますが7月初旬になりそうです)
> また MC56F8323 もいじりたいですね。
>
> 他にもやりたいことが山積みです。
>

すごい!ハイレベルなテーマでびっくりしてしまいますが、
私も、とにかく時間がほしいのは同感です。
やりたいこと一杯です。日暮れて道通しといいますが、
時間ばかり過ぎていって、あせります。
仕事も趣味も目指すものの違いはありますが、
こういったBBSで他にも同じような?人種(失礼)がいるんだと
思うと、励みになり目標にもなります。
今後もよろしくです。

以前、CAEの導入調査をしている時、倉部誠氏のモード゙解析の入門書を読んで、
はまったことがあります。
結局はDFTまでは何とかでしたが、肝心のFFTは分かりませんでした。
ただし、高校レベルの数学で理解できるようにと解説が丁寧でした。
最近、思い出して購入しようとしましたが、絶版でした。

アセンブラと同じく、フーリエ変換もオイラーの法則からはじめて、寄り道ばかりして、
楽しかったです。(結局、ゴールに着く前に保留マーク。いつもですが、とことんじゃなくて、
適度に沢山が良いかな。)

朝、資源物回収終わって、一息書込みしてたのですが、
今、かーちゃんの、NMIがでました。
家庭サービスに行ってきます。
(もちろん、マニュアルとプリント一杯もって。)
頭のスタックポインタが調子悪く、レジスタも少ないので
もどってから、やる事を紙に書いておこうっと!

●リンクURL : http://3.csx.jp/fulton


[262]Re: オリジナル4ビットCPUのエミュレータ - 投稿者:ryosuke 2004年6月20日(日) 6時54分

江川さん、こんにちは。

> 初心で恥ずかしいのですが、私も応援してます。
> がんばってください。

ありがとうございます。あれもこれもとつい欲張ってしまいますが
自分でまいた種ですのでがんばってみます。そのうち実がなったら
味見してください。

> ALUのことはからきしわかりませんが、のめりこめる
> ものがあるわけですね、きっと。

今考えているCPUは、パズルみたいな感じです。とにかく力技で
というものではありません。そこが楽しいです。

> 考えてみれば、私自身、QT4もこのHPなども、
> 今年の4月までは知らない世界だったわけです。
> この年になっても、毎年、毎年新しい世界をしることができ、
> 科学技術って奥がふかいなと感じます。

確かに・・・。そう言えば、まだマスターできていないことが沢山
あります。PLLもカット&トライの要素が強くて良いならある
程度設計できるのですが、ちゃんとリードラグフィルタの積分計算
やゲインの計算を精密に検討する方法はマスターしていません。
これはここ2〜3年で微積分をようやく覚えてきたので、再挑戦
するつもりです。本当に一生勉強ができて幸せだと思います。

あとは音声信号処理ですね。フーリエ変換の続きもしっかりやり
たいし、DSPも使いこなせるようになりたいです。(今DSPの
本を注文して届くのを待っていますが7月初旬になりそうです)
また MC56F8323 もいじりたいですね。

他にもやりたいことが山積みです。


[258]Re: オリジナル4ビットCPUのエミュレータ - 投稿者:えがわ 2004年6月19日(土) 0時7分

> この件は急がずにやっていきます。誰も待っていないと思うので (^^;
>
> しかし、すごく先の長いプロジェクトになりそうです。いくらでも応用が
> ありますからね! ハード、ソフトともに。

初心で恥ずかしいのですが、私も応援してます。
がんばってください。
ALUのことはからきしわかりませんが、のめりこめる
ものがあるわけですね、きっと。
考えてみれば、私自身、QT4もこのHPなども、
今年の4月までは知らない世界だったわけです。
この年になっても、毎年、毎年新しい世界をしることができ、
科学技術って奥がふかいなと感じます。

●リンクURL : http://3.csx.jp/fulton


[257]Re: オリジナル4ビットCPUのエミュレータ - 投稿者:ryosuke 2004年6月18日(金) 23時24分

大西さん、こんにちは。

> そんなことないですよ。少なくとも私は期待しています。

はっ!! そうでした、ALUの件はヒントを頂いて興味を持った
きっかけが74181に関する大西さんの書き込みでした。


> ただ、私もやってみたいテーマ(やれる能力があるかは別)なので、
> 詳しく読むと自分で考えなくなるかも知れないし、読まないと失敗
> しそうだし、つらいところです。

その気持ち良く分かります。
でも私なら、読まないで自分でチャレンジして、うまく行けば大満足
だし、もしうまく行かなくてもどこが悪いのか考えることこそ楽しみ
の部分じゃないかな、と思います。
改善しようとして、それでもだめなら他の答えを開いて見て、そこから
自分なりの答えを導くのも面白そうです。
とか言いつつ、実は私なら我慢しきれずに読んでしまうかも・・・。

ところで、なぜか、私が作ってみたいのは4ビットなんですよね。
8ビットや16ビット、もしくはそれ以上ではなく、4ビット!!
何なんでしょうか、ロマンを感じます。

急にやる気が出ました。明日はやっと休日なので4ビットCPUエミュレータ
の検証をします。

(908QT/QYのページも少し増やす予定です。)


[256]Re: オリジナル4ビットCPUのエミュレータ - 投稿者:大西 2004年6月18日(金) 22時58分

> この件は急がずにやっていきます。誰も待っていないと思うので (^^;

そんなことないですよ。少なくとも私は期待しています。
ただ、私もやってみたいテーマ(やれる能力があるかは別)なので、
詳しく読むと自分で考えなくなるかも知れないし、読まないと失敗しそうだし、
つらいところです。
とにかく、私がコンピュータを作ってみたいと思った時はまだ4004が話題に
なってなく、TTLで作るしかなかった時代。
その当時のあこがれがよみがえります。

●リンクURL : http://www.page.sannet.ne.jp/je3nqy/


[255]Re: オリジナル4ビットCPUのエミュレータ - 投稿者:ryosuke 2004年6月18日(金) 7時2分

> パソコンで動く「オリジナル4ビットCPU」のエミュレータを
> 作りました。

> 全部の種類の命令を動かして、その後ある程度のアプリケーションが
> 作れる実用性が確認できたら回路設計をする予定です。いつになるか
> わかりませんが・・・。

ちょっと前になりますが興味が先行して「ある程度のアプリケーション
が作れる実用性」の方を先に確認しました。
簡単だけど面白い?アプリを作って動かしましたよ。このくらいのことが
できれば安心です。

それにしても、解っていたこととは言え、単純なことをするだけでも
いくつもの命令を組み合わせないと達成できません。構造化アセンブラや
Cで書けば数10行のところが、今回の4ビットCPUのニモニックで
書くと3〜4ページにもなってしまいました。

また時間を作って「全部の種類の命令を動かす」確認をしておきます。
その次に回路設計ですね。

この件は急がずにやっていきます。誰も待っていないと思うので (^^;

しかし、すごく先の長いプロジェクトになりそうです。いくらでも応用が
ありますからね! ハード、ソフトともに。


[207]オリジナル4ビットCPUのエミュレータ - 投稿者:ryosuke 2004年5月29日(土) 1時43分

オリジナル4ビットALUをテーブルファイルの形で利用して、パソコンで
動く「オリジナル4ビットCPU」のエミュレータを作りました。
試しにマシン語のプログラムを動かして、無事に動くことを確認しました。
(パソコンで4ビット入力と4ビット表示を行っています。)

全部の種類の命令を動かして、その後ある程度のアプリケーションが作れる実用性
が確認できたら回路設計をする予定です。いつになるかわかりませんが・・・。


[164]自家製ALUというのは - 投稿者:ryosuke 2004年5月20日(木) 1時22分

> 意外に、○○さん自身かもしれない。

いえ、○○さん自身ではありませんでした (^_^;)

実は前回の5000番のときも結局あげる相手が現れなかったん
ですよねー。トップページにお知らせを書かないとダメだったかな。
それか、もらってもしょうがないから、かも・・・。(可能性大)

> しかし、問題は自家製ALUとは聞きなれない言葉
> 引っかけがあるかも知れない。

えっ、別に引っ掛けはないです。

ALUはご存知 Arithmetic Logical Unit で、CPUの構成要素です。
近頃の昼休みはALUを作っています。
ちょっと前にここの掲示板でも「CPUの創り方」という本の
話題から 74181 ALU の話になって、組み合わせ回路だけで良くて順次
回路が不要なのだから ROM で作れるね、ということに気付き、私が
ひそかに企画して作ってみたのです。
モノはすでに書き込んでありますし、その前にコンピュータ上で
ALUの動作確認のシミュレーションを行ってすでに出来上がって
います。でもやっぱり動かさないとつまらないので今は通電確認用の
回路を組み立てています。

そのうち発表しようと思っています。


[161]Re: 6000番のお客様に自家製ALUプレゼント - 投稿者:江川光夫 2004年5月19日(水) 21時31分

> 155の書き込みの時、5999でした。
> 次の人だなと思いながら、仕事中でしたので。

となると、☆はかなり絞られてきたな。明智君。
年齢は30代後半、外資系商社マンという線も出てきた。
偶然訪れるということはありえないから、意思を持って
訪問し、いまだ所在がつかめない。
以外に、○○さん自身かもしれない。
しかし、問題は自家製ALUとは聞きなれない言葉
引っかけがあるかも知れない。
むむむ。

今、仕事サボってBBSみてます。6000番の人、おめでとう。


[160]Re: 6000番のお客様に自家製ALUプレゼント - 投稿者:大西 2004年5月19日(水) 20時48分

155の書き込みの時、5999でした。
次の人だなと思いながら、仕事中でしたので。

●リンクURL : http://www.page.sannet.ne.jp/je3nqy/


[159]Re: 6000番のお客様に自家製ALUプレゼント - 投稿者:えがわ 2004年5月19日(水) 12時35分

朝6:00に5997番、10時に6005番くらいでしたから、
出掛け前か朝一番の情報確認の人ですね。
それだけ、情報が注目されてるってことで、すごいっす。
QT4erは必ずきますからね。
後は、モトローラが頑張れば、GOODですね。

(私んちは1995年からhpやってますが、変化もないし、
 訪問者もめったありません。いわゆる作りっぱなし。)
せっかくの昼休みですが、ボード触る状況じゃないので、
また、夜試してみます。


[157]Re: 6000番のお客様に自家製ALUプレゼント - 投稿者:ryosuke 2004年5月19日(水) 10時55分

> 6000番目のお客様に、自家製オリジナル4ビットALUをプレゼントします。(^_^)

6000番を超えていますね!! みなさんありがとうございます。

6000番だった方はここに書くか私宛のメールでお知らせください。
粗品を送らせていただきます。


[147]6000番のお客様に自家製ALUプレゼント - 投稿者:ryosuke 2004年5月18日(火) 13時50分

6000番目のお客様に、自家製オリジナル4ビットALUをプレゼントします。(^_^)


[109]Re: オリジナルALUの仕様 - 投稿者:ryosuke 2004年5月1日(土) 9時6分

ふむふむ。下位桁からのキャリ、ボロを考えると、反転を行うときにそれを
含めた方が効率がいい場合がありますね。
XOR も CI、CO を有効にしましょう。

それから、[108] で書いた表はアルファベット順に並べたのですが、
命令の種類で並べた方がまとまりが良さそうなので順番を変えます。

RK4ALU Instruction

00 ADC BusA, BusB CI 有効 CO 有効 Z 有効 算術和命令
01 AND BusA, BusB CI 無効 CO = 0 Z 有効 論理積命令
10 XOR BusA, BusB CI 有効 CO 有効 Z 有効 排他的論理和命令
11 SFT BusA, BusB CI 有効 CO 有効 Z 有効 拡張シフト命令

入力 Code(2) BusA(4) BusB(4) CI(1) 計11本
出力 Result(4) CO(1) Z(1) 計6本
ROM 2716 で実装可能。

こういうことにしましょう!


[108]オリジナルALUの仕様 - 投稿者:ryosuke 2004年5月1日(土) 2時41分

こんなオリジナルALUを考えてみました。

RK4ALU Instruction

00 ADC BusA, BusB CI 有効 CO 有効 Z 有効
01 AND BusA, BusB CI 無効 CO = 0 Z 有効
10 SFT BusA, BusB CI 有効 CO 有効 Z 有効
11 XOR BusA, BusB CI 無効 CO = 0 Z 有効

入力 Code(2) BusA(4) BusB(4) CI(1) 計11本
出力 Result(4) CO(1) Z(1) 計6本
ROM 2716 で実装可能。

ALUだけ作ってみようかな?

SFT は、BusA の4ビットを1ビットだけ右または左に、
論理的または算術的に、シフトまたはローテートします。
あるいは、4ビットの並びを逆にします。それらの方法を
BusB で指定します。

XOR ○○, #1111b とすれば反転ができます。
反転して AND してまた反転すれば OR ができます。
また、反転して1足せば2の補数ができますから、それを
ADC すれば SBC ができます。

そうやって節約したら結構小さくできました。


[107]TTL の 74181 ALU について - 投稿者:ryosuke 2004年4月29日(木) 23時51分

[104]からの流れで 74181 ALU について興味を持ったので少し調べてみました。
今回は '88最新TTL IC規格表 CQ出版社 を参考にしました。
小さな本の見開き2ページだけですが、良く読むとすごい情報が引き出せます。

● 機能表が2つあり、Active Low Data と Active High Data と書かれて
います。それぞれ16段に分けてあり、各段は S3-S0、M、Cn によって3つの
結果が書かれています。ここで疑問に思うことは、Active Low Data と Active
High Data の両方で使えるらしいけど、どうやって切り替えるのか??
良く読むと分かりますが、実はこれ、使う人間の頭を切り替えるというのが
正解のようです。負論理データとして扱うなら左の表、正論理データとして
扱うなら右の表を見よ、ということのようです。

●「A=B」という出力ピンは、オープンコレクタであること。ちょっと意外
でした。「74181 は ROM の 27128 で代用できる」と書いたあとだけに、
やはり良く調べないで書くと失敗するなぁ、と感じました。注意が必要ですね。

●「P or X」、「G or Y」という出力ピンがありますが、用途が判りません。
これらに関しては真理値表もないから、どんな動きをするかも解りません。
ただ、74181 を使用する回路例などを検索していくつか見ても、これらの端子は
使用されていませんでした。74181 コンパチ品を作って売るわけでもないですから
使わない出力なら考えなくても(無くても)問題ないと思います。

●「A=B」についてもう少し考えてみました。実は、上記の規格表にはIC内部
の等価回路(参考回路)が載っているものもあるのです。74181 も載っていま
した。これを見れば先ほどの「P or X」、「G or Y」の挙動も分かるのですが
仕様を理解しないでゲートの組み合わせを読んで真似るのは、盗用という行為に
近いと思うのでやめておきます(まぁ必要に迫られれば読み解くのですが)。
それより気になったのは「A=B」の回路構成です。
4ビットの出力 F3〜F0 を単純に AND したものになっています。これって、
負論理と正論理の対象性が失われていないかな??? で、良く良く考えてみま
したよ。そうしたら解りました、使い方が!!
まず機能ですが、「A=B」という端子名からして A3〜A0入力と B3〜B0 入力が
一致したことを示すと考えてよいでしょう。ただし、他の信号のように Active
Low であるか Active High であるかは使う人間の考え方次第というわけには
いかないはずです。回路が AND と OR で非対象ですから。
結果から書きましょう。
負論理の場合は、F = A XOR B という命令を使います。A と B が4本とも同じで
あれば4本の F は論理0すなわちHになりますから「A=B」がHになります。
A と B のそれぞれ4本のうちいずれかが異なる場合は4本の F のうちいずれか
が論理1すなわちLになりますから「A=B」がLですね。
次に正論理の場合は、F = NOT ( A XOR B ) という命令を使います。
NOT があるので、A と B が4本とも同じであれば4本の F は論理1すなわちH
になりますから「A=B」がHになります。NOT があるので、A と B のそれぞれ4本
のうちいずれかが異なる場合は4本の F のうちいずれかが論理0すなわちLになり
ますから「A=B」がLですね。おや、さっきと同じ結果です。
実は、Active Low の F = A XOR B という命令と Active High の
F = NOT ( A XOR B ) という命令は、S3:S2:S1:S0:M がどちらもHLLHHと
なっていて、実は同じマシン語ということになります。このような使い方であれば
CMP などというニモニックをあてるのがふさわしいですね。
そして使い方は、負論理、正論理にかかわらずその命令を実行したときに「A=B」
出力がHであれば「Aの4ビットとBの4ビットは一致している」ということが
わかります。
ここで思い出すことがあります。「A=B」はオープンコレクタでしたね。
ということは 74181 をN個使って 4×NビットALUにしているとき、それぞれ
の「A=B」をワイヤードOR接続できるということです。すごいですねぇ!
良く考えられています。


[106]Re: 「CPUの創り方」の成り立ち - 投稿者:大西 2004年4月28日(水) 23時35分

こんばんは。

> TBN とは何でしょうか?

これは月刊アスキーがまだバリバリのハード専門誌だった頃の一コーナーです。
そこのイラストが少女漫画風の線の細い目の大きいキャラだったんです。
http://www.kt.rim.or.jp/~chatarou/update/update.html
このページの中程に出てきますので、この人もあのころアスキーを読んでおられたのだなと思ったしだいです。

「「少女マンガ+回路図」は日本のコンピューター界の由緒正しき伝統です」

上のページにこんな事書いてあるんですが、コンピューター界ではなく、アスキー系マイコン界ではないかと思います。
つまり、この流れの正統派という意味です。

> トラ技というと、カンガルーのイラストを描く方でしょうか?

たぶんそのカンガルーもそうだと思います。今月号にも神崎さんの名前が出てますから。
私が神崎さんの名前を知ったのはもう10年以上前です。
歳を感じます。

> なーーるほど、ALUでしたか!!

そうなんです。181はALUなんです。

http://www.st.rim.or.jp/~nkomatsu/premicro/HITAC10.html

昔は多用されてたようなんですが、これだけではシフトができないんです。
だからおっしゃってるとおり、ROMを利用した方が実用的(少しは)でしょうね。トラ技スペシャル48号がこのやり方です。
ただ、理屈は納得できたのですが、この号のようにコンパイラでなぜALUのビットマップデータができるのかが理解できてないです。

> 簡単そうです。あ、ちょっとやってみたいかも。

ぜひ、ぜひ。(笑)

> いやぁ、なかなか本題に入れません。普通のマイコンでできることしか
> 試せていないので評価らしいことができていないのです。ぼちぼちやって
> いこうと思います。

などとおっしゃってますが、printstr には感心しました。Cのライブラリは使わないものまでリンクされるので巨大になってしまうことは知ってましたので、「おまえもか」で終わってました。
使わせて頂きます。

> 私はようやく花粉症が治まりました。毎年2月〜4月は眠くてだるくて
> ぼーっとして、うだーーっとして、タイヘンです。
川野さんは花粉症でしたか。私は今年は花粉症は出なかったんですが、この時期、乾燥ががいけないようで、鼻炎になります。
鼻血も出やすくなり踏んだり蹴ったりです。
やはり体力が落ちたんでしょうかねえ

●リンクURL : http://www.page.sannet.ne.jp/je3nqy/


[105]Re: 「CPUの創り方」の成り立ち - 投稿者:ryosuke 2004年4月28日(水) 10時59分

大西さん、こんにちは。

> 実は買ってます。(笑)

あの本、タイトルもそうですけど書店に置いてあると目立ちますよね。

> つらつらと読んでいるうちに、TBNの文字が。
> とすれば、やはりあの挿絵はむしろ正統派と言うべきか。(笑)

TBN とは何でしょうか?
何の正統派なのかよくわかりませんが (^^;;

> I/OのDAN氏とか、トラ技の神崎真理子さん、てのもありますが。

トラ技というと、カンガルーのイラストを描く方でしょうか?

> そうと分かれば、氏は自作は止めたようなことかかれていますが、
> 復帰して欲しいと思いました。

マイコンピュータ、今で言うパソコンの自作をやめたという書き方
でしたねぇ。市販品を凌ぐパソコンを個人が設計するのは無理がある、
ということなんでしょうね。
それにたぶん、やりたいことはやってしまったから今からまたやろう
とは思わないのではないかな、と想像しました。

> すでに影響を受けています。74LS181を8個も買い込んじゃいました。
> これだけではどうしようもないんですが。

181とは耳慣れない型番です。気になって自宅のTTL−IC規格表’88
を開いてみると、なーーるほど、ALUでしたか!!

確かに面白そうですが、アキュムレータやプログラムカウンタを含めた
制御回路が大変そうかな、と思いました。私はきっと作らないと思うので
ちょっと手が出ませんねぇ・・・。

ところで74181は入力が14本、出力が8本となっています。
そして内部処理は組み合わせ回路のみで順次回路が入っていませんから、
出力が8ビット幅データ、入力が2の14乗つまり16KBのROMで
代用できますね。27128なら沢山手持ちがあります。
74181が24ピン、27128は28ピンですから、そう悪くない
かもしれません。機能を変更したりして独自のALUを創る(笑)のも
簡単そうです。あ、ちょっとやってみたいかも。

> 例の方もだいぶ進んでおられるようですね。なるほどと読ませて頂いてます。

いやぁ、なかなか本題に入れません。普通のマイコンでできることしか
試せていないので評価らしいことができていないのです。ぼちぼちやって
いこうと思います。

> 私もそろそろライントレーサーあたりをと思うのですが

これはナイトロンですね? 多くの方が関心を持ちそうなテーマですね!
楽しみにしています。がんばってください。

> 現在、鼻炎に悩まされ、やる気が出てきません。
> こんな時は情報収集と部品収集と決め込んでおります。

私はようやく花粉症が治まりました。毎年2月〜4月は眠くてだるくて
ぼーっとして、うだーーっとして、タイヘンです。

今から良い季節になるので楽しみです。


[104]Re: 「CPUの創り方」の成り立ち - 投稿者:大西 2004年4月26日(月) 23時11分

実は買ってます。(笑)

なるほど、こんな人だったんですね。
つらつらと読んでいるうちに、TBNの文字が。
とすれば、やはりあの挿絵はむしろ正統派と言うべきか。(笑)
I/OのDAN氏とか、トラ技の神崎真理子さん、てのもありますが。

そうと分かれば、氏は自作は止めたようなことかかれていますが、
復帰して欲しいと思いました。

で、すでに影響を受けています。74LS181を8個も買い込んじゃいました。
これだけではどうしようもないんですが。
ちなみに、隣町のパーツやさんに74LS181は10個ほどまだあります。

例の方もだいぶ進んでおられるようですね。なるほどと読ませて頂いてます。
私もそろそろライントレーサーあたりをと思うのですが、現在、鼻炎に悩まされ、
やる気が出てきません。
こんな時は情報収集と部品収集と決め込んでおります。

ではまた。

●リンクURL : http://www.page.sannet.ne.jp/je3nqy/


[103]「CPUの創り方」の成り立ち - 投稿者:ryosuke 2004年4月26日(月) 9時11分

「CPUの創り方」という、一風変わった本があります。
私は書店で立ち読みしただけで買わなかったのですが、4ビットマイコン
をTTLで作る具体例を、イラストを交えながら紹介していく本です。
全編こんな感じのイラストで・・・。

http://book.mycom.co.jp/book/4-8399-0986-5/4-8399-0986-5.shtml

どんな企画の本なんだ、いったい・・・、と不思議だったのですが
偶然にもなぞが解けました!

本文の記事と、イラストを描いた人は同じ人だったんですね (^_^;;

Google で色々検索しているうちに、こんな人の

http://www.kt.rim.or.jp/~chatarou/index.html

こんなページを発見したのです。

http://www.kt.rim.or.jp/~chatarou/update/68/jisaku2.htm

プロフィールを見ると ペンネーム 須田 都(同人誌)と書かれていて
一方書籍の方は 著者:渡波 郁 となっているのですが、これは同一人物
と判断しました。ええ、勝手にそう決め付けました (^o^;)

実は私が検索で見つけたのは、こんなページなんです。

http://www.kt.rim.or.jp/~chatarou/update/68/jisaku.html

書いてある文章から見て、同じ人だと思いました。

学生時代に MC68000 10MHz を使って回路設計から自作してしまったというお話。
世の中はまだ PC-9801E が出たての頃、FM-7 とか PC-8801 が全盛の時代に
そんなことをやっていたそうです。すごいなぁ・・・。

なるほどなー、どんな狙いで企画した本なのか、本文を書いた人はあれで
良かったのだろうか、などなど不思議だったけど「ある人の世界」を書籍化した
んだなぁ、なんて一人で納得したりして。

もし違っていたら本の著者の方、ホームページ作者の方、ごめんなさい!

(やっぱり今度買ってみよう)


目次ページへ戻る。