久々に確認したらllvmがバージョン 7になっていた。
手持ちのARM clang クロスコンパイラはバージョン3.8ベース。
大分最新から古くなっているので再度作成することにする。
■作成対象
自作OSのビルドが目的なので
target-triple が arm-none-eabi のbaremetal ARMクロスコンパイラ
■インストール先
/opt/arm-none-eabi-clang
■ソースコード一式展開
Getting startedに従ってllvm本体とclang, lldそれぞれのソースコードを展開する。
libcxxはOSのライブラリ依存だが、独自OSにはそれがまだ無いのでこの時点では導入しない。
compiler-rtはLLVM/Clangのビルドとは別に独立して行うのでllvmソースツリー内に展開しない。
■ビルド
(clang+llvm)
cmake
<llvm-7.0.0.src path> -DCMAKE_CROSSCOMPILING=True
-DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=ARM
-DCMAKE_INSTALL_PREFIX=/opt/arm-none-eabi-clang -DLLVM_TARGET_ARCH=ARM
-DLLVM_DEFAULT_TARGET_TRIPLE=arm-none-eabi -DCLANG_DEFAULT_LINKER=lld
-DCLANG_DEFAULT_RTLIB=compiler-rt
-DDEFAULT_SYSROOT=/opt/arm-none-eabi-clang
2018年9月20日木曜日
2018年3月27日火曜日
Zynqberry FPGA開発
開発環境構築からの続き
■参考サイト
ZynqBerryチュートリアル
■プロジェクトの作成
リファレンスデザインソースに生成されたvivado_create_project_guimode.cmdを実行する。いろいろとログが出力された後に下記のVivado開発環境が立ち上がる。
■IP編集
左メニューの[Flow Navigator]-[IP INTEGRATOR]-[Open Block Design]を選択する。
下記のように初期設定のブロック図が表示される。
自作IPの作成方針として理解したのは2通り。1つはAXI4対応IPとする方法、もう1つは汎用IPとして作成しAXI4-GPIOと接続する方法。
いずれにしてもAXI4と接続しないとARMのアドレス空間経由で操作できない。
①AXI4対応IP作成方法
上部メニューの[Tools]-[Create And Package New IP]を選択する。
下記ダイアログにおいて「Create a new AXI4 peripheral」を選択しNext。
Peripheral Detail画面が表示されるのでIPの名前や保存場所を指定する。
別ウィンドウでIPのサブプロジェクトが開けば成功
成功するとAXI I/Fドライバのひな型とC言語のドライバスタブが生成される。
Sourcesウィンドウの[Design Sources]-[IP名]を選択するとVHDLのコードが生成されているのがわかる。
エディタで開いて最下部に「Add user logic here」と記載されているところに自分のロジックを組み込めばOK。
②自作汎用IPの組み込み
[PROJECT MANAGER]-[Add Sources]し、ダイアログから[Add or create design sources]を選択する。
下部の[Create File]ボタンを押して作成するHDLソースファイルを指定する。
File TypeにHDLの種類(VHDL, Verilog, SystemVerilogなど)、File nameにソースファイル名を指定する。
次の画面で入出力ポートを設定すると自動でソースファイルのひな型が生成される。
■プロジェクト設定
自作IP毎のサブプロジェクト作成について
デフォルトでは編集時にサブプロジェクトを作成し、編集後に自動で削除されるようになっている。
毎回サブプロジェクトを作成、削除するのが手間であれば自動削除しないように設定できる。
左メニュー[Flow Navigator]-[PROJECT MANAGER]-[Setting]から[Project Setting]-[IP]-[Packager]を選択する。
設定画面の[Delete project after packaging]のチェックを外すと自動削除を無効にできる。
■参考サイト
ZynqBerryチュートリアル
■プロジェクトの作成
リファレンスデザインソースに生成されたvivado_create_project_guimode.cmdを実行する。いろいろとログが出力された後に下記のVivado開発環境が立ち上がる。
■IP編集
左メニューの[Flow Navigator]-[IP INTEGRATOR]-[Open Block Design]を選択する。
下記のように初期設定のブロック図が表示される。
自作IPの作成方針として理解したのは2通り。1つはAXI4対応IPとする方法、もう1つは汎用IPとして作成しAXI4-GPIOと接続する方法。
いずれにしてもAXI4と接続しないとARMのアドレス空間経由で操作できない。
①AXI4対応IP作成方法
上部メニューの[Tools]-[Create And Package New IP]を選択する。
下記ダイアログにおいて「Create a new AXI4 peripheral」を選択しNext。
Peripheral Detail画面が表示されるのでIPの名前や保存場所を指定する。
別ウィンドウでIPのサブプロジェクトが開けば成功
成功するとAXI I/Fドライバのひな型とC言語のドライバスタブが生成される。
Sourcesウィンドウの[Design Sources]-[IP名]を選択するとVHDLのコードが生成されているのがわかる。
エディタで開いて最下部に「Add user logic here」と記載されているところに自分のロジックを組み込めばOK。
②自作汎用IPの組み込み
[PROJECT MANAGER]-[Add Sources]し、ダイアログから[Add or create design sources]を選択する。
下部の[Create File]ボタンを押して作成するHDLソースファイルを指定する。
File TypeにHDLの種類(VHDL, Verilog, SystemVerilogなど)、File nameにソースファイル名を指定する。
次の画面で入出力ポートを設定すると自動でソースファイルのひな型が生成される。
■プロジェクト設定
自作IP毎のサブプロジェクト作成について
デフォルトでは編集時にサブプロジェクトを作成し、編集後に自動で削除されるようになっている。
毎回サブプロジェクトを作成、削除するのが手間であれば自動削除しないように設定できる。
左メニュー[Flow Navigator]-[PROJECT MANAGER]-[Setting]から[Project Setting]-[IP]-[Packager]を選択する。
設定画面の[Delete project after packaging]のチェックを外すと自動削除を無効にできる。
2018年3月19日月曜日
Zynqberry FPGA開発環境構築
■手順概要
■リファレンスデザインのダウンロード
Trenz electronic Zynqberryダウンロードサイト
ここからリファレンスデザインをダウンロードする
2018/3時点で最新バージョンは2017.4
te0726-test_board-vivado_2017.4-build_06_20180216205357.zip
これを適当なフォルダに展開する。
空白を含まないフォルダパスが望ましい。
■Xilinx Vivadoのインストール
リファレンスデザインの対象バージョンが2017.4なのでVivadoも同じバージョンをダウンロード、インストールする。
バージョンが合っていないと論理合成できないことがある
またインストールするフォルダはデフォルトのC:\Xilinxが望ましい。
リファレンスデザインのプロジェクト作成batファイルがC:\Xilinxにインストールされているのを前提にしているため
■リファレンスデザインの展開
ダウンロードしたリファレンスデザインを解凍すると直下に_create_win_setup.cmdというスクリプトがある。
これをコマンドプロンプトから実行
-------------------------TE Reference Design---------------------------
--------------------------------------------------------------------
-- (c) Go to CMD-File Generation (Manual setup)
-- (d) Go to Documentation (Web Documentation)
-- (x) Exit Batch (nothing is done!)
-- (0) Create minimum setup of CMD-Files and exit Batch
-- (1) Create maximum setup of CMD-Files and exit Batch
----
Select (ex.:'0' for min setup):
このような選択が表示されるので1を選択する。
するとプロジェクト作成に必要なスクリプト群が生成される。
■プロジェクト対象ボードの選択
生成されたスクリプト群にあるdesign_basic_setting.cmdを編集する。
(編集箇所)
@set PARTNUMBER=LAST_ID
LAST_IDを手持ちのボードに合わせる。選択できるボードの種類はboard_filesディレクトリのTE0726_board_files.csvに記載されている。
ここでは手元にあるte0726-03mを選択しておく。
LAST_IDのままにしておくと自動的にte0726-03-07s-1cが選択されたことになる。
@set SWAPP=NA
NAを作成するプロジェクト名に変える
■プロジェクトの作成
生成されたスクリプト群の中からvivado_create_project_guimode.cmdを実行する。
するとzynqberryのハード設定で初期化された状態でVivadoアプリケーションが立ち上がる。
立ち上がったらメニューのFile->Save Project Asで好きな場所に保存する。
以降はこのプロジェクトを編集して回路設計と合成を行う
- リファレンスデザインのダウンロード
- Xilinx Vivadoのインストール
- プロジェクトの作成
■リファレンスデザインのダウンロード
Trenz electronic Zynqberryダウンロードサイト
ここからリファレンスデザインをダウンロードする
2018/3時点で最新バージョンは2017.4
te0726-test_board-vivado_2017.4-build_06_20180216205357.zip
これを適当なフォルダに展開する。
空白を含まないフォルダパスが望ましい。
■Xilinx Vivadoのインストール
リファレンスデザインの対象バージョンが2017.4なのでVivadoも同じバージョンをダウンロード、インストールする。
バージョンが合っていないと論理合成できないことがある
またインストールするフォルダはデフォルトのC:\Xilinxが望ましい。
リファレンスデザインのプロジェクト作成batファイルがC:\Xilinxにインストールされているのを前提にしているため
■リファレンスデザインの展開
ダウンロードしたリファレンスデザインを解凍すると直下に_create_win_setup.cmdというスクリプトがある。
これをコマンドプロンプトから実行
-------------------------TE Reference Design---------------------------
--------------------------------------------------------------------
-- (c) Go to CMD-File Generation (Manual setup)
-- (d) Go to Documentation (Web Documentation)
-- (x) Exit Batch (nothing is done!)
-- (0) Create minimum setup of CMD-Files and exit Batch
-- (1) Create maximum setup of CMD-Files and exit Batch
----
Select (ex.:'0' for min setup):
このような選択が表示されるので1を選択する。
するとプロジェクト作成に必要なスクリプト群が生成される。
■プロジェクト対象ボードの選択
生成されたスクリプト群にあるdesign_basic_setting.cmdを編集する。
(編集箇所)
@set PARTNUMBER=LAST_ID
LAST_IDを手持ちのボードに合わせる。選択できるボードの種類はboard_filesディレクトリのTE0726_board_files.csvに記載されている。
ここでは手元にあるte0726-03mを選択しておく。
LAST_IDのままにしておくと自動的にte0726-03-07s-1cが選択されたことになる。
@set SWAPP=NA
NAを作成するプロジェクト名に変える
■プロジェクトの作成
生成されたスクリプト群の中からvivado_create_project_guimode.cmdを実行する。
するとzynqberryのハード設定で初期化された状態でVivadoアプリケーションが立ち上がる。
立ち上がったらメニューのFile->Save Project Asで好きな場所に保存する。
以降はこのプロジェクトを編集して回路設計と合成を行う
登録:
投稿 (Atom)