Movatterモバイル変換


[0]ホーム

URL:


FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

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

Twitterでちょくちょく流れてくる、「シェルプログラミング 実用テクニック」を本屋で見付けたので買ってみた。 シェルプログラミング実用テクニック (Software Design plus)作者: 上田隆一,USP研究所出版社/メーカー: 技術評論社発売日: 2015/05/15メディア…

はてなブックマーク - 「シェルプログラミング 実用テクニック」を購入

ここからは、ARM上のプログラムの開発に入る。 msyksphinz.hatenablog.com msyksphinz.hatenablog.com 使用ツール : Vivado 2016.2 使用OS : Windows 10 ARM上で動作するプログラムを書いてCustom IPを制御する [File]→[New Project]をクリックする。 プログ…

はてなブックマーク - Zynq ZedBoardを使ってPSとPLの協調プログラミング入門(4)

前回まででIPの生成が完了したので、Wrapperを作成してbitstreamの合成の準備に入る。 使用ツール : Vivado 2016.2 使用OS : Windows 10 FPGA用のBitstreamを作成する msyksphinz.hatenablog.com msyksphinz.hatenablog.com Sourceペインで[design_1]を右ク…

はてなブックマーク - Zynq ZedBoardを使ってPSとPLの協調プログラミング入門(3)

前回までで、ZedBoard用のハードウェアの基盤が出来上がったので、今度はPLロジック部に追加するハードウェアを作り、IPとして追加していこう。 msyksphinz.hatenablog.com 使用ツール : Vivado 2016.2 使用OS : Windows 10 VivadoでIPを新規作成する 前回ま…

はてなブックマーク - Zynq ZedBoardを使ってPSとPLの協調プログラミング入門(2)

ZedBoardはずっと持っていたのだが、Linuxを単体で立ち上げたりなど、これまであまりPL側の回路を活用することが無かった。 ところが最近、PL側の回路設計も行う機会が増えたため、勉強のためにも、Zynq ZedBoardとVivadoを使って、どのようにPS+PLの協調設…

はてなブックマーク - Zynq ZedBoardを使ってPSとPLの協調プログラミング入門(1)

だいぶ前になったが、Windows PowerShellがオープンソース化され、Linux上でも利用できるようになった。 jp.techcrunch.com かくいう僕はPowerShellなど一度も使ったことがなく、Windows のコマンドプロンプトとの違いも分からない。 コマンドプロンプトは使…

はてなブックマーク - Windows PowerShellをLinuxで試す

CPUのレジスタリネーミングでは、フリーリストと呼ばれる、空いているレジスタ番号を管理するためのFIFOキューが存在する。 フリーリストには、現在使用されていない物理レジスタ番号が格納されており、命令がデコードされ、レジスタ書き込みが必要な命令で…

はてなブックマーク - CPUのリネーミングを支えるユニット、フリーリスト

CPU設計を行うにあたり、検証に必要なフレームワークを構築する。 RTLで記述されたCPUは、シミュレーション中にログを出力し、同じプログラムをISSでも実行する。 この2つのログを比較して、正しくRTLが動作しているかを検証する訳だが、この場合に何をどの…

はてなブックマーク - ISSとRTLを比較するためのフレームワークの実装

レジスタリネーミングでは、アーキテクチャレジスタと物理レジスタを接続するための仕組みだ。 レジスタに書き込みを行う命令が実行されると、アーキテクチャレジスタのIDはリネーミングレジスタのレジスタIDに置き換われる。 このレジスタリネーミングの仕…

はてなブックマーク - リネームIDをISSでモデル化する

LSUとはLoad Store Unit(たぶん)のことで、メモリアクセスに関わるすべての操作を担当するユニットだ。最もシンプルなものであれば、キャッシュに対するロードストアが出来れば良い。 CPUのパイプラインからの要求に応じて、外部バスを操作してメモリにデー…

はてなブックマーク - AXIと接続するLSUの実装方法検討(1)

CPU開発をしていると、自分の設計したCPUが正しく動作しているかを検証する必要が必ず生じる。 プログラムを流して動作させているときに、そのプログラムが正しく動作したかを確かめるためには、いくつかの方法がある。 一つ目はプログラム自体に検証能力を…

はてなブックマーク - CPU開発に必須な検証手法の話

実際に実装したハードウェアをシミュレーションしてみる。 現状はまだ公開できる段階には無いので、とりあえず波形のみ貼り付ける。 まず、このIFUでは128bit x 4burstの命令フェッチリクエストを出している。 この際、MARリクエストバッファを4エントリ分消…

はてなブックマーク - AXIバスリクエスト中に命令フラッシュが入った場合を考慮した命令Fetcherの実装(2)

msyksphinz.hatenablog.com この話の続き。RISC-V対応のCPUの実装にあたり、足回りのAXIをどのように実装するか。 今のところ1次キャッシュは備えていないので(いずれは追加しないといけないが)、足回りのAXIは、 命令アドレスリクエスト用チャネル (IF_MAR)…

はてなブックマーク - AXIバスリクエスト中に命令フラッシュが入った場合を考慮した命令Fetcherの実装(1)

コマンドラインでファイルの相対パスを絶対パスに変換する処理は、結構必要だった。 Emacsでファイルを開くのに、別の場所で開いていたら絶対パスで記述しないとダメだし、いくつかのファイルを参照するのに、相対パスを簡単に絶対パスにしておきたい。 これ…

はてなブックマーク - コマンドラインでファイルの相対パスを絶対パスに変換するためには

回路設計をするにあたり、バスの回りはAXIを利用している。CPUの回りにはいくつかのAXIのバスが出ているのだが、それらをうまくコントロールするためにはどのようにすれば良いのだろうか。 バスにおける基本は、以下の2つだと考えられる。 アービタ : 2つの…

はてなブックマーク - AXIのアービタを設計するための考察

例えばの話、CPUでフェッチリクエストを出したとして、その間にフラッシュ信号を受信してしまい、それまでのフェッチを無かったことにしたい。 そんなときはどうすれば良いのか。基本的にAXIにリードリクエストを出してしまうとそれを止めることは出来ない(…

はてなブックマーク - AXIのバスリクエスト中に取消をしたい場合にどうすれば良いのか

xv6の割り込み処理の実装は基本的にx86用に記述されているため、それを他のアーキテクチャに移植するのはなかなか骨が折れる。 RISC-Vのアーキテクチャでは割り込み処理は下記のPrivileged Architecture Manualに従っており、0x100番台のアドレスもしくは、H…

はてなブックマーク - RISC-V版xv6における割り込み処理の実装

RISC-Vにてxv6を起動させるための続き。トラップフレームと、コンテキストの内容を書き換えることによってまずはswitch()によりforkretが呼ばれるようになるところまで来た。 github.com 最初のプロセスが呼ばれる仕組み まずはuserinit()により最初のプロセ…

はてなブックマーク - 最初のプロセスを起動させるための試行錯誤

これまでTensorFlowを使ったことはあっても、TensorBoardを使ったことはなかった。なぜならば、僕の環境は基本的にVagrant上で動作しており、CUIがベースとなっている。 TensorBoardを使うためにはXをフォワードする必要があり、面倒だなと思って使っていな…

はてなブックマーク - Vagrant上のLinuxでTensorBoardを起動する
検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp