-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.xml
More file actions
122 lines (122 loc) · 16.4 KB
/
index.xml
File metadata and controls
122 lines (122 loc) · 16.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>mikiken.net</title>
<link>https://mikiken.net/</link>
<description>mikiken.net</description>
<generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Sun, 20 Aug 2023 17:23:57 +0900</lastBuildDate>
<atom:link href="https://mikiken.net/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Yosysを触ってみる</title>
<link>https://mikiken.net/posts/yosys-intro/</link>
<pubDate>Sun, 09 Feb 2025 00:15:22 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/yosys-intro/</guid>
<description><![CDATA[卒業研究で、OSSの論理合成ツールであるYosysを少し触ったので、そのときに書いたメモを放流
(基本的に他の人が読むことを想定して書いてないので、内容はかなり適当)
Yosysのドキュメントを読んでみる チュートリアルなどドキュメントは、この辺にまとまってるっぽい
合成を試す (Synthesis starter) Synthesis starter - YosysHQ Yosys 0.41-dev documentation
このページでは、パッケージ化された iCE40 FPGA 合成スクリプト synth_ice40 のウォークスルーをガイドします。簡単なデザインを各ステップを通して、呼び出されるコマンドと、それらがデザインに与える影響について見ていきます。synth_ice40 は iCE40 プラットフォーム固有のものですが、これから説明する操作のほとんどは、FPGA 合成スクリプトの大部分で共通です。したがって、本書は、実際に使用されるアーキテクチャに関係なく、Yosysにおける合成がどのように実行されるかについて、基礎的な理解を深めるのに役立ちます。
サンプルの回路 (Demo design) こういうVerilogのコードで試すらしい 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 // address generator/counter module addr_gen #( parameter MAX_DATA=256, localparam AWIDTH = $clog2(MAX_DATA) ) ( input en, clk, rst, output reg [AWIDTH-1:0] addr ); initial addr <= 0; // async reset // increment address when enabled always @(posedge clk or posedge rst) if (rst) addr <= 0; else if (en) begin if (addr == MAX_DATA-1) addr <= 0; else addr <= addr + 1; end endmodule //addr_gen // Define our top level fifo entity module fifo #( parameter MAX_DATA=256, localparam AWIDTH = $clog2(MAX_DATA) ) ( input wen, ren, clk, rst, input [7:0] wdata, output reg [7:0] rdata, output reg [AWIDTH:0] count ); // fifo storage // sync read before write wire [AWIDTH-1:0] waddr, raddr; reg [7:0] data [MAX_DATA-1:0]; always @(posedge clk) begin if (wen) data[waddr] <= wdata; rdata <= data[raddr]; end // storage // addr_gen for both write and read addresses addr_gen #(.]]></description>
</item>
<item>
<title>2024年を雑に振り返る</title>
<link>https://mikiken.net/posts/2024-looking-back/</link>
<pubDate>Tue, 31 Dec 2024 02:34:36 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/2024-looking-back/</guid>
<description><![CDATA[去年と同様、今年何をしてたかをざっくり振り返ります。
1月 研究室に(仮)配属されてゼミ発表の準備に気を取られていたら、某授業の成績に占めるウエイトの大きい課題を吹き飛ばして絶望するなどしていた (試験頑張ってなんとか単位は確保した) 忄青幸𠬝亻云辶关 のレポート出し忘れてることに気づき、顔無くなった
— mikiken (@mikikeen) January 18, 2024 学校の実験で、ライフゲームをマトリクスLEDに表示する謎デバイスを作っていた 大学の実験でライフゲームをマトリクスLEDに表示するやつ作った pic.twitter.com/61hdEif0HU
— mikiken (@mikikeen) January 29, 2024 アホの量の配線と格闘していた模様 配線の量エグい(これで半分) pic.twitter.com/ogGYMX7lLZ
— mikiken (@mikikeen) January 23, 2024 オシロスコープを買った my new gear...!!! pic.twitter.com/za04qEYoNs
— mikiken (@mikikeen) January 31, 2024 2月 RISC-V CPU自作本をやったりしていた パイプラインの実装までやって、Tang Primerという中華FPGAへの実装を試みたところ論理合成がうまくいかなかった様子 FIRRTLが吐いたVerilogを論理合成ツールに突っ込んだらSyntax Error出てて厳しい
(bindが使える処理系があまりないようなので、若干書き換える必要があるっぽいが、Verilog力が低すぎて何も分からない😇) pic.twitter.com/du9wk6u08I
— mikiken (@mikikeen) February 22, 2024 3月 情報科学若手の会 春の陣に参加していた 何も発表できず… 情報科学若手の会 春の陣 #wakate2024s を来週日曜日(3/10)に開催します!!]]></description>
</item>
<item>
<title>ベル麻痺で顔の左半分が動かなくなったので症状の経過をメモする</title>
<link>https://mikiken.net/posts/bell-palsy/</link>
<pubDate>Wed, 15 May 2024 23:43:52 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/bell-palsy/</guid>
<description><![CDATA[TL;DR 5月にベル麻痺になり、顔の左半分が動かせなくなった 目が閉じないことと、口元がうまく動かせないのが辛い 8月末になって、ほぼ治った 症状の経過 5/12(日) (発症2日前) 夕飯を食べてるとき、舌の左側だけ、味をあまり感じない気がした 家の雨戸を閉めるときに、その音が左耳だけに響く感じがした 5/13(月) (発症前日) 研究室から帰ろうとしたら、いつもより怠さを感じた 普段なら新快速に乗って帰るけど、絶対に座りたかったので快速で帰った 帰宅の途中くらいから、左耳の後ろ辺りに何かに圧迫されている感じの痛みがあった 5/14(火) (発症当日) 朝起きたら、顔の左半分が全く動かないことに気づく
瞬きが一切できない 口をうまく閉じられないので、口から水がこぼれる この症状、何科を受診すべきなんや 朝起きたら、顔の左半分の筋肉に力入らなくなってたんだけど、何科を受診すべきなんやろ
— mikiken (@mikikeen) May 14, 2024 かかりつけ医に電話し、近くの脳神経外科がある総合病院の受診を勧められたので、そこに行くことに
病院で脳のMRIを撮ってもらった
症状を説明したら、ベル麻痺の可能性が高いと言われた 脳神経外科を受診した結果、ベル麻痺とかいうやつらしい
(薬飲んでたら治るらしい)https://t.co/9pRw63aaeN https://t.co/1P1fhjeVvr
— mikiken (@mikikeen) May 14, 2024 耳の後ろに通ってる神経の周辺が炎症を起こして、腫れることで、神経の伝達が阻害されるらしい?
その後の経過 1週間後くらい 大体1週間経ったので症状のメモ]]></description>
</item>
<item>
<title>ライフゲームのシミュレーションの様子をマトリクスLEDに表示するデバイスを作った</title>
<link>https://mikiken.net/posts/lifegame-indicator/</link>
<pubDate>Wed, 14 Feb 2024 17:53:56 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/lifegame-indicator/</guid>
<description><![CDATA[概要 ライフゲームのシミュレーションの様子をマトリクスLEDに表示するデバイスを作った ブラウザから、初期パターンの設定とシミュレーションの開始・リセットができる 大学の実験でライフゲームをマトリクスLEDに表示するやつ作った pic.twitter.com/61hdEif0HU
— mikiken (@mikikeen) January 29, 2024 ライフゲームとは ライフゲームは、生命の誕生・進化・淘汰のプロセスをシミュレーションする簡易な数理モデルです。ライフゲームでは、まず格子状のフィールドに生きたセルを配置しておきます。次に、以下のようなルールに従って、次の世代のセルの配置を決定します。あとは同様のルールに従い、次の世代のセルの配置を繰り返し算出し、生命の進化をシミュレートしていきます。
誕生 死んでいるセルに隣接する生きたセルがちょうど3つあれば、次の世代が誕生する。 生存 生きているセルに隣接する生きたセルが2つか3つならば、次の世代でも生存する。 過疎 生きているセルに隣接する生きたセルが1つ以下ならば、過疎により死滅する。 過密 生きているセルに隣接する生きたセルが4つ以上ならば、過密により死滅する。 Wikipediaより引用 スライド これもTD4の記事と同じで、学校の実験の一環として製作しました。記事を書くのが面倒になってきたので、 そのときのスライドを載せときます。]]></description>
</item>
<item>
<title>2023年を雑に振り返る</title>
<link>https://mikiken.net/posts/2023-looking-back/</link>
<pubDate>Sun, 31 Dec 2023 00:00:00 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/2023-looking-back/</guid>
<description><![CDATA[2023年何をしてたか、後から見返す用に雑に振り返ります。
1月 自作Cコンパイラのスタックアライン崩れてるバグを倒した 最近自作Cコンパイラ触ってないなあ 早くセルフホストしたいね スタックアライメント崩れてるのが直って、ドーナツ動くようになった pic.twitter.com/BHBzOwpELp
— mikiken (@mikikeen) January 2, 2023 2月 細々とした機能を自作コンパイラに足していたっぽい 配列の初期化式とか 初期化式があるときは配列の要素数を省略できるようにしたhttps://t.co/uFU4yGlrmP
— mikiken (@mikikeen) February 16, 2023 文字列リテラルの初期化式を実装https://t.co/0Lzjm1FaNL
— mikiken (@mikikeen) February 26, 2023 3月 セキュリティキャンプフォーラムに行った
セキュキャン修了生向けのイベント でした pic.twitter.com/oifxPjiMhc
— mikiken (@mikikeen) March 11, 2023 CAMPHOR- の運営メンバーになった
CAMPHOR- 自体は、去年の12月くらいから行くようになった 居心地よくて何回か行ってたらぬるっと運営メンバーになってた 4月 自作Cコンパイラに多次元配列を実装 多次元配列を実装https://t.]]></description>
</item>
<item>
<title>自作サイト用にOGP画像を自動生成するツールを作った</title>
<link>https://mikiken.net/posts/impl-ogp-image/</link>
<pubDate>Thu, 21 Dec 2023 00:00:00 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/impl-ogp-image/</guid>
<description><![CDATA[この記事は、CAMPHOR- Advent Calendar 2023 の21日目の記事です。
はじめに TwitterとかSlackなどで、URLを貼り付けると、以下のように記事のサムネイルが表示されることがあると思います。
SNS向けに記事のメタ情報を記述するプロトコルとしては、Open Graph protocol というものが広く使われています。
今回は、このサイトにOGPに準拠した記事のサムネイルを自動生成するツール作ってみました。
方針 自分しか使わないツールなので、とりあえず以下のような方針で進めることにしました。
サムネイルには、記事のタイトル, ユーザー名, アイコン, サイト名を表示する 記事の.mdファイルのパスを渡すと、Front Matterから記事タイトルを取得して、サムネイルを生成する Hugoと連携させる可能性を一応考え、Goで実装する SVGでサムネイルのテンプレートを用意しておき、そこに記事タイトルを埋め込み、PNGで出力する 実装してみる 雛形の用意 まずはサムネイルの雛形を用意します。適当にPowerPointで雛形を作成し、Inkscapeで調整すると以下のような感じになりました。適当に作ったらZennのパクリみたいになってしまった
雛形のSVGファイルをテキストエディタで開き、いろいろ手直しを加えた結果、以下のようになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 <?xml version="1.]]></description>
</item>
<item>
<title>「CPUの創りかた」のTD4をFPGAで実装してみた</title>
<link>https://mikiken.net/posts/td4-fpga/</link>
<pubDate>Wed, 13 Dec 2023 00:00:00 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/td4-fpga/</guid>
<description><![CDATA[この記事は CAMPHOR- Advent Calendar 2023 の13日目の記事です。
はじめに 「CPUの創りかた」という本をご存知でしょうか?2003年に出版された本で、汎用ロジックIC(74シリーズ)を使って、簡単な4bitのCPUを作ります。本のタイトルから、デジタル回路の話が多そうだという印象を持つかもしれませんが、LED点灯回路の抵抗値の計算といった、基本的なアナログ回路の内容から丁寧に解説されている名著です。今年で発売から20年を迎えますが、未だに根強い人気を誇っており、現在では30刷以上重版されているようです。
僕の通う大学では、3年生後期に、FPGAで何らかのデジタル回路を実装するという実験があります。そこで、この本の内容をFPGAで実装してみました。
大学の実験で「CPUの創りかた」のTD4をFPGAで実装してみた pic.twitter.com/Oqk6r73JyZ
— mikiken (@mikikeen) November 6, 2023 作ったもの 「CPUの創りかた」では、TD4という4bitのCPUを段階を分けて作っていきます。
TD4の仕様をざっくり説明すると、
命令長8bit (オペコード 4bit, オペランド 4bit) 演算用のレジスタ(4bit)が2つ という感じです。
実行できる命令としては、以下の12種類があります。
ADD A, Im ADD B, Im MOV A, Im MOV B, Im MOV A, B MOV B, A JMP Im JNC Im キャリーフラグが0のとき、即値Imで指定されたアドレスにジャンプする IN A 入力端子からデータを入力し、Aレジスタに代入する IN B 入力端子からデータを入力し、Bレジスタに代入する OUT B Bレジスタの値を出力端子に出力する なお、OUT A命令は存在しない。 OUT Im 即値Imを出力端子に出力する なお、リポジトリはこれです。]]></description>
</item>
<item>
<title>"Writing an OS in 1000 lines"の環境構築をしたときのメモ</title>
<link>https://mikiken.net/posts/writing-an-os-in-1000-lines-setup/</link>
<pubDate>Thu, 26 Oct 2023 17:49:53 +0900</pubDate>
<author>mikiken</author>
<guid>https://mikiken.net/posts/writing-an-os-in-1000-lines-setup/</guid>
<description><![CDATA[同じ内容をZennのスクラップにも書いたんですが、こっちにも一応書いとく
本の記述に従い環境構築をしてみた
※手元の環境はUbuntu 20.04.6 LTS (WSL2)
しかし、5. ブートの説明通りにrun.shを記述し実行したところ、以下のようなエラーが出た
1 2 3 4 ❯ ./run.sh + QEMU=qemu-system-riscv32 + qemu-system-riscv32 -machine virt -bios default -nographic -serial mon:stdio --no-reboot qemu-system-riscv32: Unable to load the RISC-V firmware "opensbi-riscv32-virt-fw_jump.bin" パッと見た感じ、QEMUが-bios defaultで呼び出すファームウェアが、本の執筆当時とは変わっていそう(?)
そこで、run.shを以下のように変更した
1 2 3 4 5 6 7 8 #!/bin/bash set -xue # QEMUの実行バイナリへのパス QEMU=qemu-system-riscv32 # QEMUを起動 $QEMU -machine virt -bios opensbi-riscv32-generic-fw_dynamic.bin -nographic -serial mon:stdio --no-reboot すると、エラー自体は出なくなったが、QEMUを起動しても何も表示されない]]></description>
</item>
</channel>
</rss>