k0b0's record.

Computer Engineering, Arts and Books

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

イノベーターズ 天才、ハッカー、ギークがおりなすデジタル革命史

計算機科学の歴史本 アインシュタインやスティーブ・ジョブズ、レオナルド・ダ・ヴィンチの伝記で有名なウォルター・アイザックソン氏の計算機科学の歴史についての本。書店で見かけて思わず手にとってみた。 本書は1843年にコンピュータの概念を夢見たエイ…

macOS 10.15 Catalinaの標準シェルはzshだった。

macOSをバージョンアップしてターミナルを立ち上げたら、以下のようなエラーが発生。 The default interactive shell is now zsh. To update your account to use zsh, ... どうやらmacOS 10.15 Catalinaではzshが標準シェルのようだ。 というわけで、[シス…

ヘネパタ 第6版(RISC-V)

ヘネパタの第6版(日本語版)が発売したみたい。内容はMIPSからRISC-Vに一新しているようだ。 以下はざっくりとした内容だ(領域特化アーキテクチャとかウェアハウススケールコンピューティングに関しての事が新たな追記されているようだ)。 そして、このヘ…

NIOS IIを使った回路構成を変更した後でEclipseで再コンパイルした際に生じるエラー

NIOSIIを使ったシステムでは回路構成を変更した後で、Eclipseで再コンパイルが必要となるのだが、 普通にコンパイルすると以下のエラーが出る。 エラーメッセージ Generate the BSP to update the Makefile, and then build again. To generate from Eclipse…

Nios II Software Build Tools for Eclipseが立ち上がらない。

Quartus Prime 18.1でNIOS II Software Build Tools for Eclipseが立ち上がらない。以下のサイトによると、この問題は解決に至ってないみたい。。。 sites.google.com Quartus Prime上からではなく、コマンドラインからなら起動できるようだ。 そのためには…

NiosIIがコンパイルできない。:Error: Can't generate netlist output files because the file ${FINE_NAME} is an OpenCore Plus time-limited file

Error: Can't generate netlist output files because the file ${FINE_NAME} is an OpenCore Plus time-limited file Quartus PrimeでNiosIIのソースコードをコンパイルしたら、こんなエラーが出た。 解決方法 [Assignments] -> [Settings] -> [EDA Tool Se…

いろいろと史上最大なCerebrasの巨大チップ 「Wafer Scale Engine」

Cerebrasが色々と史上最大な巨大チップを開発したみたい。 以下はざっくりとした仕様で、どれも、史上最大らしい。 トランジスタ:1.2兆個 面積:4万6225平方mm オンチップメモリ:18GB プロセッサコア:40万個 ちなみに、プロセッサコアは深層学習向けに最…

Chiselの本

Chisel(Constructing hardware in a Scala embedded language)の入門書"Digital Design with Chiselが無料で公開されているみたい。 (amazonからパーパーパックを購入することも可能。)詳細は下記のリンクにて。github.com msyksphinz.hatenablog.com

Error (16031): Current Internal Configuration mode does not support memory initialization or ROM. Select Internal Configuration mode with ERAM.

メモリの初期化をサポートできない。 Quartus Primeでメモリ(初期値あり)のコードをコンパイルしたら怒られた。 どうやら、初期値を設定する場合はメモリの内部構成モードを変更しないといけないみたい。 解決策 メニューバーの[Assignments] => [Device] …

Raspberry Pi 4

Raspberry Pi FoundationがRaspberry Pi 4を発表したみたい。[主な仕様] ・プロセッサ:4コアARM Cortex A72(1.5GHz)(性能が先代の3倍以上) ・HDMIポート:type-Aからtype-Dの2ポートになり、60fpsの4K動画に対応。 ・価格:RAMの容量により異なり、1GB…

宣言されていない信号線を幅1bitの信号線(wire)として暗黙的に解釈することを回避する

VerilogHDLの言語仕様ではwireとして宣言されていない信号線は暗黙的に1bitのwireとして解釈される。一応、Warningとしてコンパイラが教えてくれるのだが、これが原因で何時間もデバッグする羽目になる事もある。。。 そこで、"`default_nettype wire”宣言と…

Quartus PrimeでMIF(Memory Initialization File)を作成してみる。

MIF(Memory Initialization File)を作成してみる。 Quartus PrimeのIPcatalogから生成するメモリモジュールに初期値を設定するために、MIFを作成する。[File] -> [New]よりMemory Initialization Fileを選択する。 メモリのワード数とワード幅を設定する。 …

Verilog/SystemVerilogでincludeするヘッダファイルの競合を回避する。

複数のモジュール内で同じヘッダファイルをincludeしたSystemVerilog記述をQuartus Primeでコンパイルしたところ、競合が生じてエラーが出た。 ModelSimでの論理シミュレーション時は大丈夫だったのだが、Quartus Primeのコンパイラは厳しいようである。 と…

Quartus Prime のIP Catalogを使ってシングルポートRAM(同期書き込み、非同期読み出し)を生成してみる。@2019/06/14 追記

IP Catalogを使ってシングルポートRAM(同期書き込み、非同期読み出し)を生成してみる。 FPGA(MAX10)でそこそこの容量のメモリを使いたいのだが、レジスタで構成すると、LEをかなり消費する。というわけで、IP Catalogで用意されている、シングルポートRAM(同…

VerilogHDLでクロック分周器を記述してみる

クロック分周器 FPGAボードを使って、7セグメントLEDに結果を表示させたい時がある。 けれど、MHz〜GHzで動作されたんでは確認できない。 という事で、クロック分周器(50MHz -> 1Hz)を2つ記述してみる。 (どちらの記述も分周するのだけれど、出力される波…

SystemVerilogでチャタリング除去回路を記述してみる。

チャタリング除去回路を記述してみる FPGAボードを使っているとスイッチをよく使う。 スイッチを押すとノイズ(チャタリング)が起こる。 というわけで、色々と参考にしてチャタリング除去回路を書いたのでメモしておく。 チャタリング除去回路(chatter.sv…

SystemVrilogでレジスタファイルを記述してみる

SystemVerilogで2種類のレジスタファイル(アドレス長:2ビット、レジスタ数:4、データ長:32ビット)を記述してみる。 レジスタファイル(レジスタとMUXで構成) 個人的にはこちらの記述の方が読みやすいかなぁ。 (レジスタ数が増えると、コードの行数が長くな…

我が青春のPentium D

家を掃除していたら、懐かしい物が出てきた。Pentium Dである。 子供の頃に初めて自作PCを作った時に購入したマイクロプロセッサである。第二世代のPentium D(65nmCMOS)で3.4GHzは出ていたと思う(当時は早い早いと感激していたっけなぁ)。あれから、何年も…

NVIDIAのシングルボードコンピュータ:Jetson Nano

ポケットサイズのGPU NvidiaのJetson Nanoが色々とすごい。[仕様] GPU:128 Core NVIDIA Maxwellアーキテクチャ CPU:Quad Core ARM A57Cortex-A57 MPCore グラフィックス:エンコード4K@30fps(H.264/H.265、デコード4K@60fps(H.264/H.265) カメラ:MIPI …

ミンスキー博士の脳の探索

私たちはどのようにして考えて、学んでいくのか?そして、そのような思考するマシンを作ることはできるのか? 人工知能の父として有名なMITのマービン・ミンスキー先生の著作。 「思考素」と「思考路」という抽象的な概念を用いて、脳や常識、感情、自己につ…

Virtualboxのエラー: VBoxClient (seamless): failed to start. Stage: Setting guest IRQ filter mas Error: VERR_INTERNAL_ERROR

VBoxClient (seamless): failed to start. Stage: Setting guest IRQ filter mas Error: VERR_INTERNAL_ERROR Virtualbox上のUbuntu16.04でこんなエラーに出くわした。それで、ホスト・ゲスト間でファイルの移動やコピペが出来なくなった。 色々調べて見た結…

我が家にDE10-Liteがやってきた。

我が家にDE10-Liteがやってきた。 Terasic社のFPGAボード「DE10-Lite」を購入した。 MAX10のロジックセル数は50000だから、色々と作りこめそうな予感。 (それにしてもFPGA、昔に比べてロジックセル数はかなり増えたし、安くなったなぁ。) 仕様 FPGA デバイ…

Latexにソースコードを載せる

Latexにソースコードを載せる Latexにソースコードを載せる必要があったので、そのサンプルコードを忘れないようにメモしておく。 サンプルコード \documentclass[a4j]{jarticle} \usepackage{listings} % ソースコードを表示するための設定 \lstset{ basics…

パターソン先生の最終講義:How to be a bad Professor

2016年にUCBで行われたパターソン先生の最終講義の動画を見つけた。 以下にリンクを貼っておく。それにしても、パターソン先生、ユニークかつパワフルだなぁ。View from the Top: Professor David Patterson - YouTube

linux foundationのCHIPS Allianceプロジェクト

オープンソースチップ開発が加速する Linux Foundationがハードウェア設計のソースコードをホスト・キュレーションするCHIPS Allianceプロジェクトを立ち上げたみたい。初期のCHIPS Alliance支援企業はEsperanto Technologies、Google、SiFive、およびWester…

$readmemb()でメモリの初期値を設定する

$readmemb()でメモリの初期値を設定する $readmemb()の書式 2進数で初期値を設定する場合は$readmemb()を使い、16進数で初期値を設定する場合は$readmemh()を使う($readmemhの書式は$readmemb()と同じである)。 $readmemb("初期値が記述されたファイルの絶…

Western DigitalのRISC-VコアSweRV

Western DigitalのRISC-VコアSweRV(SystemVerilog記述)が公開されたみたい ざっくりとした仕様は以下の通り Apache 2.0ライセンス 32bit 9ステージパイプライン(スーパースカラ) 最大4.9 CoreMarks / Mhz 監視システムのリアルタイム分析などのデータ集約…

SystemVerilogで符号拡張を記述してみる

符号拡張 ビット連結を利用して、符号拡張を記述してみる。 ビット連結の記述例 // 8bitのデータを二つ連結して16bitの信号に代入 data_y[15:0] = {data_x_upper[7:0], data_x_lower[7:0]}; 符号拡張の記述例 // 上位8bitを符号拡張して16bitの信号に代入 da…

HiFIve1のシリアルコンソールに接続できない

シリアルコンソールに接続できない HiFive1にCoremarkをアップロードして性能計測をしようと思ったのだが、シリアルコンソールにうまく接続できず結果を確認することができない。 下記のコンパイルおよびアップロードまではうまくいくのだが。。。 $ make so…

gitのエラー:fatal: remote origin already exists.

fatal: remote origin already exists. "git remote add origin 〜"を実行したら"fatal: remote origin already exists."と怒られた。 とりあえず、「既にoriginは存在しますよ。」と言われたので、以下のようにoriginを消して再度"git remote add origin 〜…