2012-01-01から1年間の記事一覧

おみとろんをそろそろやめようかと思う

いくつかのプロジェクトで bitbucket にソースを置いていて、wiki や problem issue (bts)も使おうと最近いろいろやっている。 web デザインが妙に横長になっているし、文字は大きめで、エディタをみながら作業が出来ない。css を解析したら width:1000px み…

デバッグが進まない

規則正しくないがきまった時間に部屋にいるハメに。 眠いから寝てしまってデバッグできないし、眠くないのにPCがなくでデバッグができない。

Quartus II でのコンパイルをコマンドラインで行う

起動の遅い IDE を開き、何度もウインドウを切り換えてクリックするのは煩わしくなってきます。そこでコマンドラインでやってしまいたい。Altera さんにずばりという文書があります。いろいろ細かく書いてありましたが、これで済みました。 http://www.alter…

68SEC000 の mode pin

EC000, SEC000 には mode というデータバスを幅を切り換える端子があります。L で 8bit, H で 16bit となります。8bit mode は 68008 互換品として使う以外に需要がちょっと感じられません。Vcc を 3.3V にして、 mode には 5V をいれてみると、 3.3V の電圧…

出力に 7405 を使う

いくつか5V対応回路を作ってみましたが、制御信号などで 5V を出力する場合というのは1つの回路であまり多くありません(1,2本ぐらい)。もうちょっと出力が多い場合は 7405 を使うと便利でした。7404 は入力信号を反転するだけのゲートが6つ入ったとても基本…

MFT2012 に行ってきた

