k0b0's record.

Computer Engineering, Arts and Books

2018-01-01から1ヶ月間の記事一覧

SystemVerilogの”暗黙のポート宣言”を試してみる

暗黙のポート宣言 従来のVerilogHDLではテストベンチの記述などでモジュールを呼び出す際にポート名と信号名を指定する必要がある。これはポート数が多くなるほど、その記述量は多くなり冗長となる。SystemVerilogではこのような冗長な記述を取り除くために”…

アップルを創った怪物―もうひとりの創業者 ウォズニアック自伝

アップルは二人のスティーブによって創業された。一人はスティーブ・ジョブズ、もう一人は本書の主役であるスティーブ・ウォズニアック。アップルはジョブズがセールスをウォズニアックがエンジニアリングを担当して生まれたという話は有名だ。 ウォズニアッ…

Swift入門 クラス

クラス Swiftのクラスの基本的な使い方をメモ。 クラス定義の書式 class クラス名 { プロパティ・メソッドを記述 } クラス生成(インスタンス化)の書式 クラス名(引数1, 引数2, ...) クラス定義の記述例 以下にクラスの記述例Language_profクラスを示す。…

Swift入門 関数

関数(メソッド) 関数の定義する際には関数名、引数、引数の型、処理内容等を記述する。場合によってはラベルを記述してプログラムの可読性を高めることもできる。 関数定義の書式 func 関数名 (<ラベル> 引数1:引数1の型, <ラベル> 引数2 : 引数2の型…

Swift入門 制御と繰り返し(for, if, switch)

制御と繰り返し Swiftの制御と繰り返し構文についてメモ。 繰り返し文 (for, for-in) forによる繰り返しの記述例 // forによる指定した値(0〜9)まで繰り返すループ for i in 0...9{ print("Loop:\(i)") } // for-inよる配列listの値を取り出すループ var i…

Swift入門 式と型(変数、定数、配列、辞書) [追記@2018/01/29]

変数・定数の宣言 Swiftの変数・定数の取り扱いについてメモ。 変数の書式 var 変数 = 値 var 変数 :型 = 値 変数宣言の例 var x = 10 var y : Int = 20 定数の書式 let 変数 = 値 let 変数 :型 = 値 定数宣言の例 let max = 1000 let pi : Float = 3.14 デ…

SystemVerilogの構造体(struct)を使ってみる

SystemVerilogの構造体 SystemVerilogの構造体を試してみた。(Cなどと同様に構造体(struct)とは別に共用体(union)もあるみたい。)構造体を宣言する際にpacked形式かunpacked形式か定義する(デフォルトはunpacked形式)。構造体をpacked形式で定義する…

Never Let Me Go (邦訳:わたしを離さないで(カズオ・イシグロ(著)))

ある本を本棚から見つけて去年のノーベル文学賞のことを思い出した。去年、カズオ・イシグロ氏がノーベル文学賞を受賞した。イシグロ氏の本は一冊しか読んだことがなかったけれども、その一冊の印象が強烈だったので氏の名前は覚えてた。その強烈な一冊とい…

思考する機械コンピュータ(W. Daniel Hillis(著))

「コンピュータと言えば機械式の歯車やパラメトロンや真空管やシリコンチップで実装されたものだろう。」と思ってしまう人が多いのではないだろうか。本書はそのような思い込みを打ち砕き、「コンピュータとは何か?」という問いに対して本質的な答えを出し…

.vimrcの設定

久しぶりにvimの設定ファイル(.vimrc)を整理したのでメモしておく。(設定ファイル中の「”」はコメントアウトである。) $HOME/.vimrc """"" .vimrc """"" """ 新しい行のインデントを現在行と同じにする set autoindent """ バックアップファイルを作るデ…

SystemVerilogのlogic型

VerilogHDLでは記述する回路によってreg型とwire型を使い分ける必要がある。SystemVerilogでは新たにlogic型が導入されており、reg型とwire型を使い分けることなく全ての信号をlogic型で宣言することが出来る。これにより、reg型、wire型の使い分けのミスに…

SystemVerilogのalways_comb、always_ff、always_latch

SystemVerilogの3種類のalways文をメモ。 3種類のalways文を使い分けて記述することでコードの可読性が高くなったり、予期しない回路の生成を防ぐことが出来る。 always_comb 組合わせ回路記述する際に使うalways文。センシティビティリストには何も記述しな…

Swift入門 変数と定数

変数・定数の宣言 Swiftの変数・定数の取り扱いについてメモ。 変数の書式 var 変数 = 値 var 変数 :型 = 値 変数宣言の例 var x = 10 var y : Int = 20 定数の書式 let 変数 = 値 let 変数 :型 = 値 定数宣言の例 let max = 1000 let pi : Float = 3.14 デ…

Modelsimのコマンド(vlog, vsim)スクリプト

Modelsimを使ってverilogソースをコンパイルしてシミュレーションするスクリプトを作成したのでメモしておく。 Modelsimのコマンドスクリプトサンプル スクリプトを実行するディレクトリ構成 sample/ |- sample.sv /*回路モジュール*/ |- sample_tb.sv /*テ…

duコマンドを使ってファイル/ディレクトリの容量を調べる

久しぶりにduコマンドを使うことがあった。忘れないうちに使い方をメモしておく。 1, duの使い方 (1)./homeディレクトリ以下のファイルの容量をkbyte単位で表示する $ du -k ./home (2)./homeディレクトリの容量のみを表示する(ディレクトリ内のファ…

MacOSの/coresディレクトリについて

知らないうちに/coresディレクトの容量が数GBになっている時がある。調べてみると、なんでもこのディレクトリはMacOSがコアダンプを保存するためのディレクトリらしく、開発者がソフトウェアのトラブルシューティングや障害診断を行うために使われているみた…

intelFPGAのQuartus Prime Lite Edition(version 17.1)をUbuntu16.04(on Virtualbox)にインストールする

IntelFPGAのQuartus Prime Lite Edition(version 17.1)をUbuntuにインストールする システムの環境 ubuntu16.04 (on Virtualbox) 64bit Processor core : 1 Memory size : 2GB 1, 前準備 Quartus Primeに付随するModelSim-Altera (Starter) Editionを、Lin…

ModelSimをコマンドラインで実行する方法

MoselSimをコマンドラインで実行する方法をメモ。 1, vlib : 作業ディレクトリを作成 $ vlib dir 2, vmap : プロジェクト名と作業ディレクトリを関連づける $ vmap prj dir_path 3, vlog : ソースコードのコンパイル $ vlog test1.v test2.v -f file_list -w…

swiftをコマンドラインで実行する

swiftをコマンドラインで実行してみる。 1, コンパイルと実行 「swiftc」というコマンドでコンパイル。 $ swiftc -o sample.out sample.swift$ ./sample.out

レジなしのお店「Amazon Go」がついにオープン

レジなしのお店「Amazon Go」22日シアトルにてついにオープン。ちなみに、そのスローガンは「Just Walk Out(歩いて出るだけ)」。スローガン通り、客は来店して目的の商品を手に取りレジに行くことなく、それを持って外に出ることができるお店だ。 特徴 客…

Verilog/System Verilogのgenerate文

for文を使って回路モジュールを任意個生成する方法があったよなぁと思い出しつつコーディングした。忘れないうちにメモ。下記の例ではgenerete文を使ってFFを4つ生成している。うまくgenerete文を使えば色々便利かも。 //Example of generating four FFs mod…

Xcode9にXVim2プラグインをインストール

Xcode用のvimプラグイン「XVim2」をインストールする。 1, 前準備 古いXVimがある場合は削除しておく。 $ cd ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/$ rm -rf XVim.xcplugin 2, XVim2のインストール 以下のコマンドを実行してXVim…

Xcode9にAlcatraz プラグインをインストール

Xcode9にパッケージ管理マネージャAlcatrazをインストールする。インストールを始める前にXcodeを終了しておく。 1, Alcatrazのインストール 以下のコマンドを入力してインストールを開始。 $ curl -fsSL https://raw.githubusercontent.com/supermarin/Alca…

瞑想・マインドフルネスについて

最近、瞑想ブームだ。厳密に言うとマインドフルネスブームと言った方がいいかも知れない。(現代人は情報の大洪水に晒されている傾向にあるので、みんな静かに落ち着きたいのかも知れない。)ICTの業界でもグーグルやアップルなどマインドフルネスを実践する…

大事なことに集中する

「大事なことに集中する」 当たり前のことではあるが、ネットやTVや新聞と言ったメディアからの情報の大洪水に晒されている現代では、大事なことに集中するためには気を散らすものから意識的に情報遮断をする必要があるのではないだろうか。 「大事なことに…

計算機を創る

webで平木敬先生の最終講義の動画を見つけた。 学生時代、データフローコンピューティングの勉強のためにEM4やSIGMA-1などの先生の論文を参考にさせてもらった。大変勉強になった。 最終講義(タイトル:計算機を創る)では計算機の高速化の歴史を分かりやす…

イミテーションゲーム エニグマと天才数学者の秘密

計算機科学を学ぶ上でアラン・チューリングの名前はどこかで耳にする。有名なのはチューリングマシン。「コンピュータアーキテクチャ」や「オートマトンと形式言語」の世界で出会うのではないだろうか。彼がいなければ、この世界にはコンピュータは存在しな…

風立ちぬ

「好きな映画は何か?」と聞かれると、色々あるのだが、とりあえずジブリの「風立ちぬ」が頭に浮かぶ。零戦の設計者である堀越二郎の半生と堀辰雄の小説「風立ちぬ」をモデルに創られたジブリの映画だ。 本当に静かで淡々とした映画で、つまらないと言う人も…

メニーコアRISC-V 「Celerity」とBaseJump

学生が開発したRISC-V メニーコアチップをwebで発見。 news.mynavi.jp (以下はスライド : Celerity: An Open Source RISC-V Tiered Accelerator Fabric) http://www-personal.umich.edu/~rovinski/pub/ajayi2017celerity.pdf 「開発されたCelerityチップは5…

RISC-Vについて

最近、注目を集めているRISC-Vについてメモ。 RISC-Vって? RISC-Vは、カリフォルニア大学バークレイ校(UCB)のKreste Asanović教授、David Patterson教授らが中心になって開発したRISCのISA(Instruction Set Architecture)である。UCBはコンピュータアー…