FPGA
JTAGデバッガをwslのUSBへ認識させる usbipdの環境を整えます。 wsl側に認識させる OpenOCDの実行 debugの実行 実機のJTAGを動作させるのにはまった点 参考にしたサイト 前回記事でverilator simでJTAGデバッグするという話を書きましたが、今回は実機デバッ…
VexRiscvの生成環境の構築 VexRiscvコアの作成 SoCの作成 Verilatorによるsimulation SIM TOP階層(C++階層)の作成 class BrieyWorkspace RAMデータ(命令コード)の読み込み makefileの代わりにsim実行スクリプトを作成します JTAGデバッグ OpenOCDの準備 Open…
vivado AXI APB Brdige につながるAPB slaveへアドレスがassignされない 原因 Vivadoへモジュールのアドレス範囲を教える。 APB slave モジュールのIP化 アドレスサイズの設定 元のvivado側に作成したIPを追加する 参考にしたサイト vivado AXI APB Brdige …
はじめに 課題 フラッシュからITCMへ命令実行を遷移する方法の解析 _vsloader のアドレスの特定 リセット解除後、最初に実行される関数は? リンカはどうやってアドレスを決めているか? ITCM実行部分をSDRAM領域へ差し替えを行う(ソフト面) スタックポイン…
FPGA Sipeed Tang Nano 20KでIP Gowin_PicoRV32を動かす FPGA Sipeed Tang Nano 20KでIP Gowin_PicoRV32を動かす はじめに PicoRV32のインスタンス方法 リファレンスデザインの実装 picorv32_demo.vの修正内容 picorv32.cstの修正内容 PicoRV32のインスタン…
FPGA Sipeed Tang Nano 20KでSDRAMを動かす FPGA Sipeed Tang Nano 20KでSDRAMを動かす はじめに 設計方針 改造内容 バースト転送対応とPrechargeコマンドの投入について Logical side interface仕様 複数の要求元(最大3)に対応 ブロック図 cmd i/f 端子一覧…
FPGA Sipeed Tang Nano 9Kでbmp画像を表示させる フォートビューワ FPGA Sipeed Tang Nano 9Kでbmp画像を表示させる はじめに フォトビューワー(のようなもの)の要件 HDMI表示の流れ ハード構成図(SDカード→PSRAM) PSRAM書き込み側制御回路 ハード構成図(…
FPGA Sipeed Tang Nano 9KでDualPortメモリの作成方法 FPGA Sipeed Tang Nano 9KでDualPortメモリの作成方法 BSRAMとは BSRAMの推論が上手くいかないRTL記述 BSRAMを直置きするとSIMが出来ない RTLから合成でBSRAMが推論されない理由が判明 結論。DualPortメ…
リーズナブルFPGAシリーズのTang Nano 9Kを使ってPSRAMへアクセスしました TERM表示 リーズナブルFPGAシリーズのTang Nano 9Kを使ってPSRAMへアクセスしました 1. PSRAMについて 2. コントローラの実装について PSRAMメモリーインターフェースIPの選択 チャ…
リーズナブルFPGAシリーズのTang Nano 9Kを使ってTFカードスロットにアクセスしました(その2。ソフト設計編) 今回はソフト設計編になります。 SDカードへのアクセスメニューを追加したpicotiny リーズナブルFPGAシリーズのTang Nano 9Kを使ってTFカードス…
リーズナブルFPGAシリーズのTang Nano 9Kを使ってTFカードスロットにアクセスしました(その1。下調べとハード設計編) picotinyへSDカードアクセスメニューを追加した
リーズナブルFPGAシリーズのTang Nano 9Kを使ってHDMI表示させましたまだ、wikiではTangNano 9KではHDMI表示サンプルがなかったのでTangNano 4K版を参考に作成しました。 wikiはこちら wiki.sipeed.com
前回の記事でbit streamの作成まで終わりました。今回はその続きで、実際に信号をキャプチャするところまで記事にします。 前回の記事はこちら spend-carefree.hatenablog.com bit streamの書き込み ILAの操作(信号を取り込みます) PYNQがロジアナになりまし…
背景 実現方法 ロジアナ化するための必要な要素 ロジアナの仕様決め RTLの作成 クロック生成モジュール メインモジュール 合成制約ファイル .xdcの準備 以下に今回作成したxdcファイル"logic_analyzer.xdc"を示します。 Vivadoでの合成作業 終わりに...(記事…
目次 高位合成について 高位合成ブロックのインターフェースについて 高位合成ブロックのインターフェースのSIM 高位合成ブロックのインターフェースの改善 構造体 全体ブロック図 HLSブロックとRTLの結線 最後に 高位合成について xilinx社のVitis HLSではC…
目次 PYNQ-Z1ボードなのでpythonからPL部を動作させたい AXIバス幅を64bitへ改造する Pythonから動かしてみる ILAでAXI信号を観測する 考察 PYNQ-Z1ボードなのでpythonからPL部を動作させたい pythonからPL部のロジックを動かす事が目的ですが、ただ動かすだ…
目次 PYNQ-Z1ボードなのでpythonからPL部を動作させたい DMAを作成する vivadoでの作業 Vitisでの作業 pythonから呼び出し ILAを使ってAXI信号をモニタしてみる PYNQ-Z1ボードなのでpythonからPL部を動作させたい pythonからPL部のロジックを動かす事が目的…
目次 FPGAでOPMを鳴らしてみた(実機編) レシピ クロック決め DAC選定 68K→YM2151バスブリッジ回路(クロック乗り換え必要) 68K→AXIバスブリッジ回路(クロック乗り換え必要) CLK生成モジュール(68Kコアクロックとjt51用クロック生成) DAC駆動用jt51出力→I2S変…
目次 FPGAでOPMを鳴らしてみた OPMドライバと制御用CPUの調達 論理シミュレーションの方針 68Kコアのバスインターフェース JT51のバスインターフェース 割込みコントローラ 68K→YM2151バスブリッジ回路 RAMモデル 68KコアへのDTACKX入力 テストドライバ 動作…
目次 Xilinxの開発環境を学習する vivado環境を整える ボードファイルのインストール チュートリアル 書籍に従い学習 HDMI出力の利用 学習終了 出来るようになった事のまとめ 今後行いたい事 参考書 Xilinxの開発環境を学習する Xilinxの開発環境に初めて触…
目次 FPGAを買いました ブート(動作確認) network接続 端末接続 その他の設定 タイムゾーンの修正 チュートリアルやってみる FPGAを買いました PYNQ-Z1 というボードを購入しました。 これはCortex-A9x2とFPGAが統合されたZynq-7020というSoCが実装されて…