今回も楽しかったです。会場が狭くなった→通路が狭くなり、みたいブースでの滞在時間が取れなくなり11時30分ごろにいったものの休憩も含めて全て見れませんでした。 他の人も同じ様なことだと思うので次回は改善されるでしょう。(でも改善となると会場を替え…

電源修理

実験用に使っている電源は Shuttle の Cube 型の PC から外したものを使っています。使い始めたのは今年になってからです。ちょっと大型の機器をつないだところ、動かない(resetがかからない)ので5V出力を計測したところ 4.1V でした。小型の機器では 4.5V …

DE1 に 68000 をつなぎたい

3年ぐらい無駄に時間を過ごしている感がありますが、ノウハウができてきまして、2013年になったら件名の通りにやろうと思います。16/32bit CPU を FPGA に持たせるというのはとても有意義な反面、ビルドに時間がかかるので開発時には不便だと最近思うように…

実機デバッグ停滞中

SD カードを読み出す部分で1週間ぐらい停滞しています。SPI mode で CPU からそのポートにアクセスしたら、8回または16回のシリアルなデータ送受信をするとてもシンプルなデバイス。これの動作が非常に安定しません。ソースも4回作り直したし、たまーーーに…

実機デバッグ

赤だけでる -> colorram のデコード関連で直前に bytemask もいれてテストしなかったのがまずかった 色がおかしい -> colorram のデコードがさらに間違ってた 色がおかしい -> RBG の順番に記載されてた 文字がアップスキャンモードでつぶれる -> dotclock …

ModelSim 向け Makefile

vlog, vcom のようなコンパイルコマンドは単体のプログラムということに気づいたり、 vmake みたいなものは modelsim の transript から起動できなかったりする。vmake はライブラリから makefile を自動生成してくれるらしいが、使ってみたらちゃんと動くよ…

CPU が動き出した

トップモジュールを書いて QuartusII でコンパイル。例によってすぐに動かないので原因究明。今回は SignalTap II を使ってみたんだが、対して難しくなくあっさりと動いた。それで解析したら QFP の1辺まるまるはんだ付けし忘れとか、ほかにもピンがつながっ…

makefile は次回

次はハードのソースに戻る予定なのでお楽しみに。(予定です。)

LSI-C86 講座その3 (副題:21世紀に役立たない知識)

1から今のPC向けの BIOS ROM を作りたいという酔狂な人がいない限り、ほとんど役に立たない。 .data と .bss の順番 ROM image の転送部分を考えた結果、ソフトによって 40000h から a3fffh が ROM だったり RAM だったりするのでそれも全て RAM にすること…

Video 実装

座標系統を修正 Y 座標関連は tilemap の上端のアドレスなり、スプライトの上端の場所を算出すると 0x80 を上端とすると無駄な加減算が発生しないことはなんとなく気づいていた。スキャンライン割り込みでも可視領域上端は 0x80 ベースなのでこれを機会にい…

実装メモ

あんまり進める気はなかったんだが、発注した基板でミスがあって到着が遅れまくっているので仕方なく進む m72 project. DRAM の配置 DRAM はアクセスするために複雑なインタフェースを組まねばならないが、大きい容量を得られる。ここで大きなサイズを使用す…

実装メモ

main CPU の信号を memory map, io map でデコード兼データバスの制御をまとめるモジュールを作成。データバスの制御というのに割り込みのベクタテーブル入力も含まれる。メモ。 NMI, INT, HLDRQ, RESET は正論理 INTAK は負論理 IO/M は 0 が IO, 1 が memo…

LSI-C86 講座その2

startup, vector STARTUP CSEG start:: CLI JMPF to_init dw 0ffffh,0ffffh ;vector table VECTOR ESEG rs 80h db "RAKUTEN EAGLES" TEXT CSEG to_init:: mov ax,4000h mov ss,ax mov sp,4000h mov ax,3800h mov ds,ax call init_## tt: hlt jmp tt CPU rese…

LSI-C86 講座

setup (LSI path)/bin に path を通す (LSI path)/bin/kmmake があるが使う利点がないはずなので普通の make を使う lcc86 コマンドラインオプション -O は -O (最適化有効) か -O0 (最適化無効) の2つだけ -B をつけると // がコメントになる (B 言語の B?)…

video priority

仕様がバラバラでエミュレータのソースコードから読み解くのが一番面倒な仕様、それがレイヤ(planeともいうが、ここらへんは方言がひどくて別の意味を言っていることもある)をどの順番に並べるかという点である。別の用途もあったので m72 を一緒にやってみ…

ROM /RAM イメージモデル

いままでは ROM や RAM のデータは case(address) と大量のラベルによって動かしていたのだが、C++ で書いたようなメモリとして組み込んだことがなかったので対照実験になってないと気づいた。なんでいままで気づかなかったのか。2年間ぐらい不思議にも思っ…

シミュレーションは早いがコンパイルが遅い

C++

コンパイルが通るようにしたところ segmentation fault で落ちた。問題は RAM クラスにある。 RAM といってもラインバッファ向けのアドレスが 15bit x 192 word だったりする。アドレスバスは 8bit あるものの、有効なアドレスは 0 から 0xbf まで。処理の都…

memory class

C++

シミュレーションをするためのクラスを再度作成。address, data の幅を可変にするためにテンプレートを使用する。その他外部との配線の prefix をかえたり、 protected メンバにする。 template <typename datarange, typename addressrange> class SimROM : public sc_module { protected: datarange *c</typename>…

SystemC のビルド

SystemC はハードウェアを C++ で実装したもので、ソフトウェアロジックとの高い親和性が期待できるものと解釈している。SystemC 自体はライブラリでスタティックライブラリとユーザーが書いた C++ のコードをビルドして、実行バイナリからシミュレーション…

Verilator のビルド

http://www.veripool.org/wiki/verilator/Installingダウンロード, 伸張, cd verilator-3.840; ./configure から。 /bin/flex -d -oV3Lexer_pregen.yy.cpp ../verilog.l /bin/perl ../flexfix V3Lexer V3Lexer.yy.cpp g++ -I/usr/local/include -MMD -I. -I.…

古いからの Mingw / Msys のアップデート

以前やりかけた Verilator のインストールをきっちりやりなおす準備。 Mingw 自体は2年に1回ぐらい取り替えているので問題ないのだが、 msys 自体はアップデートした記憶が無くファイルの日付をみたら 2004 年になっていた。一応 mingw の古いやつも部分的に…

68000 series hardware memo その2

BGACK 関連 BR->BG->BGACK を使う3線方式と、 BR->BG を使う2線方式が初代68000から使用可能。単純に3線方式利用不可能となっただけだった。 Bus Request と HALT 共にバスが止められるので DMA コントローラを動かすことが出来る。バスが止まったときに HiZ…

68000 series hardware memo

データシートから読み取れたものを書いておく。68008 系は使わないので省く。正式な仕様は Freescale 社から提供されるデータシートを見ること。負論理表記は面倒なので省略した。(昨夜書いた分はオートベクタとユーザーベクタを間違えていました。恥ずかし…

MAXII CPLD memo

100pin TQFP の EPM240,EPM570 を共用する場合、 37,90pin に GND を接続する。このため未使用ピンは内部プルアップ付き入力端子にすべきである。 # EPM240 EPM570 - 37 IO GNDINT 90 IO GNDINT digikey では EPM240T100 の単価が 522円, EPM570T100 の単価…

8086 コンパイラ

Digital Mars C (不採用) ファイル構成が簡素なのでちょっと気になりつつも、試しに作ったソースのコンパイルは通ったので中身を見ようとと逆アセンブラを呼ぼうとした。逆アセンブラは別途ツールセットを購入せよというビジネスになっていた。コンパイラは…