k0b0's record.

Computer Engineering, Arts and Books

宣言されていない信号線を幅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 〜…

macOSのFinderからRaspberry Pi にアクセスしてファイルを共有する

macOSからRaspberryPiのディレクトリにアクセスする macOSのFinderからRaspberryPiにアクセスしファイルを共有できるようにする。 1, avahi-deamonのインストール 以下のコマンドにてRaspberryPiにavahi-deamonをインストールする。 $ sudo apt-get install …

openOCDのエラー:LIBUSB_ERROR_ACCESS(on macOS)

LIBUSB_ERROR_ACCESS HiFive1を動作させるためにopenOCDをインストールして色々と試してたら”LIBUSB_ERROR_ACCESS”と怒られた。 原因 調べてみると、macOSではOpenOCDはlibFTDIパッケージ(Homebrewでインストールする)を必要とし、アップル提供のFTDIドラ…

RISC-VのArduino互換ボード「HiFive1」を試す

HiFive1を試す。 前から欲しいと思っていたHiFive1を購入したので動かしてみる。 [HiFive1の仕様] SiFive Freedom E310 RISC-V 32bit, RV32IMAC RV32I Base Integer Instruction Set, Version 2.0 “M” Standard Extension for Integer Multiplication and Di…

SSHのエラー : WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

SSHを使ったらなんか接続エラーがでた sshでリモートに接続しようとしたら以下のエラーがでた。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@…

macOSでRaspberry PiにOS(Raspbian)をインストールする

macOSでRaspberry PiにOSをインストールする この頃、Raspberry Piで色々やらかしてOSを破損させることが多いので、インストール方法をメモしておく。 1, SDカードの場所を確認する diskutilコマンドでSDカードの場所を確認する。 $ diskutil list (SDカー…

macOSでRaspberryPiで使用済みのSDカードをフォーマットする

ラズパイで使用済みのSDカードをフォーマットする 1, SDカードを確認する diskutilコマンドより、SDカードの識別子を確認する。 $ diskutil list /dev/disk2がSDカードであることを確認。 2, SDカードをフォーマットする 以下のコマンドでSDカードをフォーマ…

Raspberry Pi 2 model b + 外付けHDDでファイルサーバー(MacとWindowsに対応した)を構築してみる(on MacOS)

Raspberry Piと外付けHDDでファイルサーバーを構築してみる 環境 リモート:Raspberry Pi2 Model B(Raspbian GNU/Linux 9.6 (stretch))+ 外付けHDD(250GB) ホスト:macOS Mojave version 10.14.2 1, 外付けHDDをexFAT形式でフォーマットする 外付けHDDをWi…

Raspberry Pi2 model bのダイナミックオーバークロッキングを試す[@追記 2018/12/28]

ダイナミックオーバークロッキングを試す Raspberry Piをオーバークロッキングできないものかと調べてみたら、ダイナミックオーバークロッキングができることが分かったので、試してみた。 設定方法 1, raspi-configより設定画面を開く $ sudo raspi-config …

RISC-Vサミット 議事録

2018/12/3 〜 6まで行われたRISC-Vサミットの資料(スライド・ビデオ)が公開された。 詳細は以下のリンクにて。 riscv.org

pyenvでpythonのインストールに失敗する。[@ MacOS Mojave]

なぜか、pyenvでpythonのインストールがうまくいかない。 pyenvでpython3.7.0のインストールを試みた。 pyenv install 3.7.0以下のエラーで怒られてしまった。 180930202414.28657/Python-3.7.0/Lib/ensurepip/__init__.py", line 27, in _run_pip import pi…