四畳半テクノポリス

コロナのストレスで気が狂い、D進した院生

技術

Rocket chipのCPUログを逆アセンブルする

研究でRocketChipというRISC-Vの割とデファクトスタンダードな実装のCPUをいじっているのですが、エラーがよくわからなくて苦しんでいます。 https://github.com/chipsalliance/rocket-chip このRocketChipは実行するとvcdの他にCPUの実行した命令や、その時…

C API for PYNQ : C++でDMAする

C API for PYNQでDMAをする PYNQでFPGAとOS上のアプリケーション通信間で高速に通信するにはDMAが有効です。前回の記事でも述べたようにPythonのスレッド間通信は低速なのでFPGA側からDMAで送られてきたデータを処理しようとすると速度不足になりやすいです…

C API for PYNQ : C++でPYNQを使いたかった

PYNQの問題点 FPGAのDMA転送やレジスタ書き込みがPythonから行えるPYNQは通常のFPGA開発と比較してデバッグが非常に容易になり、プログラミングも楽になる素晴らしい環境です。めんどくさいレジスタの設定も自動でやってくれます。 ただ、Pythonというのは諸…

ubuntu20.04へのお引越し、いろいろインストールしてみた

ubuntu20.04がリリースされたので引っ越したときに、普段使っているソフトウェアが動いたかどうかについてのメモです。 CUDA 無理だと思っていましたが普通に動きました。というかデフォルトでCUDAのドライバが入っていたのでちょっとびっくりしました。 sud…

Blawnのシンタックスハイライト(コードの色分け)を作った

なぜ作ったか 開成高校の中3の子がBlawnという言語を作ったことが最近話題になりましたね。僕も仕様が理解出来ているわけではないのですが、テンプレートで動的型付けの軽量スクリプト言語風に書けて、かつコンパイル時に型安全が保たれる等、なかなか良い言…

RISC-Vの設計図

Day4:Risc-Vの設計図 RISC-Vの設計図 最近色々うだうだしていて進捗があまりないのですが、とりあえずRISC-Vの設計図が出来上がったので中間報告します。印刷してはマーカーでバスをなぞってデバッグする作業で割と面倒臭かったですが、二回やってなんとか動…

「mbedとFPGAで作った AIチップもどき」 mbed祭り 2019@春の名古屋 発表スライド

mbed祭りで発表に使用したスライドを公開します。 発表で登場したニューラルネットワークのリポジトリです。 github.com LPC1768で動作するニューラルネットワークのデモコードです。 os.mbed.com

Risc-Vの即値表現

Day3:Risc-Vの即値表現 risc-vの命令を逆アセンブラを作成しているときに即値のビット列が並び変わっていてややこしく感じたのでそれについて便所の落書き程度に書く。 Risc-Vには即値命令のデータを用いる命令がいくつか存在するが、その中でも S-type,B-ty…

Risc-Vの逆アセンブラ

Day2:Risc-Vの逆アセンブラ ビッグエンディアン リトルエンディアン 命令コード: 使い方 フォームに32bit(16進数で8桁)の命令を入力します。 Disassembleボタンを押します。 枠内にニモニックが表示されます。 なぜ逆アセンブラを作ったのか 最初はRisc-V…

BINファイル-HEXファイル 変換ツール

mbedコンパイラのbinファイルをHexファイルに変換します 下のボタンを押しbinファイルを読み込むことでIntelHEXに変換され出力される。 ダウンロード LPC1114は安価で高性能で入門者にとても良いマイコンであり、mbedコンパイラを使って開発を行うことが出来…

大学のサークルで技術書典2に出展してきました。

技術書典 コミックマーケットでは以前より技術島と呼ばれる一角があって、技術関連の同人誌が並べらており、メイカーズムーブメント以降その数は増えているものと思われる。しかし、世界最大級の同人誌即売会であるコミックマーケット、技術書の占める割合は…

CUDAによるジュリア集合の描画

定期試験も来週に迫っているわけであるが、凝りもせず、こんな駄文をインターネットに垂れ流している。というのも、今週にもあった定期試験を対した努力もせず、パス出来たからである。人間というのは、楽な課題だけ選んで挑戦していれば、努力せずともそこ…

Kicadで設計したデータのスイッチサイエンスPCBへの発注

昨日も記事に書いたが、後先を考えず、だらだらと続けていた基板設計が終わったのでスイッチサイエンスPCBに発注をかけた。現実逃避として打ち込んでいたマイクロマウスも、現状できる作業は大体終わってしまった。 せっかく基板を発注したので、その手順を…

マイクロマウスの基板再修正

テストが迫っておりそんな本来余裕は無いのであるが、現実逃避の癖で以前は全くやる気の失っていたマイクロマウスの設計になぜか打ち込んでいる。あまり良い事ではないが進捗は産めてしまっている。自分のこういうところは本当に嫌になってしまう、何かを成…

マイクロマウスの基板修正

なんとなくツイッターを見ていたら、某大の学生が、ロボットを作らない「ロボットを作っていた人」が本当に嫌いだと言っていた。なんとなく自分に当てはまってしまう気がする。僕は現在はサークルで水中ロボットを作っているし、マイクロマウスは完成してい…

Scratchの仕様について

Scratchという教育や学習様に作られたプログラミング言語がある。かく言う私も中学生の頃、Scratchが日本に来たあたりにScratchでコンピュータプログラミングを学んだ、言うなればScratch第一世代である。 以前よりタートルだのRobo Designerだの色々な教育…

ガバガバなステレオマッチングとか

どうも、とり天です。研究室配属ですが、なんか温室とかやってる研究室でセンサネットワークを使ったようなIoTな事ができそうなので良かったなと思います。 最近ですがアルバイトに行き詰っています、というのはOpenCVを使ったアルバイトをしているのですが…

スタックマシンの実装方法

状態遷移図 今回は前回作成したスタックマシン型のCPUをVerilogで実装する。そのためにCPUの動作を表した状態遷移図の作成を行った。 状態遷移図の各状態での動作は以下に示す通りである。 命令フェッチ 命令デコード データフェッチ データ操作命令実行 演…

Verilogによるスタックマシンの作成

スタックマシン スタックマシンとはデータをスタックと呼ばれるデータ構造を用いた計算機である。スタックと呼ばれるLastInFirstOutのデータ構造Push(データの挿入)、Pop(データの取り出し)、演算、という3種類の操作を行うことで計算を行う。このあたり…