FPGA開発日記

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

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

OpenSPARC T1の調査(オープンソースなCPUの調査)

OpenSPARC T1を動かす話の続き。どうにかしてPLI部のコードをリコンパイルし、ModelSimから読めるように変更してみたが、どうしてもVeraの吐き出すイベントファイルが必要なようで、Vera無しでは動作させることが難しい気がしてきた。 OpenSPARC T2もT1もVer…

OpenSPARC T1の調査(3. PLI部のコンパイル→失敗)

OpenSPARC T1のPLI部を動かそうとしているのだが、ModelSim PLIがうまく動作せずに悩んでいる。土日にひたすら試行してたのだが、結局うまく行かなかった。 おそらく、自分でフルスクラッチで作るのだったら簡単に作れるのだろうが、今回はそうも行かず、Ope…

OpenSPARC T1の調査(2. ModelSimによるシミュレーション→フェッチが出ず)

前回に引き続いて、OpenSPARC T1のシミュレーションを走らせていたが、それっぽい動作をしたものの、イマイチ有益なログを出さずにシミュレーションが終了してしまった。 $ tree . . ├── bypass_win:model_core1:core1_mini:0 │ ├── diag.s │ ├── efuse.img …

OpenSPARC T1の調査(1. シミュレーション環境の構築)

どうもOpenSPARC T2の調査が芳しくないので、一つ前に戻って、OpenSPARC T1について調査してみよう。 まず、simsコマンドについて調査していたのだが、VCS, NC-Verilog以外のシミュレータを使うための手段として、以下のサイトが参考になった。 abishekramda…

OpenSPARC T2の調査(2)

OpenSPARCの調査を引き続き行っている。前回のファイルリストを加工するために、OpenSPARCのシミュレーションスクリプトsimsをどうにかこうにか動かしながら、cmp1(SPARCコア1つ)を動作させるためのファイルリストを作った。 ちなみに、simsはOpenSPARCのシ…

OpenSPARC T2の調査(1)

RISC-Vプロセッサの実装もちょっと手詰まりになってきたので、少し気分転換に、他のプロセッサはどのように実装されているんだろう、というのが気になった。 フリーで入手できるそこそこ高性能なプロセッサとしては、OpenSPARCか、RISC-VのBOOMが存在するが…

TOEICの結果と感想2017

1/29に受験したTOEIC試験の結果が公開された。結果としては、前回受験よりも10点ダウン。 下がってしまったのはしょうがないけれども、思ったより下がり幅が小さかったので一安心。 TOEICの新形式になり始めての受験だったが、問題形式が変更になったことと…

マラソン用イヤホン購入

今までマラソンに出るときは、ソニーのBluetoothを使っていたのだけれど、レシーバが大きくてちょっと不便だった。 www.sonymobile.co.jp そこでマラソン用のイヤホンを購入した。Amazonでたくさん調べて、ヨドバシカメラをぐるぐる回って、結局ヨドバシカメ…

RISC-Vテストパタン VMモードの解析

前回に引き続き、Sv32で動作させるときのテストパタンの動作について解析している。 RISC-Vのテストパタンは、基本的なテストを行うxxx.Sのアセンブラリストと、それを囲むプロローグとエピローグから構成されている。 中心となる検証用アセンブラリストは、…

RISC-V ISS Sv32, Sv39の実装

いまいち実装が進んでいないが、Sv32とSv39のISSへの実装しなおしが完了した。 Sv32とSv39については、前回の記事を参考にして欲しい。 msyksphinz.hatenablog.com github.com 実装方法としては、まずはPTEを参照しながら上位の物理アドレスを生成していき、…

特権命令の例外権限を委譲するためのRISC-Vシステムレジスタmedeleg, mideleg

テストパタンのチェックをしていて、スーパバイザモードで例外が発生してもスーパバイザモードに留まっているパタンがおり、何が起きているのだろうと調べていると、以下のようなレジスタの仕様を発見した。 目的としては例外が発生した場合のコンテキストス…

Bitnamiで構築したRedmineをBitbucketと同期させる

前回の続きだが、前回はRedmineとGithubを同期させた。 msyksphinz.hatenablog.com 同じ仕組みで、RedmineとBitbucketを連携させることが出来る。同じように、bitbucketからdaemonアカウントを使ってgitリポジトリをダウンロードし、Redmineにリポジトリを関…

Bitnamiで設定したRedmineをgithubと同期させる

個人の開発を記録するためにRedmineを導入したが、githubとの連携をまだ実現していなかった。 githubとの連携を実現するための情報はたくさんあるが、bitnamiで構築したRedmineとgithubはどのように連携すればよいのだろうか?調査してみた。 実現したいこと…

RISC-Vのメモリ仮想化の方式について (v1.9.1編)

自作ISSのテストパタンが通らなくなってきた! 特に仮想メモリを使っているパタンが通らなくなった。大昔に自作ISSに仮想アドレスから物理アドレスの変換を実装していたのだが、どうやら仕様がv.1.9.1で変わっているらしい。 もう一度チェックしてみよう。 …

組み込みシステムにおけるアドレスの考え方 (VMA, LMAについて)

CPU

ちょっと話が逸れるが、今回は組み込みシステムにおけるVMAとLMAの考え方についてまとめておく。 例えばリンカスクリプトなどを組み上げるとき、「CPUから見たアドレス」と「外部からデータをRAMに配置するときにみる領域」が違うことがある。 例えば、こん…

Intelの2.5D FPGA @ ISSCC

Intelがチップ間2.5D通信を採用したFPGAをISSCCで発表した。 www.eetimes.com まだ詳細は出て来ていないが、基本技術はEMIB(Embedded Multi-die Interconnect Bridge)というものらしい。 【後藤弘茂のWeekly海外ニュース】超広帯域メモリの採用を可能にするI…

RISC-V. Open Hardware for Your Open Source Software @ FOSDEM17

FOSDEM17 というイベントでRISC-Vについての講演があるらしい。 FOSDEMというイベントはこれまで知らなかったのだが、"FOSDEM is a free event for software developers to meet, share ideas and collaborate"ということで、 主にオープンソースツールにつ…

RISC-VのSpike-ISSを使ったFreeRTOSの起動ルーティンの解析(3)

前回の続きで、ROMにはさらにいくつかの情報を挿入しなければならない。0x1020から挿入しなければならないのが、以下のRISC-Vのコンフィグレーションに関する情報だ。 前回の記事で紹介した以下のものになる。 platform { vendor ucb; arch spike; }; rtc { …

RISC-VのSpike-ISSを使ったFreeRTOSの起動ルーティン解析(2)

前回の続き。Spike-ISSには通常のDRAM以外に別のメモリが貼り付けられていることが分かった。 今回焦点を当てたいのは0x1000に貼り付けられているROMらしきものだ。sim.ccには、以下のような記述でROMが生成されていた。 uint32_t reset_vec[8] = { 0x297 + …

RISC-VのSpike-ISSを使ったFreeRTOSの起動解析

前回の続きで、どうしても自作ISSとSpike-ISSの動作結果が一致しないところがあり、何が悪いんだろうと調べていた。 まず、spikeにはRISCV_ENABLE_COMMITLOGというログ出力用のフォーマットがある事は紹介した。 これだけでは情報としては不十分で、例えば実…

RISC-V のISS "Spike"のログフォーマットを拡張する方法

RISC-VにはUC-Berkeleyの開発した命令セットシミュレータであるSpikeが存在する。 github.com このSpikeというシミュレータ、高速でLinuxもブートできる優れものなのだが、欠点はログがほとんど見れず、プログラムが誤作動を起こしても何が起きているのかさ…