In this article we will be going over how to get started developing for the Tang Nano FPGA using a fully open source toolchain. We will start with an overview of FPGAs and the toolchain required to develop them, we will then go through setting up your development environment and finish off with a simple example so we can test and verify that everything is working. What's an FPGA ?An FPGA is a type
リーズナブルFPGAシリーズのTang Nano 9Kを使ってPSRAMへアクセスしました TERM表示 リーズナブルFPGAシリーズのTang Nano 9Kを使ってPSRAMへアクセスしました 1. PSRAMについて 2. コントローラの実装について PSRAMメモリーインターフェースIPの選択 チャネルインターフェースの仕様の確認 残念ポイント PSRAM本体はどこに? 3. FPGA DesignerでPSRAMメモリーインターフェースIPの呼び出し 4. サンプル 4.1 Wishboneバス → PSRAM インターフェース ブリッジモジュール”brd_wb2ps.v" 4.2 picotiny.vの改造 4.3 PSRAMのメモリクロックをPLLで作成 4.4 PICORV32で実行させるファームウェアの作成 4.5 実行結果(TERM出力のコピーペースト。HDMI画像とし
FUJITSU アドベントカレンダー7日目の記事です 掲載内容は私個人の見解であり, 富士通グループを代表するものではありません。 また, 本稿執筆にあたり, 細心の注意を払っておりますが, これらの情報の正確性, 十分性, 有用性, 確実性, 完全性等について一切保証いたしません。 本稿に記載された情報の誤り, 不完全性またはその使用・不使用等によって生ずるいかなる損害, ダウンロード等によって生じたいかなる障害等についても, 賠償その他一切の責任を負いません。 元組込みエンジニアです。 今回は, RISC-Vの外部割込みコントローラの制御方法について紹介させていただきます。 RISC-Vとは RISC-Vとは, 米国カリフォルニア大学バークレイ校発祥のオープン標準の命令セット・アーキテクチャ (Instruction Set Architecture - ISA コンピュータに命令を与
Platform Level Interrupt Controllerといい、コア外部から挿入される割り込みを処理するためのモジュールと考えてよい。当初PLICの仕様はRISC-Vの命令仕様と同様のグループで定義されていたが、命令仕様とは関係ないので分離して別ページで管理されている。 もう一つに多様な概念として、CLINT (Core Local Interrupt Controller)というものある。PLICとは異なり、コアのより近い場所で発生する割込みを処理するために使用する。 CLINTはタイマ割り込みとソフトウェア割り込み(コア間割り込みのようなもの)を制御するが、PLICは外部デバイスからの割り込みなど、もう少しシステムよりの割り込み処理を行う。 PLICが定義するレジスタ PLICは割り込みを処理するための単なる配線群ではない。システムからは複数の割り込みがCPUに対して挿入
はじめに RISC-Vの割り込み機能 割り込み発生時の動作 割り込み禁止 タイマ割り込み機能を実装する RISC-Vのタイマ割り込み トラップベクタの登録 割り込みスタック タイマハンドラの用意 タイマ割り込みを発生させてみよう タスクをゆっくり動かしてみる 最後に おまけ 執筆者 : 高橋 浩和 はじめに 今回は、RISC-V OSに割り込み機能を追加します。今回は割り込みハンドラを動作させるところまで実装します。 割り込みは、CPU上でタスク等が実行している命令とは関係なく非同期に発生します。 割り込みが発生すると、OSは発生した割り込みの種別に対応した割り込みハンドラを呼び出します。 割り込みとよく似たものに、CPU上でタスク等が実行している命令が要因となって発生する例外があります。 例外の扱いについては別の機会に説明したいと思います。 RISC-Vの割り込み機能 今回実装するOSで
東京都北区、JR王子駅近くを流れる石神井川の蛇行部分を利用した園地が、音無もみじ緑地。江戸時代、一帯は音無渓谷と呼ばれる景勝地で、石神井川の崖下にあった洞窟には松橋弁財天が祀られていましたが、今では護岸工事が施され、洞窟は壁のなかに隠れ、松橋弁財天跡となっています。 石神井川に面してワンド(川の入り江)が設けられ、川から入ってきた魚が繁殖できるようになっています。 石神井川の増水時と夜間は立入禁止。 深山幽谷の趣を有した石神井川には松橋弁財天のほか、弁天の滝もあり、江戸時代、江戸近郊の景勝地、紅葉の名所として知られ、断崖の上の金剛寺も「紅葉寺」として有名でした。 松橋弁財天には、空海(弘法大師)作と伝えられる弁財天像が祀られ、『新編武蔵風土記稿』に、安房(現在の南房総)で再起を図り、鎌倉を目指した源頼朝が太刀一振を奉納したとありますが、残念ながら、弁財天像も太刀も失われています。 松橋は当
もう8月も終わりですが、いくつか成績が出てようやく3Sが終わった気持ちになってきたので備忘録として3Sをまとめておきます。理情ってどんなことをやってるのかなと参考になれば幸いです。 全体を通して 新型コロナウィルスの影響ですべての講義がオンラインとなりましたが、情報科学科は学科として先陣を切る思いで(?)4月の初週からオンライン講義を行いました。教員の方々もパソコンに弱いということはなく、滞りなくオンライン授業が行われました。 ほとんどの授業がスライドの画面を配信してそれの説明を行う形で、適宜別資料を写したり、画面に書き込んだりして説明をされていました。スライドは講義資料として配布されており、学生の要望もあってか、セメスターの後半には全ての座学の講義録画がITC-LMSから視聴可能になりました。講義の復習がしやすくとても快適でした。 3Sの時間割は2限に座学、(水曜を除いて)3, 4限に実
この記事は理情 Advent Calendar 2024 20日目の記事として書かれました。 前日の記事とともRhoがお送りします。 これは何? CPU実験の説明は省略します。ググればたくさん体験記が出てくるので CPU実験には様々なバグが付き物です。折角プログラムをコンパイルできたと思ったのに何かがおかしい、だとかシミュレーター上の実行命令が明後日の方向に飛んでいく、というのは日常茶飯事です(;;) 実験中盤以降ではレイトレのプログラムをコンパイルし動かすことが多いと思われます。その過程で集まった正しくない画像を紹介し、将来レイトレをデバッグする24+n erの一助となれば幸いです。 leptont.hatenablog.jp レイトレ画像デバッグは過去に記事があるので、この記事は(多分)第2弾です。過去のものは上をご参照ください。 正しい画像 正しい まごうことなき正解の画像です。10
RustでRISC-Vエミュレータを書いてNOMMU Linuxをブラウザで動かした #2023-05-23 以前からRISC-Vエミュレータを書いてみようと思っていたのだが、書いては飽きてを繰り返して全然進められずにいた。そんな中、以下のRepositoryで、rv32ima,Zifencei,Zicsr、あとはCLINTを実装すればLinuxが動くと知り、飽きずに進められそうな気がしてきたので今度こそ、と実装してみることにした。 https://github.com/cnlohr/mini-rv32ima目次成果物 #Repositoryは以下。本記事では実装の概要の記載もあるが、簡略化していたり抜粋だったりするので適宜参照いただきたい。基本的にはcoreというcrateが実装の中枢となっている。appはcoreにcliの皮を被せただけだ。 また以下にPlaygroundも用意した。
∣x∣≤1|x|\leq 1∣x∣≤1 なる実数 xxx について, Arctan x=x−x33+x55−x77+⋯\mathrm{Arctan}\:x=x-\dfrac{x^3}{3}+\dfrac{x^5}{5}-\dfrac{x^7}{7}+\cdotsArctanx=x−3x3+5x5−7x7+⋯ 冒頭の公式をシグマを使って書くと, Arctan x=∑n=1∞(−1)n−12n−1x2n−1=x−x33+x55−x77+⋯\begin{aligned} \mathrm{Arctan}\:x &= \sum_{n=1}^{\infty}\dfrac{(-1)^{n-1}}{2n-1}x^{2n-1}\\ &= x-\dfrac{x^3}{3}+\dfrac{x^5}{5}-\dfrac{x^7}{7}+\cdots \end{aligned}Arctanx=n=1∑∞2
まず、アークタンジェントのマクローリン展開式を紹介する。 なお、タンジェントの逆関数であるアークタンジェントは、 や と書かれることもあるが、 本稿では統一して と書くことにする。 またマクローリン展開式も、 定義通りの微分による計算では規則性を見出すのが難しいので、 ここでは別な方法で求めることにする。 無限等比数列の和の公式 で () とすると が成り立つ。これを、 である に対し から まで積分すると、
平方根である。sqrtである。私の数学知識は非常に乏しく、かろうじて平方根の何たるかを解するばかりであるが、ふと、平方根を計算するアルゴリズムが知りたくなった。理由は、constexprなsqrtを実装してみたくなったからだ。 日本語では、いい情報がWeb上に存在しないので、ここに書いておく次第。この説明は、私のように数学の知識を持たない人間にも理解できるはずである。 ここで使うのは、バビロニア人の方法(Babylonian method)と呼ばれている、歴史あるアルゴリズムである。この方法は、手動でも、プログラミングでも、非常に簡単に計算できる、大変便利で汎用的なアルゴリズムである。しかも、速度もそれほど遅くない。 √Sに対して、 任意の正の整数を初期値X0と定める(できるだけ平方根に近い値が望ましい) Xn+1を、Xnと S / Xnの平均値とする(平均値は相加平均で求める) 必要な精
平方根の高速化とマジックナンバー この記事はアドカレに参加しています。 平方根 $\sqrt{a}$という形が平方根ですね。$a^{\frac{1}{2}}$と書くこともできます。この平方根、グラフィック系のプログラムなんかでめちゃくちゃ見かけますし、それだけ使います。AIの分野でも頻繁に使用するみたいです。 数回程度sqrt関数を呼び出す程度ならあまり気になりませんが、何千回、何万回、何億回もsqrt関数を呼び出すと、その計算速度の遅さに辟易します。 そこで、多少の精度を捨ててでもsqrt関数を高速化しようとしたのがfast sqrt algorithmと呼ばれるアルゴリズムです。この記事はそんなアルゴリズムの紹介です。 fast sqrt algorithmは精度面でも速度面でも最良ではないです。基本的に低レベルな命令セットの方が精度を保ちつつも高速な場合が多いです。(僕の環境では、c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く