DE0-Nano/JavaRock
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
]
開始行:
[[labs.beatcraft.com]] ~
[[DE0-Nano]] ~
#contents
* DE0-Nano/JavaRock [#ue08de8e]
JavaRock samples 内にある LED サンプルから VHDL を生成...
生成されたVHDLに合わせた Pin 配置を行い全体を合成し Teras...
動作させる手順について記載します。~
~
本稿の大まかな流れは以下のとおりです。~
~
・ホストマシン上の構成 ~
Windows PC 上に Virtul Machine(Ubuntu 12.04LTS、32bit版...
(Ubuntu 12.04LTSのインストールについては本稿では省略しま...
Windows、Ubuntu 上で使用しているアプリケーションの概要に...
~
・ Ubuntu の設定とファイル編集 ~
Ubuntu上での開発ツールのインストールや、DE0-Nano を動作...
記載しています。~
~
・ DE0-Nano への書き込み ~
Ubuntu 上から DE0-Nano の LED を点滅させるまでの手順に...
* ホストマシン上の構成 [#h11f1935]
本稿のホストマシン上の構成について記載します。~
使用する OS と主なアプリケーションは以下のとおりです。~
~
また本稿の作業はほぼ Ubuntu 12.04LTS(32bit版)上で行ってい...
OS: ~
- ホストOS: Windows7 (64bit版) ~
- ゲスト OS: Ubuntu 12.04LTS(32bit版、以降Ubuntuと記載し...
アプリケーション: ~
- VMware Player (Windows、64bit版) ~
- DE0-Nano System Builder (Windows) ~
- Quartus II 12.0sp1 (Ubuntu、以降Quartsと記載します) ~
[[VMware Player:https://my.vmware.com/jp/web/vmware/free#...
ディスク容量は20GBとしています。 ~
[[DE0-Nano System Builder:http://www.terasic.com.tw/cgi-b...
qsf(ピンアサイン等の設定ファイル)を作成するためのアプリケ...
~
また DE0-Nano System Builderは Windows 上でのみ実行可能...
~
[[Quartus:http://www.altera.co.jp/products/software/quart...
~
Quartus は Ubuntu 上にインストールし、本稿でのバージョン...
これは JacaRock を Ubuntu 上でビルドしている事と参考文献...
三好 健文(2013) 『インターフェース ZERO No.4 Hello World...
に記載されている Quartus のバージョンと合わせているためで...
(本稿では Quartus のインストールについては省略します)。~
* Ubuntu の設定とファイル編集 [#wbadc982]
ゲストOSの Ubuntu の設定について記載します。~
** 開発ツールのインストール [#c650a63e]
Ubuntu 上に Quartus をインストールするための開発用ツー...
JavaRock を使用可能にするため OpenJDK をインストールしま...
$ sudo apt-get install build-essential
$ sudo apt-get install openjdk-7-jdk
** udevルールの追加 [#wfe4b458]
DE0-NanoとUbuntuをUSB接続しプログラミング(イメージの転...
Ubuntu 上で認識させるため udev (自動的にデバイスファイル...
USB-Blaster 用ルールファイル /etc/udev/rule.dにを51-usbbl...
~
また追加のみでは動作しないためルールファイル追加後 udev ...
$ sudo vi /etc/udev/rules.d/51-usbblaster.rules
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idV...
ATTRS{idProduct}=="6001", MODE="0666", SYMLINK+="usbbla...
$ sudo udevadm control --reload-rules
** 作業用ファイル・ディレクトリ構成 [#mef9ded6]
本稿の Ubuntu 上で作業・使用する主なファイル・ディレク...
${HOME}
|-- altera/ <- Quartusインストー...
|
`-- JavaRock
|- javarock_20130708.jar <- JavaRock 実行ファ...
`- samples/ <- JavaRock samples_...
|
<snip>
|
|-- de0-nano/ <- DE0-Nano作業用追...
| |- model/ <- DE0-Nano プロジェ...
| | |- test.qpf
| | `- test.qsf
| |
| |- test.java
| `- test.sh
<snip>
|
`-- led/
|- counter.java
`- led.java
** 環境変数設定 [#l417a0e9]
Quartus の起動と JAVAROCK のビルドを実行しやすくするた...
Quartus の PATH と JAVAROCK の実行ファイルへの PATH(JAVAR...
bashrc の末尾に追加します。 ~
$ vi ~/.bashrc
<snip>
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; t...
. /etc/bash_completion
fi
+ export PATH=$PATH:/home/beat/altera/12.0sp1/quartus/bin
+ export JAVAROCK=/home/beat/JavaRock/javarock_20130708....
** 追加ディレクトリ内のファイルについて [#nf792475]
本稿で追加してるファイルの概要は以下のとおりです。 ~
- de0-nano/model/test.qpf: 本稿用の DE0-Nano System Build...
- de0-nano/model/test.qsf : DE0-Nano System Builder 上で ...
JavaRock で生成される vhd ファイルに合わせて編集したもの ~
- de0-nano/test.sh、test.java: samples/test/test.sh、test...
*** test.sh、test.javaの編集について [#b801ac88]
test.java、test.shはそれぞれ以下のように編集しています...
本稿では LED の点滅のみ実行するため、test.java、test.sh ...
LED 以外の部分を削除もしくはコメントアウトしています。 ~
- test.sh
$ diff -upN samples_orig/test/test.sh samples/de0-nano/t...
--- samples_orig/test/test.sh 2013-07-08 07:25:19.0000...
+++ samples/de0-nano/test.sh 2014-05-20 18:30:01.5160...
@@ -1,5 +1,3 @@
-java -cp $JAVAROCK:../led:../sc1602:../echo:. openjdk.c...
+java -cp $JAVAROCK:../led:. openjdk.com.sun.tools.javac...
../led/counter.java ../led/led.java \
- ../sc1602/SC1602Wrapper.java ../sc1602/SC1602Writer.j...
- ../echo/echo.java ./rs232c.java \
test.java
- test.java
$ diff -upN samples_orig/test/test.java samples/de0-nano...
--- samples_orig/test/test.java 2013-07-08 07:25:19.0000...
+++ samples/de0-nano/test.java 2014-05-20 17:38:47.5280...
@@ -3,8 +3,8 @@ import net.wasamon.javarock.rt.*;
@javarockhdl
public class test{
led obj0 = new led();
- echo obj1 = new echo();
- sc1602_test obj2 = new sc1602_test();
+ //echo obj1 = new echo();
+ //sc1602_test obj2 = new sc1602_test();
//VGAJavaTest vga = new VGAJavaTest();
@combination
@@ -15,8 +15,8 @@ public class test{
@auto
public void main(){
obj0.start();
- obj1.start();
- obj2.start();
+ //obj1.start();
+ //obj2.start();
//vga.start();
}
}
*** test.shの実行 [#da6466f1]
上記の設定と修正完了後、test.shを実行しtest.vhd、led.vhd...
de0-nano ディレクトリに作成されていることを確認します。 ~
$ ./test.sh
Compile: counter
Compile: led
Compile: test
pass: connection
pass: bypass
pass: optimization
pass: linkage
pass: generate
$ ls
counter.vhd led.vhd model test.class test.java test...
*** test.qpf、test.qsfについて [#m1ee0efc]
test.qpf、test.qsfの詳細については添付ファイルを参照し...
test.qsf は上記で作成された test.vhd の entity test 内の...
これはデフォルトの test.qsf では test.vhd の Pin と一致せ...
~
また作成された vhd ファイル(test.vhd、led.vhd、counter.vh...
コンパイル時に読み込むよう以下のように変更してください。 ~
~
#ref(test.qpf); ~
#ref(test.qsf); ~
~
- test.vhd(参考用)
entity test is -- net.wasamon.javarock.model.vhdl.VHDLMo...
port (
notify_method_busy : OUT std_logic;
output_port_led : OUT std_logic;
notify_method_request : IN std_logic;
reset : IN std_logic;
clk : IN std_logic
); -- net.wasamon.javarock.model.vhdl.VHDLModule@33117...
- model/test.qsf
#======================================================...
# CLOCK
#======================================================...
-set_location_assignment PIN_R8 -to CLOCK_50
-set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
+set_location_assignment PIN_R8 -to clk
+set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
#======================================================...
# LED
#======================================================...
-set_location_assignment PIN_A15 -to LED[0]
-set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
+set_location_assignment PIN_A15 -to output_port_led
+set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
#======================================================...
# End of pin assignments by Terasic System Builder
#======================================================...
+set_location_assignment PIN_A11 -to reset
+set_instance_assignment -name IO_STANDARD 2.5V -to reset
+set_global_assignment -name VHDL_FILE ../led.vhd
+set_global_assignment -name VHDL_FILE ../counter.vhd
+set_global_assignment -name VHDL_FILE ../test.vhd
+set_global_assignment -name PARTITION_NETLIST_TYPE SOUR...
+set_global_assignment -name PARTITION_FITTER_PRESERVATI...
+set_global_assignment -name PARTITION_COLOR 16764057 -s...
+
+set_global_assignment -name STRATIX_DEVICE_IO_STANDARD ...
+
+
+
+set_instance_assignment -name PARTITION_HIERARCHY root_...
* DE0-Nano への書き込み [#nc2ff26c]
DE0-Nano への作成したファイルの書き込み手順は以下のとおり...
すべて Ubuntu 上で実行しています。 ~
1. Quartus の起動 ~
Ubuntu上でQuartusを起動します。~
作成した Project ファイルのビルドとビルド後のイメージを~
DE0-Nano へのプログラミング(書き込み)に必要です。~
$ quartus
#ref(quartus01.png,,60%); ~
~
2. Projcet ファイルの読み込み ~
Open Project から test.qpf(Projectファイル)の読み込みます...
~
#ref(quartus02.png,,60%); ~
~
3. Projcet のコンパイル ~
メニューバー 「Processing」内 「Start Complication」 を押...
ここで作成した Project 内の各ファイルのコンパイル(分析・...
注: Warning は大量に表示されますが、特に問題ありません。 ~
~
4: Pin 設定の確認 ~
メニューバー「Assignments」内「Pin Planner」を押下すると...
ここで想定どおりの Pin が設定されているか確認してください...
本稿での Pin 設定は以下のとおりです。 ~
~
#ref(quartus04.png,,60%); ~
~
4. Programmer の起動 ~
メニューバー 「Tools」 内 「Programmer」を押下します。 ~
Programmer は作成されたイメージを DE0-Nano にプログラミン...
またどのデバイスで書き込むかも選択します。~
本稿では USB-Blaster を選択します。~
~
仮に No Hardware と表示されている場合、Hardware Settings...
下図のように Currently selected hardware 内の USB-Blaster...
~
注:USB-Blaster の選択が表示されていない場合は再度追加した~
udev ルールファイルを確認してください。 ~
~
#ref(quartus07.png,,60%); ~
~
5. DE0-Nano へのイメージ転送と動作確認 ~
Programeer 内 Startを押下します。~
これで作成されたイメージを DE0-Nano に転送します。~
~
Progress が 100%(Successful)になることを確認し、 ~
その際 DE0-Nano の LED0が点滅を開始することを確認します。 ~
~
#ref(quartus06.png,,60%); ~
~
#ref(javarock.jpg,,20%); ~
~
* 参考文献 [#lf9bf8d9]
三好 健文(2013) 『インターフェース ZERO No.4 Hello World...
~
* 更新履歴 [#tfa5c976]
2014/05/27 参考文献の追加、本文の加筆訂正 ~
2014/05/26 初稿公開 ~
RIGHT:syariten
終了行:
[[labs.beatcraft.com]] ~
[[DE0-Nano]] ~
#contents
* DE0-Nano/JavaRock [#ue08de8e]
JavaRock samples 内にある LED サンプルから VHDL を生成...
生成されたVHDLに合わせた Pin 配置を行い全体を合成し Teras...
動作させる手順について記載します。~
~
本稿の大まかな流れは以下のとおりです。~
~
・ホストマシン上の構成 ~
Windows PC 上に Virtul Machine(Ubuntu 12.04LTS、32bit版...
(Ubuntu 12.04LTSのインストールについては本稿では省略しま...
Windows、Ubuntu 上で使用しているアプリケーションの概要に...
~
・ Ubuntu の設定とファイル編集 ~
Ubuntu上での開発ツールのインストールや、DE0-Nano を動作...
記載しています。~
~
・ DE0-Nano への書き込み ~
Ubuntu 上から DE0-Nano の LED を点滅させるまでの手順に...
* ホストマシン上の構成 [#h11f1935]
本稿のホストマシン上の構成について記載します。~
使用する OS と主なアプリケーションは以下のとおりです。~
~
また本稿の作業はほぼ Ubuntu 12.04LTS(32bit版)上で行ってい...
OS: ~
- ホストOS: Windows7 (64bit版) ~
- ゲスト OS: Ubuntu 12.04LTS(32bit版、以降Ubuntuと記載し...
アプリケーション: ~
- VMware Player (Windows、64bit版) ~
- DE0-Nano System Builder (Windows) ~
- Quartus II 12.0sp1 (Ubuntu、以降Quartsと記載します) ~
[[VMware Player:https://my.vmware.com/jp/web/vmware/free#...
ディスク容量は20GBとしています。 ~
[[DE0-Nano System Builder:http://www.terasic.com.tw/cgi-b...
qsf(ピンアサイン等の設定ファイル)を作成するためのアプリケ...
~
また DE0-Nano System Builderは Windows 上でのみ実行可能...
~
[[Quartus:http://www.altera.co.jp/products/software/quart...
~
Quartus は Ubuntu 上にインストールし、本稿でのバージョン...
これは JacaRock を Ubuntu 上でビルドしている事と参考文献...
三好 健文(2013) 『インターフェース ZERO No.4 Hello World...
に記載されている Quartus のバージョンと合わせているためで...
(本稿では Quartus のインストールについては省略します)。~
* Ubuntu の設定とファイル編集 [#wbadc982]
ゲストOSの Ubuntu の設定について記載します。~
** 開発ツールのインストール [#c650a63e]
Ubuntu 上に Quartus をインストールするための開発用ツー...
JavaRock を使用可能にするため OpenJDK をインストールしま...
$ sudo apt-get install build-essential
$ sudo apt-get install openjdk-7-jdk
** udevルールの追加 [#wfe4b458]
DE0-NanoとUbuntuをUSB接続しプログラミング(イメージの転...
Ubuntu 上で認識させるため udev (自動的にデバイスファイル...
USB-Blaster 用ルールファイル /etc/udev/rule.dにを51-usbbl...
~
また追加のみでは動作しないためルールファイル追加後 udev ...
$ sudo vi /etc/udev/rules.d/51-usbblaster.rules
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idV...
ATTRS{idProduct}=="6001", MODE="0666", SYMLINK+="usbbla...
$ sudo udevadm control --reload-rules
** 作業用ファイル・ディレクトリ構成 [#mef9ded6]
本稿の Ubuntu 上で作業・使用する主なファイル・ディレク...
${HOME}
|-- altera/ <- Quartusインストー...
|
`-- JavaRock
|- javarock_20130708.jar <- JavaRock 実行ファ...
`- samples/ <- JavaRock samples_...
|
<snip>
|
|-- de0-nano/ <- DE0-Nano作業用追...
| |- model/ <- DE0-Nano プロジェ...
| | |- test.qpf
| | `- test.qsf
| |
| |- test.java
| `- test.sh
<snip>
|
`-- led/
|- counter.java
`- led.java
** 環境変数設定 [#l417a0e9]
Quartus の起動と JAVAROCK のビルドを実行しやすくするた...
Quartus の PATH と JAVAROCK の実行ファイルへの PATH(JAVAR...
bashrc の末尾に追加します。 ~
$ vi ~/.bashrc
<snip>
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; t...
. /etc/bash_completion
fi
+ export PATH=$PATH:/home/beat/altera/12.0sp1/quartus/bin
+ export JAVAROCK=/home/beat/JavaRock/javarock_20130708....
** 追加ディレクトリ内のファイルについて [#nf792475]
本稿で追加してるファイルの概要は以下のとおりです。 ~
- de0-nano/model/test.qpf: 本稿用の DE0-Nano System Build...
- de0-nano/model/test.qsf : DE0-Nano System Builder 上で ...
JavaRock で生成される vhd ファイルに合わせて編集したもの ~
- de0-nano/test.sh、test.java: samples/test/test.sh、test...
*** test.sh、test.javaの編集について [#b801ac88]
test.java、test.shはそれぞれ以下のように編集しています...
本稿では LED の点滅のみ実行するため、test.java、test.sh ...
LED 以外の部分を削除もしくはコメントアウトしています。 ~
- test.sh
$ diff -upN samples_orig/test/test.sh samples/de0-nano/t...
--- samples_orig/test/test.sh 2013-07-08 07:25:19.0000...
+++ samples/de0-nano/test.sh 2014-05-20 18:30:01.5160...
@@ -1,5 +1,3 @@
-java -cp $JAVAROCK:../led:../sc1602:../echo:. openjdk.c...
+java -cp $JAVAROCK:../led:. openjdk.com.sun.tools.javac...
../led/counter.java ../led/led.java \
- ../sc1602/SC1602Wrapper.java ../sc1602/SC1602Writer.j...
- ../echo/echo.java ./rs232c.java \
test.java
- test.java
$ diff -upN samples_orig/test/test.java samples/de0-nano...
--- samples_orig/test/test.java 2013-07-08 07:25:19.0000...
+++ samples/de0-nano/test.java 2014-05-20 17:38:47.5280...
@@ -3,8 +3,8 @@ import net.wasamon.javarock.rt.*;
@javarockhdl
public class test{
led obj0 = new led();
- echo obj1 = new echo();
- sc1602_test obj2 = new sc1602_test();
+ //echo obj1 = new echo();
+ //sc1602_test obj2 = new sc1602_test();
//VGAJavaTest vga = new VGAJavaTest();
@combination
@@ -15,8 +15,8 @@ public class test{
@auto
public void main(){
obj0.start();
- obj1.start();
- obj2.start();
+ //obj1.start();
+ //obj2.start();
//vga.start();
}
}
*** test.shの実行 [#da6466f1]
上記の設定と修正完了後、test.shを実行しtest.vhd、led.vhd...
de0-nano ディレクトリに作成されていることを確認します。 ~
$ ./test.sh
Compile: counter
Compile: led
Compile: test
pass: connection
pass: bypass
pass: optimization
pass: linkage
pass: generate
$ ls
counter.vhd led.vhd model test.class test.java test...
*** test.qpf、test.qsfについて [#m1ee0efc]
test.qpf、test.qsfの詳細については添付ファイルを参照し...
test.qsf は上記で作成された test.vhd の entity test 内の...
これはデフォルトの test.qsf では test.vhd の Pin と一致せ...
~
また作成された vhd ファイル(test.vhd、led.vhd、counter.vh...
コンパイル時に読み込むよう以下のように変更してください。 ~
~
#ref(test.qpf); ~
#ref(test.qsf); ~
~
- test.vhd(参考用)
entity test is -- net.wasamon.javarock.model.vhdl.VHDLMo...
port (
notify_method_busy : OUT std_logic;
output_port_led : OUT std_logic;
notify_method_request : IN std_logic;
reset : IN std_logic;
clk : IN std_logic
); -- net.wasamon.javarock.model.vhdl.VHDLModule@33117...
- model/test.qsf
#======================================================...
# CLOCK
#======================================================...
-set_location_assignment PIN_R8 -to CLOCK_50
-set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
+set_location_assignment PIN_R8 -to clk
+set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
#======================================================...
# LED
#======================================================...
-set_location_assignment PIN_A15 -to LED[0]
-set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
+set_location_assignment PIN_A15 -to output_port_led
+set_instance_assignment -name IO_STANDARD "3.3-V LVTTL"...
#======================================================...
# End of pin assignments by Terasic System Builder
#======================================================...
+set_location_assignment PIN_A11 -to reset
+set_instance_assignment -name IO_STANDARD 2.5V -to reset
+set_global_assignment -name VHDL_FILE ../led.vhd
+set_global_assignment -name VHDL_FILE ../counter.vhd
+set_global_assignment -name VHDL_FILE ../test.vhd
+set_global_assignment -name PARTITION_NETLIST_TYPE SOUR...
+set_global_assignment -name PARTITION_FITTER_PRESERVATI...
+set_global_assignment -name PARTITION_COLOR 16764057 -s...
+
+set_global_assignment -name STRATIX_DEVICE_IO_STANDARD ...
+
+
+
+set_instance_assignment -name PARTITION_HIERARCHY root_...
* DE0-Nano への書き込み [#nc2ff26c]
DE0-Nano への作成したファイルの書き込み手順は以下のとおり...
すべて Ubuntu 上で実行しています。 ~
1. Quartus の起動 ~
Ubuntu上でQuartusを起動します。~
作成した Project ファイルのビルドとビルド後のイメージを~
DE0-Nano へのプログラミング(書き込み)に必要です。~
$ quartus
#ref(quartus01.png,,60%); ~
~
2. Projcet ファイルの読み込み ~
Open Project から test.qpf(Projectファイル)の読み込みます...
~
#ref(quartus02.png,,60%); ~
~
3. Projcet のコンパイル ~
メニューバー 「Processing」内 「Start Complication」 を押...
ここで作成した Project 内の各ファイルのコンパイル(分析・...
注: Warning は大量に表示されますが、特に問題ありません。 ~
~
4: Pin 設定の確認 ~
メニューバー「Assignments」内「Pin Planner」を押下すると...
ここで想定どおりの Pin が設定されているか確認してください...
本稿での Pin 設定は以下のとおりです。 ~
~
#ref(quartus04.png,,60%); ~
~
4. Programmer の起動 ~
メニューバー 「Tools」 内 「Programmer」を押下します。 ~
Programmer は作成されたイメージを DE0-Nano にプログラミン...
またどのデバイスで書き込むかも選択します。~
本稿では USB-Blaster を選択します。~
~
仮に No Hardware と表示されている場合、Hardware Settings...
下図のように Currently selected hardware 内の USB-Blaster...
~
注:USB-Blaster の選択が表示されていない場合は再度追加した~
udev ルールファイルを確認してください。 ~
~
#ref(quartus07.png,,60%); ~
~
5. DE0-Nano へのイメージ転送と動作確認 ~
Programeer 内 Startを押下します。~
これで作成されたイメージを DE0-Nano に転送します。~
~
Progress が 100%(Successful)になることを確認し、 ~
その際 DE0-Nano の LED0が点滅を開始することを確認します。 ~
~
#ref(quartus06.png,,60%); ~
~
#ref(javarock.jpg,,20%); ~
~
* 参考文献 [#lf9bf8d9]
三好 健文(2013) 『インターフェース ZERO No.4 Hello World...
~
* 更新履歴 [#tfa5c976]
2014/05/27 参考文献の追加、本文の加筆訂正 ~
2014/05/26 初稿公開 ~
RIGHT:syariten
ページ名:
BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。