FPGAの部屋 2024年04月
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Efinity RISC-V Embedded Software IDE で新規プロジェクトを作成する2

Efinity RISC-V Embedded Software IDE で新規プロジェクトを作成する1”の続き。

Efinity RISC-V Embedded Software IDE で新規プロジェクトを作成して、動作させてみようということで、前回は、Efinity RISC-V Embedded Software IDE で新規プロジェクトを作成し、C ソースコードを追加して、ビルドし成功した。今回は、Run Configuration を作成し、Run を行った。OpenOCD が起動して、アプリケーション・ソフトウェアを起動して、実行することができた。

Efinity RISC-V Embedded Software IDE で左の Project Explorer の gpioDemo3 を右クリックし、右クリックメニューから Run As -> Run Configurations... を選択した。
Efinity_264_L240429.png

Run Configuration ダイアログが表示された。
すでに 3 個の Run Configuration が生成されていた。
gpioDemo3_softTap, gpioDemo3_ti, gpioDemo3_trion
gpioDemo3_trion をクリックして、Main タブの内容を見てみよう。
Efinity_262_L240429.png

Debugger タブをクリックした。
こちらも設定が終了しているし、パスがちゃんと入っている。
Efinity_263_L240429.png

Xyloni Development Kit を USB ケーブルで Ubuntu 22.04 のパソコンに接続した。
GTKTerm を起動した。
Configuration メニューの Port から設定を行った。
Configuration ダイアログが表示された。
Port を /dev/ttyUSB2 に設定した。
Baud Rate は 115200 bps に、Parity は none に、Bits は 8 bits に、Stopbits は 1 bit に、Flow control は none に設定した。

Efinity RISC-V Embedded Software IDE の Run Configuration で Run ボタンをクリックして、アプリケーション・ソフトウェアを起動した。

OpenOCD が起動した。
Efinity_264_L240429.png

GTKTerm を見ると、Efinity RISC-V Embedded Software IDE で

gpio 0 demo !
onboard LEDs blinking

が表示されて、4 個の LED が点滅した。

その後、LED の点滅が消えて、

gpio 0 interrupt demo !
Ti180 press and release onboard button sw4
Ti60 press and release onboard button sw6
T120 press and release onboard button sw7

が表示された。
Efinity_265_L240429.png

Xyloni Development Kit の BTN1 を押すと、もう一度、LED の点滅が始まった。GTKTerm の表示も同様だった。
Efinity_266_L240429.png

OpenOCD を終了する。
Efinity RISC-V Embedded Software IDE の Console タブで Terminate ボタンをクリックして、OpenOCD をシャットダウンした。
  1. 2024年04月30日 04:26 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

Efinity RISC-V Embedded Software IDE で新規プロジェクトを作成する1

今まで、Efinity RISC-V Embedded Software IDE でサンプル・プロジェクトをやってきたが、一度も新規プロジェクトを作成して、動作させたことがない。Efinity RISC-V Embedded Software IDE で新規プロジェクトを作成する手順を確認しよう。

使用しているパソコンの OS は Ubuntu 22.204 である。
Efinity RISC-V Embedded Software IDE を起動した。
Efinity RISC-V Embedded Software IDE の File メニューから New -> Project を選択した。
Efinity_250_L240429.png

New Project ダイアログが表示された。
Efinix Project -> Efinix Makefile Project を選択し、Next > ボタンをクリックした。
Efinity_251_L240429.png

New Efinix Makefile Project Wizard ダイアログ表示された。
Projec type は Standalone のままとした。
Project name に名前を入力する。
Efinity_252_L240429.png

Project name に gpioDemo3 を入力した。
BSP location の Brows... ボタンをクリックした。
Efinity_253_L240429.png

BSP location ダイアログが表示された。
/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/bsp を選択し、”開く”ボタンをクリックした。
Efinity_254_L240429.png

BSP location が入力された。
Project location も /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone が入力されている。
Finish ボタンをクリックした。
Efinity_255_L240429.png

Efinity RISC-V Embedded Software IDE に gpioDemo3 プロジェクトが生成された。
gpioDemo3.c も return するだけのコードが生成されていた。
Efinity_256_L240429.png

gpioDemo3.c に /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/gpioDemo/src/main.c のコードをコピーしたのだが、このままでは、1 番めの LED が表示されなかったため、0xe を 0xf に書き換えた。
Efinity_257_L240429.png

トンカチ・ボタンをクリックして、ビルドを行うとエラーになった。
init() 関数の csr_write(mtvec, trap_entry); の trap_entry が無いと言われているようだ。
ログを示す。

08:25:53 **** Build of configuration Default for project gpioDemo3 ****
make all
CC src/gpioDemo3.c
CC ../common/start.S
LD gpioDemo3
Memory region Used Size Region Size %age Used
/media/masaaki/Ubuntu_Disk/Efinity/efinity-riscv-ide-2023.2/toolchain/bin/../lib/gcc/riscv-none-embed/8.3.0/../../../../riscv-none-embed/bin/ld: build/obj_files/gpioDemo3.o: in function `init':
ram: 2800 B 4 KB 68.36%
/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/gpioDemo3//src/gpioDemo3.c:63: undefined reference to `trap_entry'
/media/masaaki/Ubuntu_Disk/Efinity/efinity-riscv-ide-2023.2/toolchain/bin/../lib/gcc/riscv-none-embed/8.3.0/../../../../riscv-none-embed/bin/ld: /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/gpioDemo3//src/gpioDemo3.c:63: undefined reference to `trap_entry'
collect2: error: ld returned 1 exit status
make: *** [../common/standalone.mk:31: build/gpioDemo3.elf] エラー 1
"make all" terminated with exit code 2. Build might be incomplete.

08:25:54 Build Failed. 4 errors, 0 warnings. (took 1s.116ms)


そこで、

csr_write(mtvec, trap);

に書き換えた。多分、割り込みルーチンを設定しているところなんだろう?と思う。
Efinity_259_L240429.png

もう一度、トンカチ・ボタンをクリックして、ビルドを行った。
今度はビルドが成功した。
Efinity_260_L240429.png
  1. 2024年04月29日 10:37 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

Sapphire SoC の userTimerDemo で Efinity の BRAM Initial Content Updater を使ってみたがうまく行かない

Sapphire SoC の userTimerDemo をやってみる4(OpenOCD で userTimerDemo プロジェクトを実行)”で Efinity RISC-V Embedded Software IDE からアプリケーションの userTimerDemo.elf ファイルを Xyloni Development Kit の Sapphire SoC にロードして実行することができた。しかし、このソフトウェアは電源ON 時に実行して欲しい。というときに使用するのが、BRAM Initial Content Updater だそうだ。この機能を使ってみたいということで、やってみたのだが、Ubuntu 22.04 パソコンの場合は、BRAM Initial Content Updater で Update memory contentボタンをクリックすると Efinity が落ちてしまった。

BRAM Initial Content Updater の情報は、”Efinity® Software User Guide UG-EFN-SOFTWARE-v13.5 April 2024”の 87 ページの”About the BRAM Initial Content Updater”にある。この情報をもとにやってみよう。

まずは、Efinity の --optimize-zero-init-rom を 0 にする必要があるそうだ。
Efinity の File メニューから Edit Project... を選択した。
Project Editor ダイアログが起動した。
Synthesis タブをクリックした。
--optimize-zero-init-rom が 1 になっていた。
Efinity_244_L240428.png

--optimize-zero-init-rom の 1 の部分をダブルクリックし、出てきた下向き三角をクリックして、0 に変更した。
Efinity_245_L240428.png

--optimize-zero-init-rom が 0 になった。
Efinity_246_L240428.png

OK ボタンをクリックして Project Editor ダイアログを終了した。

Efinity で論理合成、Place & Route、ビットファイルの生成を行った。
Efinity_247_L240428.png

Open BRAM Initial Content Updater をクリックして、BRAM Initial Content Updater を起動した。
Efinity_238_L240428.png

BRAM Initial Content Updater が起動した。
Select Memory Initialization File ボタンをクリックして、hex ファイルを指定する。
Efinity_239_L240428.png

/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/userTimerDemo/build/userTimerDemo.hex を指定した。
Efinity_240_L240428.png

sapphire0_inst/u_EfxSapphireSoc/system_ramA_logic/ram_symbol0 をクリックした。
Update Memory Content ボタンをクリックした。
Efinity_248_L240428.png

Update Memory Content ボタンをクリックすると Efinity がコアダンプで落ちてしまった。orz
Efinity_249_L240428.png
  1. 2024年04月28日 05:35 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

Sapphire SoC の userTimerDemo をやってみる4(OpenOCD で userTimerDemo プロジェクトを実行)

Sapphire SoC の userTimerDemo をやってみる3(Efinity RISC-V Embedded Software IDE で userTimerDemo プロジェクトを作成しビルド)”の続き。

Github の Xyloni soc_sap_t8 に Timer0 を追加して userTimerDemo をやってみようということで、前回は、Efinity RISC-V Embedded Software IDE を起動して、userTimerDemo プロジェクトを作成し、インクルードファイルやシンボルファイルをインポートして、ビルドを行い成功した。
今回は、Run Configuration を作成して、ソフトウェアを実行し、タイマー割り込みで UART に”user timer 0 interrupt routine”の表示を出すことができた。

Efinity RISC-V Embedded Software IDE で左の Project Explorer の userTimerDemo を右クリックし、右クリックメニューから Run As -> Run Configurations... を選択した。
Efinity_231_L240427.png

Run Configuration ダイアログが表示された。
Create, manage, and run configuration 画面

GDB OpenOCD Debugging を右クリックし、右クリックメニューから New Configuration を選択した。(実際には、出来あがった Run Configuration の userTimerDemo が存在する)
Efinity_232_L240427.png

Main タブ
Project に uartEchoDemo が入っていた。
C/C++ Application の Browse... ボタンをクリックして、media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/userTimerDemo/build/userTimerDemo.elf を選択した。
Efinity_237_L240427.png

Debugger タブをクリックした。
OpenOCD Setup の Executable path の Browse... ボタンをクリックしなくても、C:\Efinity\efinity-riscv-ide-2023.2\openocd\bin\openocd.exe が選択されていた。uartEchoDemo で Run Configuration をすでに作成済みだったからだと思う。

GDB Client Setup の Executable path の Browse... ボタンをクリックしなくても、C:\Efinity\efinity-riscv-ide-2023.2\toolchain\bin\riscv-none-embed-gdb.exe を選択した。

Apply ボタンをクリックした。
Efinity_233_L240427.png

GTKTerm を起動した。
Configuration メニューの Port から設定を行った。
Configuration ダイアログが表示された。
Port を /dev/ttyUSB2 に設定した。
Baud Rate は 115200 bps に、Parity は none に、Bits は 8 bits に、Stopbits は 1 bit に、Flow control は none に設定した。
Efinity_234_L240427.png

Run Configuration で Run ボタンをクリックし、ソフトウェアを起動した。
GTKTerm の画面に定期的に”user timer 0 interrupt routine ”が表示された。成功だ。
Efinity_236_L240427.png

Efinity RISC-V Embedded Software IDE の様子を示す。OpenOCD が起動している。
Efinity_235_L240427.png
  1. 2024年04月27日 14:59 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

Sapphire SoC の userTimerDemo をやってみる3(Efinity RISC-V Embedded Software IDE で userTimerDemo プロジェクトを作成しビルド)

Sapphire SoC の userTimerDemo をやってみる2(Timer0 を追加した Sapphire SoC を Xyloni にコンフィギュレーション)”の続き。

Github の Xyloni soc_sap_t8 に Timer0 を追加して userTimerDemo をやってみようということで、前回は、Efinity Programmer を起動して、Timer0 を追加した Sapphire SoC を Xyloni Development Kit にコンフィギュレーションした。今回は、Efinity RISC-V Embedded Software IDE を起動して、userTimerDemo プロジェクトを作成し、インクルードファイルやシンボルファイルをインポートして、ビルドを行い成功した。

使用してる OS は Ubuntu 22.04 だ。

efinity-riscv-ide-2023.2/Efinity-RISCV-IDE/efinity-riscv-ide/efinity-riscv-ide をダブルクリックした。

Efinity RISC-V Embedded Software IDE Launcher ダイアログが表示された。
Workspace の Brows... ボタンをクリックした。
Select Workspace Directory ダイアログが開いた。
xyloni/design/soc_sap_t8/embedded_sw/sapphire0 をワークスペースとして指定した。
”開く”ボタンをクリックして終了した。
Efinity_220_L240425.png

Efinity RISC-V Embedded Software IDE Launcher ダイアログの Launch ボタンをクリックした。
Efinity RISC-V Embedded Software IDE が表示された。

File メニューから New -> Makefile Project with Existing Code を選択した。
Efinity_211_L240424.png

New Project ダイアログが表示された。
Brows... ボタンをクリックし、/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/userTimerDemo ディレクトリを選択し、”開く”ボタンをクリックした。
Finish ボタンをクリックした。
Efinity_212_L240424.png

userTImeDemo プロジェクトが生成された。
Efinity_213_L240424.png

main.c を開いた。
Efinity_221_L240425.png

インクルードファイルとシンボルファイルをインポートする。

左のウインドウの userTimerDemo を右クリックし、右クリックメニューから import... を選択した。

Import ダイアログが表示された。
C/C++ を展開して、C/C++ Project Settings を選択した。
Next > ボタンをクリックした。
Efinity_222_L240425.png

Select Project で userTimerDemo をクリックして、選択した。
Settings file の Brows... ボタンをクリックした。
Efinity_223_L240425.png

ダイアログが表示された。
xyloni/design/soc_sap_t8/embedded_sw/sapphire0/config/project_settings_soc.xml を選択した。
”開く”ボタンをクリックした。

Select settings to import に Include Paths と # Symbols が入っている。
Finish ボタンをクリックした。
Efinity_224_L240425.png

Efinity RISC-V Embedded Software IDE に戻った。
userTimerDemo の下に Includes ディレクトリが増えている。
Efinity_225_L240425.png

トンカチ・ボタンをクリックしてビルドを行った。
ビルドが成功した。
Efinity_226_L240425.png
  1. 2024年04月26日 04:16 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

Sapphire SoC の userTimerDemo をやってみる2(Timer0 を追加した Sapphire SoC を Xyloni にコンフィギュレーション)

Sapphire SoC の userTimerDemo をやってみる1(Efinity で Sapphire SoC に Timer0 を追加)”の続き。

Github の Xyloni soc_sap_t8 に Timer0 を追加して userTimerDemo をやってみようということで、前回は、Efinity 2023.2 で soc_sap_t8 の sapphire0 を編集して Timer0 を追加し、論理合成、Place & Route、ビットファイルの生成を行った。今回は、Efinity Programmer を起動して、Timer0 を追加した Sapphire SoC を Xyloni Development Kit にコンフィギュレーションした。

Efinity 2023.2 で Tools メニューから Open Programmer を選択して、Efinity Programmer を起動した。

Efinity Programmer が起動した。
Select Image File ボタンをクリックした。
Efinity_227_L240425.png

Open Image File ダイアログが表示された。
/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/outflow/soc_sap_t8.hexファイルを選択して、Open ボタンをクリックした。

Programming Mode を SPI Active モードに変更する。
Efinity_228_L240425.png

Programming Mode を SPI Active モードに変更した。
Xyloni Development Kit を USB ケーブルで Ubuntu 22.04 のパソコンに接続した。
Start Program ボタンをクリックし、HEX ファイルを Xyloni Development Kit に書き込んだ。
Efinity_229_L240425.png

HEX ファイル形式の FPGA のビットストリームを Xyloni Development Kit に書き込んだ。
Efinity_230_L240425.png
  1. 2024年04月25日 08:25 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

Sapphire SoC の userTimerDemo をやってみる1(Efinity で Sapphire SoC に Timer0 を追加)

Xyloni Development Kit を使ってみる16(soc_sap_t8 をやってみる8)”で Sapphire SoC で uartEchoDemo を実行することができた。今度は、userTimerDemo をやってみたいということで、Efinity 2023.2 で soc_sap_t8 の sapphire0 を編集して Timer0 を追加し、論理合成、Place & Route、ビットファイルの生成を行った。

Efinity 2023.2 を起動して、soc_sap_t8 プロジェクトを開く。

Project タブの IP の sapphire0 を右クリックし、右クリックメニューから Configure を選択した。
Efinity_214_L240424.png

sapphire0 の IP Configuration ダイアログが開いた。
Timer タブをクリックし、User Timer 0 の Include the Timer 0. のチェックボックスをチェックした。
チェックすると下に項目が増えた。増えた項目はデフォルトのままとした。
Generate ボタンをクリックした。
Efinity_215_L240424.png

Review generation configuration ダイアログが表示された。
Generate ボタンをクリックした。
Efinity_216_L240424.png

Generation Success ダイアログが表示された。
OK ボタンをクリックした。
Efinity_217_L240424.png

Synthesize ボタンをクリックして、論理合成、Place & Route 、ビットファイルの生成を行った。
Efinity_218_L240424.png

論理合成、Place & Route 、ビットファイルの生成が終了した。
Efinity_219_L240424.png

論理合成のレポートファイル、soc_sap_t8.map.rpt の一部を示す。

### ### Resource Summary (begin) ### ### ### 
INPUT  PORTS    :   33
OUTPUT PORTS    :   51

EFX_ADD         :   717
EFX_LUT4        :   3881
   1-2  Inputs  :   767
   3    Inputs  :   1535
   4    Inputs  :   1579
EFX_MULT        :   4
EFX_FF          :   3247
EFX_RAM_5K      :   18
EFX_GBUFCE      :   2
### ### Resource Summary (end) ### ### ###


Place のレポート、soc_sap_t8.place.rpt の一部を示す。

---------- Resource Summary (begin) ----------
Inputs: 31 / 96 (32.29%)
Outputs: 63 / 223 (28.25%)
Clocks: 2 / 16 (12.50%)
Logic Elements: 6193 / 7384 (83.87%)
    LE: LUTs/Adders: 4600 / 7384 (62.30%)
    LE: Registers: 3247 / 5280 (61.50%)
Memory Blocks: 18 / 24 (75.00%)
Multipliers: 4 / 8 (50.00%)
---------- Resource Summary (end) ----------


Route のレポート、soc_sap_t8.timing.rpt の Clock Frequency Summary を示す。

---------- 1. Clock Frequency Summary (begin) ----------

User target constrained clocks
  Clock Name   Period (ns)  Frequency (MHz)    Waveform        Targets
io_systemClk      50.090        19.964      {0.000 25.045} {io_systemClk}  
jtag_inst1_TCK   166.670         6.000      {0.000 83.335} {jtag_inst1_TCK}

Maximum possible analyzed clocks frequency
  Clock Name   Period (ns)  Frequency (MHz)     Edge
io_systemClk      40.623        24.617         (R-R)
jtag_inst1_TCK    41.008        24.385         (F-R)

Geomean max period: 40.815

---------- Clock Frequency Summary (end) ---------------

  1. 2024年04月24日 08:41 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる16(soc_sap_t8 をやってみる8)

Xyloni Development Kit を使ってみる14(soc_sap_t8 をやってみる6)”の途中から続く。

Xyloni Development Kit を使ってみる14(soc_sap_t8 をやってみる6)”の Import Launch Configuration をキャンセルして、Include Paths と # Symbols をインポートした後から続けてやってみる。

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Run As -> Run Configuration を選択した。

Run Configuration ダイアログが表示された。
Create, manage, and run configuration 画面

GDB OpenOCD Debugging を右クリックし、右クリックメニューから New Configuration を選択する。(もうすでに userEchoDemo Default があるのは愛嬌として、許してください。今からこの userEchoDemo Default を作成します)
Efinity_204_L240422.png

C/C++ Application の Brows... ボタンをクリックした。

xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/uartEchoDemo/build/uartEchoDemo.elf を選択した。
”開く”ボタンをクリックした。

C/C++ Application にフルパスの uartEchoDemo.elf が入った。
Efinity_205_L240422.png

OpenOCD Setup の Executable path の Browse... ボタンをクリックして、/media/masaaki/Ubuntu_Disk/Efinity/efinity-riscv-ide-2023.2/openocd/bin/openocd を選択した。

GDB Client Setup の Executable path の Browse... ボタンをクリックして、/media/masaaki/Ubuntu_Disk/Efinity/efinity-riscv-ide-2023.2/toolchain/bin/riscv-none-embed-gdb を選択した。

Apply ボタンをクリックした。

Xyloni Development Kit を USB ケーブルで Ubuntu 22.04 のパソコンに接続した。

Run ボタンをクリックした。
Efinity_206_L240422.png

GTKTerm を起動して、Configuration メニューの Port から設定を行う。
Configuration ダイアログが表示された。
Port を /dev/ttyUSB2 に設定した。
Baud Rate は 115200 bps に、Parity は none に、Bits は 8 bits に、Stopbits は 1 bit に、Flow control は none に設定した。
Efinity_207_L240422.png

OpenOCD が起動した。こっちも、ついにやったよ。。。
Efinity_210_L240422.png

OpenOCD のログを示す。

Open On-Chip Debugger 0.11.0+dev-04034-gfaf2fc486 (2023-05-02-15:45)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Info : set servers polling period to 50ms
Info : clock speed 800 kHz
Info : JTAG tap: fpga_spinal.bridge tap/device found: 0x00000001 (mfg: 0x000 (<invalid>), part: 0x0000, ver: 0x0)
[fpga_spinal.cpu0] Target successfully examined.
Info : starting gdb server for fpga_spinal.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
Started by GNU MCU Eclipse
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : accepting 'gdb' connection on tcp/3333
Warn : Target Descriptions Supported, but disabled
Warn : Prefer GDB command "target extended-remote :3333" instead of "target remote :3333"
Info : JTAG tap: fpga_spinal.bridge tap/device found: 0x00000001 (mfg: 0x000 (<invalid>), part: 0x0000, ver: 0x0)
Info : JTAG tap: fpga_spinal.bridge tap/device found: 0x00000001 (mfg: 0x000 (<invalid>), part: 0x0000, ver: 0x0)


GTKTerm で
1 キーを押すと echo charactoer : 1 が表示された。
2 キーを押すと echo charactoer : 2 が表示された。
3 キーを押すと echo charactoer : 3 が表示された。
成功だ。
Efinity_208_L240422.png

OpenOCD を終了する。
Console タブで Terminate ボタンをクリックして、OpenOCD をシャットダウンした。
Efinity_209_L240422.png
  1. 2024年04月23日 04:29 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる9

””XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる7”の続き。
”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる8”はうまく行かなかったので、パスする。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、Windows 11 で Efinity RISC-V Embedded Software IDE を起動して、uartEchoDemo サンプル・デザインのプロジェクトを作成した。インクルード・ファイルやシンボル・ファイルをインポートして、プロジェクトをビルドして成功した。今回は、””XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる8”で Run Configuration を作成して、Run したがエラーだったので、独自に Run Configuration を作成し、gdb や openocd をフルパス付で設定したところ、OpenOCD が走って、uartEchoDemo を実行することができた。

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Run As -> Run Configurations... を選択した。
Efinity_279_240421.png

Run Configuration ダイアログが表示された。
Create, manage, and run configuration 画面

GDB OpenOCD Debugging を右クリックし、右クリックメニューから New Configuration を選択した。
Efinity_288_240422.png

Main タブ
Project に uartEchoDemo が入っていた。
C/C++ Application の Browse... ボタンをクリックした。
Efinity_289_240422.png

C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC\software\standalone\uartEchoDemo\build\uartEchoDemo.elf を選択し、”開く”ボタンをクリックした。

C/C++ Application にフルパスの uartEchoDemo.elf が入った。
Debugger タブをクリックした。
Efinity_290_240422.png

OpenOCD Setup の Executable path の Browse... ボタンをクリックして、C:\Efinity\efinity-riscv-ide-2023.2\openocd\bin\openocd.exe を選択した。

GDB Client Setup の Executable path の Browse... ボタンをクリックして、C:\Efinity\efinity-riscv-ide-2023.2\toolchain\bin\riscv-none-embed-gdb.exe を選択した。

Apply ボタンをクリックした。

Xyloni Development Kit を USB ケーブルで Ubuntu 22.04 のパソコンに接続した。

Run ボタンをクリックした。
Efinity_291_240422.png

OpenOCD が起動した。ついにやったよ。。。
Efinity_292_240422.png

起動ログを示す。

Open On-Chip Debugger 0.11.0+dev-04034-gfaf2fc486-dirty (2023-05-02-16:04)
Licensed under GNU GPL v2
For bug reports, read
 http://openocd.org/doc/doxygen/bugs.html
C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC\cpu0_yaml
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Info : set servers polling period to 50ms
Info : clock speed 800 kHz
Info : JTAG tap: fpga_spinal.bridge tap/device found: 0x00000001 (mfg: 0x000 (<invalid>), part: 0x0000, ver: 0x0)
[fpga_spinal.cpu0] Target successfully examined.
Info : starting gdb server for fpga_spinal.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
Started by GNU MCU Eclipse
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : accepting 'gdb' connection on tcp/3333
Warn : Target Descriptions Supported, but disabled
Warn : Prefer GDB command "target extended-remote :3333" instead of "target remote :3333"
Info : JTAG tap: fpga_spinal.bridge tap/device found: 0x00000001 (mfg: 0x000 (<invalid>), part: 0x0000, ver: 0x0)
Info : JTAG tap: fpga_spinal.bridge tap/device found: 0x00000001 (mfg: 0x000 (<invalid>), part: 0x0000, ver: 0x0)



Windows 11 のアイコンを右クリックし、右クリックメニューからタスクマネージャーを選択した。
タスクマネージャーが起動した。
ポート(COM と LPT) を展開すると、USB Serial Port (COM15) が見えた。右クリックし、右クリックメニューからプロパティを表示すると、FTDI のドライバということが分かる。つまり、Xyloni Development Kit の Serial Port だ。
Efinity_293_240422.png

Efinity RISC-V Embedded Software IDE でターミナルを起動する。
Efinity RISC-V Embedded Software IDE で Open a Terminal ボタンをクリックした。
Efinity_294_240422.png

Launch Terminal ダイアログが表示された。
Choose terminal の下向き>をクリックし、Serial Terminal を選択した。
Serial port には、先ほど確認した COM15 ポートを選択した。
その他はデフォルトままで、Baud rate が 115200 bps、Date size が 8 ビット、Parity が None、Stop bits が 1 ビットとした。
Efinity_295_240422.png

Terminal が起動した。
1 キーを押すと echo charactoer : 1 が表示された。
2 キーを押すと echo charactoer : 2 が表示された。
3 キーを押すと echo charactoer : 3 が表示された。
成功だ。。。やったよ。。。
Efinity_296_240422.png

Termial タブの X をクリックして、Termial タブを消した。

OpenOCD を終了する。
Console タブで Terminate ボタンをクリックして、OpenOCD をシャットダウンした。
Efinity_297_240422.png
  1. 2024年04月22日 03:55 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる8

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる7”の続き。

(2024/04/22:追記) この記事はエラーが出てうまく行きません。うまく行く方法は””XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる9”を見てください。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、Windows 11 で Efinity RISC-V Embedded Software IDE を起動して、uartEchoDemo サンプル・デザインのプロジェクトを作成した。インクルード・ファイルやシンボル・ファイルをインポートして、プロジェクトをビルドして成功した。今回は、Launch Configurations の default.launch を読み込んた。次に、Run Configuration を作成し、設定を行って Run したが、エラーになった。

Launch Configurations を読み込む。

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Import... を選択した。
Efinity_273_240421.png

Import ダイアログが表示された。
Select 画面
Run/Debug を展開して、Launch Configurations を選択した。
Next > ボタンをクリックした。
Efinity_274_240421.png

Import Launch Configuration 画面
From Directory の Browse... ボタンをクリックした。
Efinity_275_240421.png

C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC\config をクリックし、”フォルダーの選択”ボタンをクリックした。
Efinity_276_240421.png

左のウインドウに config が入った。
config のチェックボックスにチェックを入れた。
右のウインドウに 3 つの項目が追加された。
Efinity_277_240421.png

default.launch だけチェックを残して、他の 2 つのチェックを外した。
Finish ボタンをクリックした。
Efinity_278_240421.png

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Run As -> Run Configurations... を選択した。
Efinity_279_240421.png

Run Configuration ダイアログが表示された。
Create, manage, and run configuration 画面

GDB OpenOCD Debugging -> default をクリックした。
Efinity_280_240421.png

Main のタブで Project の Brows... ボタンをクリックした。
Efinity_281_240421.png

Project Selection ダイアログが表示された。
uartEchoDemo が選択されている。
OK ボタンをクリックした。
Efinity_282_240421.png

C/C++ Application の Brows... ボタンをクリックした。
Efinity_283_240421.png

C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC\software\standalone\uartEchoDemo\build\uartEchoDemo.elf を選択し、”開く”ボタンをクリックした。
Efinity_284_240421.png

C/C++ Application にフルパスの uartEchoDemo.elf が入った。
Debugger タブをクリックした。
Efinity_285_240421.png

Debugger タブ
Config options は cpu0.yaml の記述がないので、そのままとした。
Apply ボタンをクリックした。
Efinity_286_240421.png

Xyloni Development Kit を USB ケーブルで Windows 11 のパソコンに接続した。

Run ボタンをクリックして、ソフトウェアを起動したところ、下記のエラーが発生した。
Efinity_287_240421.png

なんかうまく行かないな。。。

(2024/04/22:追記) GDB OpenOCD Debugging -> default を削除した。

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Run As -> Run Configurations... を選択した。

Run Configuration ダイアログが表示された。
Create, manage, and run configuration 画面

GDB OpenOCD Debugging -> default を右クリックし、右クリックメニューから Delete を選択して削除した。
  1. 2024年04月21日 17:50 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる7

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる6”の続き。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、Efinity Programmer を起動して、Xyloni Development Kit に Sapphire SoC のビットファイルを SPI Active モードで書き込んだ。今回は、Windows 11 で Efinity RISC-V Embedded Software IDE を起動して、uartEchoDemo サンプル・デザインのプロジェクトを作成した。インクルード・ファイルやシンボル・ファイルをインポートして、プロジェクトをビルドして成功した。

Windows 11 で Windows マークをクリックし、Efinity RISC-V IDE 2023.2 をクリックして、起動した。

Efinity RISC-V Embedded Software IDE Launcher ダイアログが表示された。
Browse... ボタンをクリックし、C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC フォルダを選択した。
Launch ボタンをクリックした。
Efinity_257_240420.png

Efinity RISC-V Embedded Software IDE が表示された。
Create a new Makefile project in a directory containing existing cod をクリックした。Makefile Project を生成する。
Efinity_258_240420.png

New Project ダイアログが表示された。
Existing Code Location の Browse... ボタンをクリックした。
Efinity_259_240420.png

ダイアログが表示された。
C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC\software\standalone\uartEchoDemo を選択し、”開く”ボタンをクリックした。
Efinity_260_240420.png

Existing Code Location に C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC\software\standalone\uartEchoDemo が入った。
Project Name に uartEchoDemo と入力した。
Finish ボタンをクリックした。
Efinity_261_240420.png

uartEchoDemo プロジェクトが生成された。
Efinity_262_240420.png

インクルード・ファイルとシンボル・ファイルをインポートする。

左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから import... を選択した。
Efinity_263_240420.png

Import ダイアログが表示された。
C/C++ を展開して、C/C++ Project Settings を選択した。
Next > ボタンをクリックした。
Efinity_264_240420.png

Settings file の Brows... ボタンをクリックした。
Efinity_265_240420.png

”開く”ダイアログが表示された。
C:\Efinity\HDL\2023.2\xyloni_sapphire\embedded_sw\SappireSoC\config\project_settings_soc.xml を選択した。
”開く”ボタンをクリックした。
Efinity_266_240420.png

Select settings to import に Include Paths と # Symbols が入っている。
Finish ボタンをクリックした。
Efinity_267_240420.png

Efinity RISC-V Embedded Software IDE に戻った。
インクルード・パスが追加された。
Efinity_268_240420.png

左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから Clean Project を選択した。
Efinity_269_240420.png

Clean Project が成功した。
Efinity_270_240420.png

左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから Build Project を選択した。
Efinity_271_240420.png

ビルドが行われて成功した。しかし、エラーの表示は消えていない。
elf ファイルも生成されている。
Efinity_272_240420.png
  1. 2024年04月20日 04:58 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる6

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる5”の続き。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、論理合成、Place & Route、ビットファイルの生成を行った。今回は、Efinity Programmer を起動して、Xyloni Development Kit に Sapphire SoC のビットファイルを SPI Active モードで書き込んだ。

最初に、Xyloni Development Kit を Windows 11 のパソコンに USB ケーブルで接続した。

Efinity から Open Programmer ボタンをクリックした。
Efinity_251_240419.png

Efinity Programmer が起動した。
Select Image File ボタンをクリックした。
Efinity_252_240419.png

Open Image File ダイアログが表示された。
xyloni_sapphire.hex ファイルを選択して、開くボタンをクリックした。
Efinity_253_240419.png

Efinity Programmer に戻って、Programming Mode を SPI Active モードに変更した。
Efinity_254_240419.png

Start Program ボタンをクリックし、HEX ファイルを Xyloni Development Board に書き込んだ。
Efinity_255_240419.png

HEX ファイルの書き込みが終了した。
Efinity_256_240419.png

ログを貼っておく。

金 4月 19 24 04:24:47 - Valid device ID found: 0x00000000
金 4月 19 24 04:24:47 - Board Profile: Xyloni Developement Board
金 4月 19 24 04:27:56 - Valid device ID found: 0x00000000
金 4月 19 24 04:27:56 - Board Profile: Xyloni Developement Board
金 4月 19 24 04:27:56 - Using FTDI URL (SPI = ftdi://0x0403:0x6011:0:1/1, JTAG = ftdi://0x0403:0x6011:0:2/1)
金 4月 19 24 04:27:56 - SPI Active Programming on ftdi://0x0403:0x6011:0:1/1
金 4月 19 24 04:27:57 - Unrecognized Flash device. Will use Generic Flash profile. Please contact support if you face any problem.
金 4月 19 24 04:27:57 - Flash device: Generic Flash Profile. JEDEC id: 0xEF7018 @ SPI freq 6.0 MHz
金 4月 19 24 04:27:57 - Erasing 172 KiB from flash @ 0x00000000 (may take a while...)
金 4月 19 24 04:28:01 - Finished erase in 4 seconds
金 4月 19 24 04:28:01 - Writing 169 KiB to flash @ 0x00000000 ...
金 4月 19 24 04:28:03 - Finished write in 1 seconds
金 4月 19 24 04:28:03 - Reading 169 KiB from flash @ 0x00000000 ...
金 4月 19 24 04:28:03 - Finished read in 0 seconds
金 4月 19 24 04:28:03 - Flash verify successful
金 4月 19 24 04:28:03 - "SPI active" programming...done

  1. 2024年04月19日 04:44 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Petalinux をインストールする前にインストールしておきたいパッケージをインストールする

Petalinux をインストールする前にインストールしておきたいパッケージがあるが、それお一括でインストールするスクリプトファイルをダウンロードすることができる。

当然、Petalinux をインストールするので、Linux 限定だけど。WSL2 とかでもOKだと思う。

AR# 73296: PetaLinux: PetaLinux ビルド ホストに必要なパッケージをインストールする方法

ここから、plnx-env-setup.sh がダウンロードできて、それをスーパー・ユーザー・モードで実行する。
sudo ./plnx-env-setup.sh
  1. 2024年04月18日 17:25 |
  2. PetaLinux
  3. | トラックバック:0
  4. | コメント:0

Ubuntu のパソコンに Vitis 2022.1 をインストールしていると、”Generating installed device list”で止まってしまう

Ubuntu 22.04 のパソコンに Vitis 2022.1 をインストールするために、AMD からインストーラーをダウンロードして、インストールしていると”Generating installed device list”で止まってしまって、5時間以上進んでいなかった。

仕方なく、インストールをキャンセルした。

もう一度、インストーラーを起動してインストールしても同じ”Generating installed device list”で止まってしまう。

Vitis 2022.1 のサポートOS に Ubuntu 22.04 が入っていないのが、まずいのか?ということで、Ubuntu 22.04 を消して、Ubuntu 20.04 に変更して、再度 Vitis 2022.1 のインストーラーを起動して、インストールしたのだが、やはり”Generating installed device list”で止まってしまう。

ググってみると、”Vivado 2018.3 Final Processing hangs at 'Generating installed device list' on Ubuntu 19.04”が引っ掛かった。
Vivado 2018.3 Final Processing hangs at 'Generating installed device list' on Ubuntu 19.04”によると、2 つのパッケージをインストールすると、問題が解消できるようだ。

sudo apt intall libtinfo5
sudo apt intall libncurses5


早速、パッケージをインストールして Vitis 2022.1 のインストーラーを起動してみたが、数時間たってみると、Ubuntu が再起動していたようだった?失敗だ。orz

その後、Vitis 2023.2 をインストールしたら、インストールできたので、Vitis 2022.1 もインストールしたところ、成功した。。。良かった。
Vitis 2022.1 を 4 回インストールしてしまった。一回につき 58 GB 程度ダウンロードするから、232 GB ダウンロードしたのか? orz
  1. 2024年04月18日 05:13 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる5

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる4”の続き。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、Interface Designer を起動して、GPIO ピンの入れ替えや PLL の設定変更を行った。今回は、論理合成、Place & Route、ビットファイルの生成を行った。

Efinity Software の dashboard で Automated Flow であることを確認し、Synthesize ボタンをクリックした。
Efinity_246_240418.png

論理合成、Place & Route、ビットファイルの生成が実行された。
Efinity_247_240418.png

Result タブをクリックし、Synthesis -> xyloni_sapphire.map.rpt を確認した。
Efinity_248_240418.png

プリミティブの使用量を以下にしめす。

### ### Resource Summary (begin) ### ### ### 
INPUT  PORTS    :   33
OUTPUT PORTS    :   51

EFX_ADD         :   482
EFX_LUT4        :   3194
   1-2  Inputs  :   543
   3    Inputs  :   1043
   4    Inputs  :   1608
EFX_FF          :   2636
EFX_RAM_5K      :   18
EFX_GBUFCE      :   2
### ### Resource Summary (end) ### ### ###


Placement -> xyloni_sapphire.place.rpt を示す。
Efinity_249_240418.png

Place された後の最終的なリソース使用量を示す。

---------- Resource Summary (begin) ----------
Inputs: 31 / 96 (32.29%)
Outputs: 63 / 223 (28.25%)
Clocks: 2 / 16 (12.50%)
Logic Elements: 4972 / 7384 (67.33%)
    LE: LUTs/Adders: 3678 / 7384 (49.81%)
    LE: Registers: 2636 / 5280 (49.92%)
Memory Blocks: 18 / 24 (75.00%)
Multipliers: 0 / 8 (0.00%)
---------- Resource Summary (end) ----------



Routing -> xyloni_sapphire.timing.rpt を示す。
Efinity_250_240418.png

クロックのタイミング制約は満たされている。

---------- 1. Clock Frequency Summary (begin) ----------

User target constrained clocks
  Clock Name   Period (ns)  Frequency (MHz)    Waveform        Targets
io_systemClk      40.000        25.000      {0.000 20.000} {io_systemClk}  
jtag_inst1_TCK   100.000        10.000      {0.000 50.000} {jtag_inst1_TCK}

Maximum possible analyzed clocks frequency
  Clock Name   Period (ns)  Frequency (MHz)     Edge
io_systemClk      34.894        28.658         (R-R)
jtag_inst1_TCK    45.442        22.006         (F-R)

Geomean max period: 39.820

---------- Clock Frequency Summary (end) ---------------

  1. 2024年04月18日 05:01 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる4

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる3”の続き。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、top_soc.v の SPI_1 ポートの追加を行った。もう一度、論理合成、Place & Route、ビットファイルの生成を行った。GitHub の Efinix-Inc/xyloni の soc_opalSoc.peri.xml を xyloni_sapphire プロジェクトの xyloni_sapphire.peri.xml と入れ替えた。今回は、Interface Designer を起動して、GPIO ピンの入れ替えや PLL の設定変更を行った。

Open Interface Designer ボタンをクリックし、Interface Designer を起動する。
Efinity_234_240416.png

Efinity Interface Designer が起動した。
Show/Hide GPIO Resouce Assigner ボタンをクリックし、GPIO Resource Assiger を表示する。
Efinity_235_240417.png

GPIO : Instance View タブが表示された。
system_gpio_0_io[0]Package Pin をダウブルクリックし、出てきた下向き三角をクリックすると、設定値がプルダウンメニューで表示された。プルダウンメニューから C9 を選択する。
Efinity_236_240417.png

このピンはすでに gpio_0_io[15] に接続済みなので、Assigning GPIO Instance ダイアログが表示された。
OK ボタンをクリックした。
Efinity_237_240417.png

system_gpio_0_io(0) の >Package Pin は C9 に割り当てられた。

次に、system_gpio_0_io[15] だが、Package Pin は system_gpio_0_io[0] に割り当てられてしまったので、ブランクになっている。
前の system_gpio_0_io[0] と同様ステップを踏んで、Package Pin を B3 に割り当てた。
Efinity_238_240417.png

次に PLL の設定を行う。
Efinity_239_240417.png

Block Editor の Manual Configuration タブをクリックした。
Reset Pin NamesystemClk_rstn に変更した。
Locked Pin NamesystemClk_locked に変更した。
Multipller (M)24 に設定した。
Pre Divider (N) を 1 に設定した。
Efinity_240_240417.png

下にスクロールした。
PLL Frequency の Psot Divider (O)1 に設定した。
Output Divider32 に設定した。
Output Frequncy (MHz) が 24.9975 になった。
Efinity_241_240417.png

左のウインドウの Design : T8T81 -> GPIO (30) -> io_asyncReset:GPIOR_02 をクリックした。
Pin Nameio_asyncResetn に変更した。
Efinity_242_240417.png

Check Design ボタンをクリックして、Check Design を行った。
Efinity_243_240417.png

Check Design が終了した。
Efinity_244_240417.png

最後に、File メニューから Edit Project... を選択した。
Project Editor ダイアログが表示された。
Design タブをクリックした。
Top Module/Entitytop_soc と入力した。
これを入力し忘れると、論理合成でエラーが出てしまう。
Efinity_245_240417.png
  1. 2024年04月17日 18:26 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる3

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる2”の続き。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、Verilog HDL ファイルや制約ファイルをインポートして、論理合成、Place & Route、ビットファイルの生成を行った。今回は、top_soc.v の SPI_1 ポートの追加を行った。もう一度、論理合成、Place & Route、ビットファイルの生成を行った。GitHub の Efinix-Inc/xyloni の soc_opalSoc.peri.xml を xyloni_sapphire プロジェクトの xyloni_sapphire.peri.xml と入れ替えた。

xyloni_sapphire プロジェクトの top_soc.v を開いた。
ポート宣言のところの system_spi_0_... の記述をコピーし、ペーストして、system_spi_1_... に記述をすべて変更した。
Sapphire SoC の生成のところで、SPI_1 を追加したため、Example Design よりもポートが増えているからだ。
Efinity_223_240416.png

同じく、top_soc.v の memoryCheckerPass の行を削除する。
Efinity_224_240416.png

memoryCheckerPass の行を削除した。
Efinity_225_240416.png

次に top_soc.v の SapphireSoC IP のインスタンス部分で、SPI_0 の記述をコピー & ペーストして、SPI_1 の記述に変更する。
元の SPI_1 の記述を示す。
Efinity_226_240416.png

SPI_0 の接続をコピー & ペーストして、SPI_1 に変更した。
Efinity_227_240416.png

セーブ・ボタンをクリックして、セーブを行った。
Efinity を終了した。

Synthesize ボタンをクリックして論理合成、Place & Route、ビットファイルの生成を行った。
Efinity_228_240416.png

GitHub の Efinix-Inc/xyloni の code の横の下向き三角をクリックし、プルダウンメニューから Download ZIP を選択して、ZIP ファイルをダウンロードした。
Efinity_229_240416.png

xyloni-master.zip がダウンロードされた。
xyloni-master.zip を解凍した xyloni-master フォルダの名前を xyloni に変更した。

xyloni_sapphire プロジェクトのフォルダを見ると、xyloni_sapphire.peri.xml ファイルがあったので、これを削除する。
Efinity_230_240416.png

xyloni_sapphire.peri.xml ファイルを削除した。

xyloni\design\soc_Opal_t8\soc_Opal_hw_t8\Xyloni_kit\soc_opalSoc.peri.xml を xyloni_sapphire プロジェクトにコピーする。
Efinity_231_240416.png

soc_opalSoc.peri.xml を xyloni_sapphire プロジェクトにコピーした。
Efinity_232_240416.png

soc_opalSoc.peri.xml の名前を xyloni_sapphire.peri.xml に変更した。
Efinity_233_240416.png
  1. 2024年04月16日 04:53 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる2

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる1”の続き。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみようということで、前回は、Windows 11 のパソコンで、Efinity を起動して、xyloni_sapphire プロジェクトを作成した。そして、RISC-V プロセッサの IP である SapphireSoC IP を生成した。今回は、Verilog HDL ファイルや制約ファイルをインポートして、論理合成、Place & Route、ビットファイルの生成を行った。

SapphireSoC IP を生成したときに生成された T120F324_devkit の Verilog HDL ファイルを xyloni_sapphire プロジェクトにコピーして、プロジェクトに加える。

左のウインドウの Project タブの xyloni_sapphire -> Design を右クリックし、右クリックメニューから Add を選択した。
Efinity_217_240415.png

Open ダイアログが表示された。
C:\Users\marse\Documents\HDL\Efinity\xyloni_sapphire\ip\SapphireSoC\T120F324_devkit フォルダの top_soc.v を選択した。
File Option の Location の Copy to Project のチェックボックスをチェックした。
Open ボタンをクリックした。
Efinity_218_240415.png

top_soc.v が 左のウインドウの Project タブの xyloni_sapphire -> Design に加わった。

次に制約ファイルを xyloni_sapphire プロジェクトにコピーして、プロジェクトに加える。

左のウインドウの Project タブの xyloni_sapphire -> Constraint を右クリックし、右クリックメニューから Add を選択した。
Efinity_219_240415.png

Open ダイアログが表示された。
C:\Users\marse\Documents\HDL\Efinity\xyloni_sapphire\ip\SapphireSoC\T120F324_devkit フォルダの constraints.sdc を選択した。
File Option の Location の Copy to Project のチェックボックスをチェックした。
Open ボタンをクリックした。
Efinity_220_240415.png

constraints.sdc が左のウインドウの Project タブの xyloni_sapphire -> constraint に加わった。
Efinity_221_240415.png

Dashboard の Synthesize ボタンをクリックして、論理合成、Place & Route、ビットファイルの生成を行った。

ビットファイルの生成まで終了したが、Unassigned Core Pins が 71 個ある。
Efinity_222_240415.png
  1. 2024年04月15日 04:28 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる1

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみよう。
その第1弾として、RISC-V の IP の Sapphire SoC を生成する。

Windows 11 の Efinity 2023.2 を起動して、File メニューから Create Project... を選択した。
Name に xyloni_sapphire と入力した。
Location は C:\Users\marse\Documents\HDL\Efinity\xyloni_sapphire とした。
Family は Trion, Device はT8F81, Timing Model は C2 とした。
OK ボタンをクリックした。
Efinity_192_240414.png

xyloni_sapphire プロジェクトが作成された。
Efinity_187_240413.png

左のウインドウの Project タブの IP を右クリックし、右クリックメニューから New IP を選択した。
Efinity_193_240414.png

IP Catalog ダイアログが表示された。
Efinix -> Processors and Peripherals -> Sapphire SoC を選択して、Next>> ボタンをクリックした。
Efinity_194_240414.png

IP Configuration ダイアログが表示された。
SOC タブ
デフォルトの状態を下に示す。
Option と Frequency (MHz) と Cache を変更する。
Efinity_195_240414.png

Opetin を Lite に Frequency (MHz) を 25 MHz に、Cache のチェックボックスのチェックを外した。
Efinity_196_240414.png

Cache/Memory タブ
デフォルトの状態を下に示す。
Efinity_197_240414.png

External Memory Interface のチェックボックスのチェックを外した。
Efinity_198_240414.png

Debug タブ
Target Board/Cable/Module を Xyloni に変更した。
Efinity_199_240414.png

UART タブ
デフォルトのままとした。
Efinity_200_240414.png

SPI タブ
SPI は Flush と SD カードの 2 つのチャネルを使用するので、SPI 1 をイネーブルにするそうだ。
SPI 1 の Include the SPI 1 のチェックボックスにチェックを入れた。
Efinity_201_240414.png

I2C タブ
デフォルトのままとした。
Efinity_202_240414.png

GPIO タブ
GPIO 0 Bit Width を 16 ビットに変更した。
Efinity_203_240414.png

APB3 タブ
APB Slave 0 の Include the APB3 interface 0 のチェックボックスのチェックを外した。
Efinity_204_240414.png

AXI4 タブ
AXI Slave の Include the AXI4 Slave interface のチェックボックスのチェックを外した。
Efinity_205_240414.png

User Interrupt タブ
User A Interrupt の Include the User Interface A のチェックボックスのチェックを外した。
Efinity_206_240414.png

User Timer タブ
User Timer 0 の Include the User Timer 0 のチェックボックスのチェックを入れた。
Efinity_207_240414.png

Base Address タブ
Address Assignment Method はデフォルトの AUTO のままとした。
Efinity_208_240414.png

Deliverables タブ
Example Design (Ti60F255_devkit) と Example Design (Ti180J484_devkit) と Testbench/modelsim のチェックボックスのチェックを外した。
Efinity_209_240414.png

Summary タブ
Module Name に SapphireSoc を入力した。
Summary を確認し、Generate ボタンをクリックした。
Efinity_210_240414.png

Review generation configuration ダイアログが表示された。
Generate ボタンをクリックした。
Efinity_211_240414.png

Generation Success ダイアログが表示された。
OK ボタンをクリックした。
Efinity_212_240414.png

IP Catalog ダイアログの Close ボタンをクリックして、閉じた。
Efinity_213_240414.png

Efinity の左のウインドウの Project タブの IP の下に IP : SapphireSoC が追加された。
Efinity_214_240414.png

xyloni_sapphire フォルダを示す。
embedded_sw フォルダと IP フォルダが作られている。
Efinity_215_240414.png

xyloni_sapphire\ip\SapphireSoC フォルダを示す。
Deliverables タブで指定した T120F324_devkit のサンプル・デザインとテストベンチのフォルダが見える。
Efinity_216_240414.png
  1. 2024年04月14日 07:04 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Windows 11 では Efinity は C ドライブ限定で使用した方が良い

昨日の記事でもそうだが、Windows 11 の C ドライブにインストールした Efinity を使用して、D ドライブにプロジェクトを作成すると、デバイスが不正で、内部エラーになってしまうようだ。
Windows 11 の Efinity は C ドライブにインストールして、C ドライブにプロジェクトを作成した方が良い。

C ドライブにインストールした Efinity で D ドライブに Trion T8F81 の xyloni_sapphire プロジェクトを作成する。
Efinity 2023.2 を起動して、File メニューから Create Project... を選択した。
Name に xyloni_sapphire と入力した。
Location に D:/HDL/Efinity/xyloni_sapphire と入力した。つまり D ドライブにプロジェクトを作成する。
OK ボタンをクリックした。
Efinity_188_240413.png

Open Project ダイアログが表示された。
デバイスが不正だとのこと、OK ボタンをクリックするとプロジェクトが閉じて、アボートするようだ。
OK ボタンをクリックした。
Efinity_189_240413.png

Open Project ダイアログが表示された。
Internal error だそうだ。
OK ボタンをクリックした。
Efinity_190_240413.png

作成したプロジェクトは消えてしまった。
Efinity_191_240413.png

なお、C ドライブに xyloni_sapphire プロジェクトを先ほどと同じ設定で作成すると、 xyloni_sapphire プロジェクトが作成た。
Efinity_187_240413.png

安全性をみて、”Efinity は C ドライブにインストールして、C ドライブにプロジェクトを作成した方が良い”という結論になった。
  1. 2024年04月13日 20:26 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる15(soc_sap_t8 をやってみる7)

”Xyloni Development Kit を使ってみる14(soc_sap_t8 をやってみる6)”の続き。

Sapphire SoC のサンプルが”Efinix-Inc/xyloni”の”design/soc_sap_t8”の Sapphire SoC for Xyloni にあるので、やってみようとうことで、前回は、ワークスペースのディレクトリ設定が間違っていたことに気づいたので、もう一度、Ubuntu 22.04 のパソコンでやり直してみたがやはり、OpenOCD の起動時にエラーになった。今回は、Ubuntu 22.04 のパソコンではうまく行かないので、Windows 11 のパソコンで xyloni をダウンロードして、Efinity で xyloni/design/soc_sap_t8/top_sapphire.xml を Open Project... で読み込んだところ、IP のアップデート・ダイアログが表示された。IP をアップデートしたら Internal Error で落ちてしまった。

(2024/04/13:追記) デバイスが不正だとエラーが出た原因は、C ドライブに Efinity をいインストールして、D ドライブにプロジェクトを置いているからだった。プロジェクトを C ドライブに移動したら、デバイスが不正だというエラーは出なくなった。ただし IP はアップデートしようとして失敗している。

Windows 11 のパソコンで xyloni//design/soc_sap_t8 をやってみよう。

https://github.com/Efinix-Inc/xyloni で code の下向き三角をクリックし、Download ZIP を選択し、ダウンロードを行った。
Efinity_178_240412.png

xyloni-master.zip がダウンロードできたので、解凍した。
xyloni-masterが解答できたので、xyloni に名前を変えた。
Efinity_179_240412.png

Efinity を起動して、File メニューから Open Project... を選択した。
Open Project File ダイアログが開いた。
xyloni/design/soc_sap_t8/top_sapphire.xml を選択し、Open ボタンをクリックした。
IP Upgrades ダイアログが表示された。
Yes ボタンをクリックした。
Efinity_180_240412.png

IP Upgrades が進んでいく。
Efinity_181_240412.png

IP Upgrades が Fail した。
Efinity_182_240412.png

OK ボタンをクリックした。
Open Project ダイアログが表示された。
デバイスが不正だとのこと、OK ボタンをクリックするとプロジェクトが閉じて、アボートするようだ。
OK ボタンをクリックした。
Efinity_183_240412.png

Open Project ダイアログが表示された。
Internal error だそうだ。
OK ボタンをクリックした。
Efinity_184_240412.png

プロジェクトがクローズされた。
Efinity_185_240412.png

ダメだったので、次からは、”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”を参考に、一から Sapphire SoC を実装してみよう。
最初に OpenOCD を Windows 11 にインストールする必要があるのだろうか?
”Sapphire RISC-V SoC Hardware and Software User Guide UG-RISCV-SAPPHIRE-v6.0 December 2023”の 8 ページの”Required Software”では、” The RISC-V IDE includes the following packages:”に”xPack GNU RISC-V Embedded GCC”と”OpenOCD Debugger”が入っているので、OpenOCD をインストールする必要はないみたいだ。
それじゃなぜ、Ubuntu 22.04 で OpenOCD をインストールする必要があったんだろうか?なぞだ?
  1. 2024年04月12日 04:21 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる14(soc_sap_t8 をやってみる6)

Xyloni Development Kit を使ってみる13(soc_sap_t8 をやってみる5)”の続き。

Sapphire SoC のサンプルが”Efinix-Inc/xyloni”の”design/soc_sap_t8”の Sapphire SoC for Xyloni にあるので、やってみようとうことで、前回は、Efinity Programmer でFPGA をコンフィギュレーションし、Efinity RISC-V Embedded Software IDE で Run したところ、失敗した。その後、Run Configuration を変えて見たが、失敗した。OpenOCD が必要ということで、インストールしてから、Run してみたが、やはり失敗した。今回は、ワークスペースのディレクトリ設定が間違っていたことに気づいたので、もう一度、Ubuntu 22.04 のパソコンでやり直してみたがやはり、OpenOCD の起動時にエラーになった。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”RISC-V SDKでのプロジェクト作成、ビルド、デバッグ”を参照して、実行していく。ありがとうございます。

Xyloni Development Kit を使ってみる11(soc_sap_t8 をやってみる3)”の Efinity RISC-V Embedded Software IDE Launcher ダイアログのワークスペース設定時に新規作成したワークスペース・ディレクトリを指定していたのだが、”XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”RISC-V SDKでのプロジェクト作成、ビルド、デバッグ”では、xyloni/design/soc_sap_t8/embedded_sw/sapphire0 をワークスペースとして指定するようなので、もう一度、やってみることにした。

efinity-riscv-ide-2023.2/Efinity-RISCV-IDE/efinity-riscv-ide/efinity-riscv-ide をダブルクリックして起動した。

Efinity RISC-V Embedded Software IDE Launcher ダイアログが表示された。
Workspace の Brows... ボタンをクリックした。
Select Workspace Directory ダイアログが開いた。
xyloni/design/soc_sap_t8/embedded_sw/sapphire0 をワークスペースとして指定して、Launch ボタンをクリックした。
Efinity_186_L240411.png

Efinity RISC-V Embedded Software IDE が表示された。
Create a new Makefile project in a directory containing existing cod をクリックした。Makefile Project を生成する。
Efinity_187_L240411.png

New Project ダイアログが表示された。
Existing Code Location の Browse... ボタンをクリックした。

ダイアログが表示された。
xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/uartEchoDemo を選択し、”開く”ボタンをクリックした。

New Project ダイアログで Finish ボタンをクリックした。

uartEchoDemo プロジェクトが生成された。
Efinity_188_L240411.png

左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから import... を選択した。

Import ダイアログが表示された。
C/C++ を展開して、C/C++ Project Settings を選択した。
Next > ボタンをクリックした。
Efinity_189_L240411.png

Settings file の Brows... ボタンをクリックした。

ダイアログが表示された。
xyloni/design/soc_sap_t8/embedded_sw/sapphire0/config/project_settings_soc.xml を選択した。
”開く”ボタンをクリックした。
Efinity_190_L240411.png

Select settings to import に Include Paths と # Symbols が入っている。
Finish ボタンをクリックした。

Efinity RISC-V Embedded Software IDE に戻った。
include パスが入っているのが見える。
Efinity_191_L240411.png

前のビルド結果が残っているので、削除する。
左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから Clean Project を選択した。

前のビルド結果が削除された。
Efinity_192_L240411.png

左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから Build Project を選択した。
ビルドが行われて成功した。
Efinity_193_L240411.png

以下の作業はうまく行きません。
次の作業は”Xyloni Development Kit を使ってみる16(soc_sap_t8 をやってみる8)”を参照ください。


Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Import... を選択した。

Import ダイアログが表示された。
Select 画面
Run/Debug を展開して、Launch Configuration を選択した。
Next > ボタンをクリックした。
Efinity_194_L240411.png

Import Launch Configuration 画面
From Directory の Browse... ボタンをクリックした。

xyloni/design/soc_sap_t8/embedded_sw/sapphire0/config ディレクトリを選択して、”開く”ボタンをクリックした。

左のウインドウに config が入った。
config のチェックボックスにチェックを入れた。
右のウインドウに 3 つの項目が追加された。
default.launch だけチェックを残して、他の 2 つのチェックを外した。
Finish ボタンをクリックした。
Efinity_195_L240411.png

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Run As -> Run Configuration を選択した。

Run Configuration ダイアログが表示された。
Create, manage, and run configuration 画面

GDB OpenOCD Debugging -> default をクリックした。
Efinity_196_L240411.png

Main のタブで Project の Brows... ボタンをクリックした。
Efinity_197_L240411.png

Project Selection ダイアログが表示された。
uartEchoDemo が選択されている。
OK ボタンをクリックした。
Efinity_198_L240411.png

C/C++ Application の Brows... ボタンをクリックした。

xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/uartEchoDemo/build/uartEchoDemo.elf を選択した。
”開く”ボタンをクリックした。

C/C++ Application にフルパスの uartEchoDemo.elf が入った。
Efinity_199_L240411.png

Debugger タブをクリックした。
Apply ボタンをクリックした。

Xyloni ボードを USB でパソコンに接続した。
Xyloni ボードには、”Xyloni Development Kit を使ってみる13(soc_sap_t8 をやってみる5)”ですでに soc_sap_t8 が ROM に書かれている。

Efinity RISC-V Embedded Software IDE の Run Configuration ダイアログで Run ボタンをクリックし、プログラムを走らせた。
Efinity_200_L240411.png

エラーになった。(画像を取るのを忘れてしまった)エラーメッセージを示す。

Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
embedded:startup.tcl:26: Error: Can't find /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0\bsp\efinix\EfxSapphireSoc\openocd\ftdi.cfg
in procedure 'script' 
at file "embedded:startup.tcl", line 26


/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0\bsp\efinix\EfxSapphireSoc\openocd\ftdi.cfg となっていて、バックスラッシュになっている。
実際に fgdi.cfg はある。
Efinity_201_L240411.png

そこで、フルパスで指定してみた。
Efinity_202_L240411.png

やはりエラーになった。
Efinity_203_L240411.png

エラーメッセージを示す。

Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/bsp/efinix/EfxSapphireSoc/openocd/ftdi.cfg:13: Error: invalid command name "ftdi"
in procedure 'script' 
at file "embedded:startup.tcl", line 26
at file "/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/bsp/efinix/EfxSapphireSoc/openocd/ftdi.cfg", line 13


やはり、エラーだった。。。もう一度、Windows 11 でやってみよう。
  1. 2024年04月11日 18:14 |
  2. Efinity RISC-V Embedded Software IDE
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる13(soc_sap_t8 をやってみる5)

Sapphire SoC のサンプルが”Efinix-Inc/xyloni”の”design/soc_sap_t8”の Sapphire SoC for Xyloni にあるので、やってみようとうことで、前回は、作成した uartEchoDemo の実行のための準備を進めて、Run Configuration を設定した。今回は、Efinity Programmer でFPGA をコンフィギュレーションし、Efinity RISC-V Embedded Software IDE で Run したところ、失敗した。その後、Run Configuration を変えて見たが、失敗した。OpenOCD が必要ということで、インストールしてから、Run してみたが、やはり失敗した。

(2024/04/22:追記) この記事はエラーが出てうまく行きません。うまく行く方法は””XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる9”を見てください。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”RISC-V SDKでのプロジェクト作成、ビルド、デバッグ”を参照して、実行していく。ありがとうございます。

soc_sap_t8 の hex ファイルを SPI Active モードで Xyloni に書き込む。
Efinity Software で Select Image file ボタンをクリックし、/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/outflow/soc_sap_t8.hex を選択した。
Programming Mode を SPI Active に変更した。
Efinity_175_L240409.png

Start Program ボタンをクリックし、ビットファイルを FPGA にコンフィギュレーションした。
Efinity_176_L240409.png

Efinity RISC-V Embedded Software IDE の Run Configuration ダイアログで Run ボタンをクリックし、プログラムを走らせた。
Efinity_177_L240409.png

エラーが発生した。
Efinity_178_L240409.png

Error in services launch sequence
Launching command [openocd -c gdb_port 3333 -c telnet_port 4444 -c tcl_port 6666 -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace\bsp\efinix\EfxSapphireSoc\openocd\ftdi.cfg -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace\bsp\efinix\EfxSapphireSoc\openocd\debug.cfg -c echo "Started by GNU MCU Eclipse"] failed.
Launching command [openocd -c gdb_port 3333 -c telnet_port 4444 -c tcl_port 6666 -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace\bsp\efinix\EfxSapphireSoc\openocd\ftdi.cfg -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace\bsp\efinix\EfxSapphireSoc\openocd\debug.cfg -c echo "Started by GNU MCU Eclipse"] failed.
Cannot run program "openocd": Unknown reason


よく見るとパスの区切りが \ になっている。
Run Configuration ダイアログの Debugger タブの Config options の \ を / に変更した。
Efinity_179_L240409.png

Apply ボタンをクリックしてから、Run ボタンをクリックした。
Efinity_180_L240409.png

やはりエラーだった。
Efinity_181_L240409.png

Error in services launch sequence
Launching command [openocd -c gdb_port 3333 -c telnet_port 4444 -c tcl_port 6666 -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace/bsp/efinix/EfxSapphireSoc/openocd/ftdi.cfg -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace/bsp/efinix/EfxSapphireSoc/openocd/debug.cfg -c echo "Started by GNU MCU Eclipse"] failed.
Launching command [openocd -c gdb_port 3333 -c telnet_port 4444 -c tcl_port 6666 -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace/bsp/efinix/EfxSapphireSoc/openocd/ftdi.cfg -f /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/workspace/bsp/efinix/EfxSapphireSoc/openocd/debug.cfg -c echo "Started by GNU MCU Eclipse"] failed.
Cannot run program "openocd": Unknown reason


もしかして? OpenOCD インストールしてないかも?ということで、OpenOCD をインストールするために”OpenOCDのインストール for ubuntu”を参考に、OpenOCD をインストールした。
sudo apt install openocd
Efinity_182_L240409.png

インストールされてなかったようだ。。。orz
バージョンを確認した。
openocd -v
Efinity_183_L240409.png
バージョンは、

Open On-Chip Debugger 0.11.0

だった。

これで、もう一度 Efinity RISC-V Embedded Software IDE の Run Configuration ダイアログで Run ボタンをクリックすると、今度は、OpenOCD が Fail した。
Efinity_184_L240409.png

Run Configuration ダイアログの Debugger タブの Config options に

-c 'set CPU0_YAML /media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/soc_sap_t8/embedded_sw/sapphire0/cpu0.yaml'

を追加しても同様にエラーだった。
Efinity_185_L240409.png
  1. 2024年04月11日 07:28 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる12(soc_sap_t8 をやってみる4)

Xyloni Development Kit を使ってみる11(soc_sap_t8 をやってみる3)”の続き。

(2024/04/22:追記) この記事はエラーが出てうまく行きません。うまく行く方法は””XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”Sapphire SoC の 実装”をやってみる9”を見てください。

Sapphire SoC のサンプルが”Efinix-Inc/xyloni”の”design/soc_sap_t8”の Sapphire SoC for Xyloni にあるので、やってみようとうことで、前回は、Efinity RISC-V Embedded Software IDE を起動して、uartEchoDemo プロジェクトを新規作成した。設定を行って、ビルドを行い成功した。今回は、作成した uartEchoDemo の実行のための準備を進めて、Run Configuration を設定した。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”RUN/DEBUGの設定を行う”を参照して、実行していく。ありがとうございます。

使用してるパソコンの OS は Ubuntu 22.04 だ。

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Import... を選択した。
Efinity_160_L240408.png

Import ダイアログが表示された。
Select 画面
Run/Debug を展開して、Launch Configuration を選択した。
Next > ボタンをクリックした。
Efinity_161_L240408.png

Import Launch Configuration 画面
From Directory の Browse... ボタンをクリックした。
Efinity_162_L240408.png

xyloni/design/soc_sap_t8/embedded_sw/sapphire0/config ディレクトリを選択して、”開く”ボタンをクリックした。
Efinity_163_L240408.png

左のウインドウに config が入った。
config のチェックボックスにチェックを入れた。
右のウインドウに 3 つの項目が追加された。
default.launch だけチェックを残して、他の 2 つのチェックを外した。
Finish ボタンをクリックした。
Efinity_164_L240408.png

Efinity RISC-V Embedded Software IDE で左の Project Explorer の uartEchoDemo を右クリックし、右クリックメニューから Run As -> Run Configuration を選択した。
Efinity_165_L240408.png

Run Configuration ダイアログが表示された。
Create, manage, and run configuration 画面

GDB OpenOCD Debugging -> default をクリックした。
Main のタブで Project の Brows... ボタンをクリックした。
Efinity_166_L240408.png

Project Selection ダイアログが表示された。
uartEchoDemo が選択されている。
OK ボタンをクリックした。
Efinity_167_L240408.png

C/C++ Application の Brows... ボタンをクリックした。
Efinity_168_L240408.png

xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/uartEchoDemo/build/uartEchoDemo.elf を選択した。
”開く”ボタンをクリックした。
Efinity_169_L240408.png

C/C++ Application にフルパスの uartEchoDemo.elf が入った。
Debugger タブをクリックした。
Efinity_170_L240408.png

Debugger タブ
Config options は cpu0.yaml の記述がないので、そのままとした。
Efinity_171_L240408.png

Startup タブ
Efinity_172_L240408.png

Apply ボタンをクリックした。
  1. 2024年04月08日 04:25 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる11(soc_sap_t8 をやってみる3)

Xyloni Development Kit を使ってみる10(soc_sap_t8 をやってみる2)”の続き。

Sapphire SoC のサンプルが”Efinix-Inc/xyloni”の”design/soc_sap_t8”の Sapphire SoC for Xyloni にあるので、やってみようとうことで、前回は、Interface Designer を確認し、論理合成、Place & Route、ビットストリームを生成して、レポートを確認したところ、タイミング・エラーがあったが、このままやってみることにした。今回は、Efinity RISC-V Embedded Software IDE を起動して、uartEchoDemo プロジェクトを新規作成した。設定を行って、ビルドを行い成功した。

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築”の”RISC-V SDKでのプロジェクト作成、ビルド、デバッグ”を参照して、実行していく。ありがとうございます。

なお、使用してる OS は Ubuntu 22.04 だ。

efinity-riscv-ide-2023.2/Efinity-RISCV-IDE/efinity-riscv-ide/efinity-riscv-ide をダブルクリックした。
Efinity_143_L240407.png

Efinity RISC-V Embedded Software IDE Launcher ダイアログが表示された。
Workspace の Brows... ボタンをクリックした。
Select Workspace Directory ダイアログが開いた。
xyloni/design/soc_sap_t8 ディレクトリに行って、 workspace ディレクトリを新規作成して選択した。
(2024/04/11:追記) xyloni/design/soc_sap_t8/embedded_sw/sapphire0 をワークスペースとして指定するのが正しいようです。("Xyloni Development Kit を使ってみる14(soc_sap_t8 をやってみる6)"参照)
”開く”ボタンをクリックして終了した。
Efinity_144_L240407.png

Efinity RISC-V Embedded Software IDE Launcher ダイアログの Launch ボタンをクリックした。
Efinity RISC-V Embedded Software IDE が表示された。
Create a new Makefile project in a directory containing existing cod をクリックした。Makefile Project を生成する。
Efinity_145_L240407.png

New Project ダイアログが表示された。
Existing Code Location の Browse... ボタンをクリックした。
Efinity_146_L240407.png

ダイアログが表示された。
xyloni/design/soc_sap_t8/embedded_sw/sapphire0/software/standalone/uartEchoDemo を選択し、”開く”ボタンをクリックした。
Efinity_147_L240407.png

Project Name に uartEchoDemo と入力した。
Finish ボタンをクリックした。
Efinity_148_L240407.png

uartEchoDemo プロジェクトが生成された。
Efinity_149_L240407.png

左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから import... を選択した。
Efinity_150_L240407.png

Import ダイアログが表示された。
C/C++ を展開して、C/C++ Project Settings を選択した。
Next > ボタンをクリックした。
Efinity_151_L240407.png

Settings file の Brows... ボタンをクリックした。
Efinity_152_L240407.png

ダイアログが表示された。
xyloni/design/soc_sap_t8/embedded_sw/sapphire0/config/project_settings_soc.xml を選択した。
”開く”ボタンをクリックした。
Efinity_153_L240407.png

Select settings to import に Include Paths と # Symbols が入っている。
Finish ボタンをクリックした。
Efinity_154_L240407.png

Efinity RISC-V Embedded Software IDE に戻った。
Efinity_155_L240407.png

前のビルド結果が残っているので、削除する。
左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから Clean Project を選択した。
Efinity_156_L240407.png

前のビルド結果が削除された。
Efinity_157_L240407.png

左のウインドウの uartEchoDemo を右クリックし、右クリックメニューから Build Project を選択した。
Efinity_158_L240407.png

ビルドが行われて成功した。しかし、エラーの表示は消えていないのはなぜなんだ?
Efinity_159_L240407.png
  1. 2024年04月07日 11:04 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる10(soc_sap_t8 をやってみる2)

Xyloni Development Kit を使ってみる9(soc_sap_t8 をやってみる1)”の続き。

Sapphire SoC のサンプルが”Efinix-Inc/xyloni”の”design/soc_sap_t8”の Sapphire SoC for Xyloni にあるので、やってみようということで、前回は、soc_sap_t8 プロジェクトを開き、HDL ファイルを確認し、sapphire0 IP の設定を確認した。今回は、Interface Designer を確認し、論理合成、Place & Route、ビットストリームを生成して、レポートを確認したところ、タイミング・エラーがあった。

Efinity Software から Open Interface Designer ボタンをクリックして、Interface Designer を起動した。
my_pll:PLL_0 を確認した。
Output Frequency (MHz)は 20.1369 MHz だった。20 MHz としたいところ、分周比の関係でこの周波数になったと思う。
Efinity_136_L240406.png

GPIO も割り当てられているのが分かる。

気になるのは、JTAG が割り当てられていることだ。
JTAG User Tap (1) で、 jtag_inst1:JTAG_USER1 が割り当てられている。
JTAG はもう 1 つ JTAG_USER2 があるようだ。
Efinity_141_L240406.png

制約ファイルの contraints.sdc を見たが、クロックの制約だけでなく、たくさん制約が書かれている。
Efinity_137_L240406.png

Efinity Software の dashboard で Automated Flow であることを確認し、Synthesize ボタンをクリックして、すべてのフローを実行した。

Result タブをクリックし、Placement -> soc_sap_t8.place.rpt ファイルを確認した。
Logic Elements は 6072 / 7384 (82.23%) 使用されている。かなり、リソース使用量を食っている。
Memory Blocks: 18 / 24 (75.00%) 使用されている。
Efinity_138_L240406.png

Result タブをクリックし、Routing -> soc_sap_t8.timing.rpt を確認した。
Timing でエラーが出ているが、io_systemClk は 25 MHz 程度で 20 MHz のクロックに対しては余裕がある。
Efinity_139_L240406.png

Slack がマイナスになっているのは、JTAG クロックから、io_systemClk へのクロックパスのようだ。
Efinity_140_L240406.png

View Timing Browser ボタンをクリックし、Timing Browser を表示するとクリティカル・パスがより一層明確に確認できるようだ。
Efinity_142_L240406.png

しかし、このタイミング・エラーはこちらではどうにもならないので、無視して先に進むことにしよう。
  1. 2024年04月06日 08:27 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる9(soc_sap_t8 をやってみる1)

Efinix の RISC-V プロセッサの Sapphire SoC を勉強する”で勉強した Sapphire SoC のサンプルが”Efinix-Inc/xyloni”の”design/soc_sap_t8”の Sapphire SoC for Xyloni にあるので、やってみよう。

Efinity を起動して、File メニューから Open Project... を選択した。
Open Project File ダイアログが開いた。
xyloni/design/soc_sap_t8/top_sapphire.xml を選択し、Open ボタンをクリックした。
soc_sap_t8 プロジェクトが開いた。
top_sapphire.v ファイルを開いた。
Efinity_119_L240405.png

左のウインドウの Project タブの IP -> IP: sapphire0 をダブルクリックしてファイルを開いた。
sapphire0.v ファイルが開いた。
Efinity_120_L240405.png

sapphire0 の構成を見てみよう。
左のウインドウの Project タブの IP -> IP: sapphire0 を右クリックし、右クリックメニューから Configure を選択した。
Efinity_121_L240405.png

IP Configuration ダイアログが表示された。
SOC タブ
Option は Standard で、Frequency は 20 MHz だった。
キャッシュは無し。
Efinity_122_L240405.png

Cache/Memory タブ
On-Chip RAM Size は 4KB だった。
Efinity_123_L240405.png

Debug タブ
Efinity_124_L240405.png

UART タブ
UART0 は必須のようだ。
Efinity_125_L240405.png

SPI タブ
SPI0 は必須のようだ。
Efinity_126_L240405.png

I2C タブ
I2C 0 は必須じゃないが、実装されている。
Efinity_127_L240405.png

GPIO タブ
GPIO 0 は実装されている。
Efinity_128_L240405.png

APB3 タブ
APB Slave Address Size は 64 KB が選択されていた。
Efinity_129_L240405.png

AXI4 タブ
残念ながら AXI4 Slave は生成される設定になっていない。
Efinity_130_L240405.png

User Interrupt タブ
User A Interrupt にチェックが入っていた。
Efinity_131_L240405.png

User Timer タブ
Timer は実装されていない。
Efinity_132_L240405.png

Base Address タブ
Address Assignment Method は AUTO だった。
Efinity_133_L240405.png

Deilverables タブ
Efinity_134_L240405.png

Summary タブ
これまでの設定が表示されていた。
Efinity_135_L240405.png

Close ボタンをクリックして、終了した。
  1. 2024年04月05日 05:02 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Efinix の RISC-V プロセッサの Sapphire SoC を勉強する

Github の Efinix-Inc/xyloni の xyloni/design/Efinity_tutorial は前回で終了した。次は、Efinix の IP の Sapphire RISC-V SoC を使用している Xiloni Development Kit のサンプル・プロジェクトの soc_sap_t8 をやってみようと思っている。
そこで今回は、Sapphire SoC を学習してみよう。

Efinix の”RISC-V SoC: 組み込みコンピューティングの推進”ページを読みながら Sapphire SoC に付いて学習する。
Efinix の”RISC-V SoC: 組み込みコンピューティングの推進”ページから引用して、ブログに書いていく。

Sapphire SoC
Efinity IP マネージャで必要なペリフェラルを選択し、SoC を構成することができるそうだ。

特徴を引用する。

・VexRiscv コア - 6 つのパイプラインステージ (フェッチ、インジェクタ、デコード、実行、メモリ、ライトバック)、割込処理、例外処理
・システムクロック: 20 ~ 400 MHz
・オンチップ RAM: 4 ~ 512 KB (SPI FLASH用のブートローダーを含む)
・DDR または HyperRAM メモリコントローラ
 ・メモリサイズサポート: 4 MB ~ 3.5 GB
 ・ユーザ設定可能な外部メモリバス周波数
 ・外部メモリアクセスのための半二重 AXI3 インターフェイス (最大 256 ビット)
 ・400 MHz DDR クロック周波数、800 Mbps
 ・200 MHz HyperRAM クロック周波数、400 Mbps
・ユーザロジック用の AXI マスタチャネル (最大 2 系統)
・ユーザロジック用の AXI スレーブチャネル (1 系統)
・浮動小数点ユニット
・Linux 用の MMU (メモリ マネジメント ユニット)
・カスタム命令セット (様々な機能を実現するための 1,024 ID)
・RISC-V アトミック拡張機能、Compressed 命令 (オプション)
・APB3 ペリフェラル:
 ・GPIO 最大 32 本
 ・I2C マスタ 最大 3 個
 ・Clint Timer
 ・PLIC
 ・SPI マスタ 最大 3 個 (最大 25 MHz)
 ・Timer 最大 3 個
 ・UART 最大 3 個
 ・APB3 ユーザペリフェラル 最大 5 個


PLIC は何かな?と思ってググって見たところ、”RISC-VのPLIC(Platform-Level Interrupt Controller)について”によると PLIC(Platform-Level Interrupt Controller) のようだ。

Sapphire SoC のブロック図を引用する。
Efinity_117_L240404.png

ユーザ・ロジックとは AXI4 インタフェースで接続だそうだ。これは嬉しい。
命令キャッシュとデータ・キャッシュもあるようだ。

SoC デザイン フローを引用する。
Efinity_118_L240404.png

ソフトウェアの作成は、”Ubuntu 22.04 に efinity-riscv-ide-2023.2 をインストールする”でインストールした efinity-riscv-ide-2023.2 を使用する。

Sapphire RISC-V SoC の使い方については、”Sapphire RISC-V SoC Hardware and Software User Guide UG-RISCV-SAPPHIRE-v6.0 December 2023”を参照する。
  1. 2024年04月04日 04:24 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる8(Efinity_tutorial をやってみる5)

Xyloni Development Kit を使ってみる7(Efinity_tutorial をやってみる4)”の続き。

Github の Efinix-Inc/xyloni の xyloni/design/Efinity_tutorial をやってみようということで、前回は、Ubuntu 22.04 のパソコンで Xyloni Development Kit にプリインストールされている機能を確認し、Efinity Programmer を起動して、Efinity_tutorial のビットファイルをコンフィギュレーションして動作を確認した。今回は、外部入力クロックをやめて、内部オシレータの 10 kHz を使用して、カウンタを回した。

BGA49 と BGA 81 の T8 には 10 kHz の低周波オシレータが搭載されている。この低周波オシレータは常時動作している低消費電力回路のために用意されているようだ。(”T8 Data Sheet DST8-v5.1February 2024”の 16 ページの”Oscillator”参照)

最初に counter.vhd の Dataout に出力するカウンタのビット位置を cnt(29 downto 26) から cnt(17 downto 14) に変更する。これは、クロックが低速になるために速度を調整するためのようだ。
Efinity_106_L240402.png

制約ファイルの counterconstrain.sdc において、クロック間隔を 100000 ns に変更した。
Efinity_107_L240402.png

外部入力クロック・ピンを削除して、内部の低周波オシレータを使用する。
Efinity Software で Open Interface Designer ボタンをクリックし、Interface Designer を起動した。
左のウインドウの Design: T8F81 -> GPIO(7) -> clk : GPIOL_20 を右クリックし、右クリックメニューから Delete を選択し、削除した。
Efinity_108_L240402.png

左のウインドウの Design: T8F81 -> Oscillator(0) を右クリックし、右クリックメニューから Create Block を選択した。
Efinity_109_L240402.png

Block Editor で Instance Name を clk に変更した。
Efinity_110_L240402.png

Check Design ボタンをクリックして、Save ボタンでセーブした。
Efinity_111_L240402.png

Efinity Software の dashboard で Automated Flow であることを確認し、Synthesize ボタンをクリックして、すべてのフローを実行する。
Efinity_112_L240402.png

すべてのフローの実行が終了した。
Efinity_113_L240402.png

Efinity Software の左のウインドウでResult タブをクリックし、new_project.timing.rpt をダブルクリックして開いた。
10 kHz のところ、184.570 MHz で全く問題ない。

---------- 1. Clock Frequency Summary (begin) ----------

User target constrained clocks
 Clock Name  Period (ns)  Frequency (MHz)     Waveform        Targets
    clk       99999.992        0.010      {0.000 49999.996}    {clk}

Maximum possible analyzed clocks frequency
 Clock Name  Period (ns)  Frequency (MHz)     Edge
    clk         5.418        184.570         (R-R)

Geomean max period: 5.418

---------- Clock Frequency Summary (end) ---------------


Efinity_114_L240402.png

Efinity_tutorial のビットファイルをコンフィギュレーションする。
Efinity Software の Tools メニューから Open Programmer を選択した。

Efinity Programmer が起動した。
Select Image file ボタンをクリックし、/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/Efinity_tutorial/outflow/new_project.bit を選択した。

Start Program ボタンをクリックし、ビットファイルを FPGA にコンフィギュレーションした。
Efinity_115_L240402.png

ビットファイルのコンフィギュレーションが終了し、LED にカウンタの値が表示されている。成功だ。
Efinity_116_L240402.png

Efinity Programmer のログを貼っておく。

火 4月 2 24 03:51:58 - Valid device ID found: 0x00000000
火 4月 2 24 03:51:58 - Board Profile: Xyloni Developement Board
火 4月 2 24 03:53:06 - Valid device ID found: 0x00000000
火 4月 2 24 03:53:06 - Board Profile: Xyloni Developement Board
火 4月 2 24 03:53:06 - Using FTDI URL (SPI = ftdi://0x0403:0x6011/1, JTAG = ftdi://0x0403:0x6011/2)
火 4月 2 24 03:53:06 - jtag programming started!
火 4月 2 24 03:53:06 - JTAG Programming on ftdi://0x0403:0x6011/2
火 4月 2 24 03:53:06 - Programming '/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/Efinity_tutorial/outflow/new_project.bit' via JTAG at freq 6.0 MHz
火 4月 2 24 03:53:07 - ... finished with JTAG programming
火 4月 2 24 03:53:08 - Detecting device status...
火 4月 2 24 03:53:11 - Device is in user mode!

  1. 2024年04月03日 04:40 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0

Xyloni Development Kit を使ってみる7(Efinity_tutorial をやってみる4)

Xyloni Development Kit を使ってみる6(Efinity_tutorial をやってみる3)”の続き。

Github の Efinix-Inc/xyloni の xyloni/design/Efinity_tutorial をやってみようということで、前回は、Place 、Route、ビットストリームの生成を行って、レポートを確認した。今回は、Ubuntu 22.04 のパソコンで Xyloni Development Kit にプリインストールされている機能を確認し、Efinity Programmer を起動して、Efinity_tutorial のビットファイルをコンフィギュレーションして動作を確認した。

Windows 11 では、Xyloni Development Kit にプリインストールされている機能を確認済みだ
USB ドライバ関連は鬼門のようなので、Ubuntu 22.04 のパソコンでも USB-UART の機能の確認は必要だと思う。

Ubuntu 22.04 の端末で、GTKTerm を起動した。
gtkterm &

GTKTerm が起動した。
Configuration メニューから Port を選択した。
Configuration ダイアログが表示された。
USB の Port は /dev/ttyUSB0 から /dev/ttyUSB3 まであったが、そのうちの /dev/ttyUSB2 を選択した。
Baud Rate は 115200 bps に設定した。
Efinity_100_L240331.png

Xyloni Development Kit の BTN1 を押すと、Xyloni Test Menu が表示された。

Enter キーを押すと、SD Card Info が表示された。
問題なさそうだ。
Efinity_101_L240331.png

さて、Efinity_tutorial のビットファイルをコンフィギュレーションする。
Efinity Software の Tools メニューから Open Programmer を選択した。

Efinity Programmer が起動した。
Select Image file ボタンをクリックし、/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/Efinity_tutorial/outflow/new_project.bit を選択した。
Efinity_102_L240331.png

Start Program ボタンをクリックし、ビットファイルを FPGA にコンフィギュレーションした。
Efinity_103_L240331.png

ビットファイルのコンフィギュレーションが終了し、LED にカウンタの値が表示されている。成功だ。
Efinity_105_L240331.png

Efinity Programmer のログを貼っておく。

月 4月 1 24 21:42:47 - Board Profile: Xyloni Developement Board
月 4月 1 24 21:42:57 - Valid device ID found: 0x00000000
月 4月 1 24 21:42:57 - Board Profile: Xyloni Developement Board
月 4月 1 24 21:42:57 - Using FTDI URL (SPI = ftdi://0x0403:0x6011/1, JTAG = ftdi://0x0403:0x6011/2)
月 4月 1 24 21:42:57 - jtag programming started!
月 4月 1 24 21:42:57 - JTAG Programming on ftdi://0x0403:0x6011/2
月 4月 1 24 21:42:57 - Programming '/media/masaaki/Ubuntu_Disk/Efinity/xyloni/design/Efinity_tutorial/outflow/new_project.bit' via JTAG at freq 6.0 MHz
月 4月 1 24 21:42:58 - ... finished with JTAG programming
月 4月 1 24 21:42:59 - Detecting device status...
月 4月 1 24 21:43:02 - Device is in user mode!


なお、JTAG で FPGA をコンフィギュレーションしているので、電源を ON/OFF すると、プリインストールされている機能に戻る。
  1. 2024年04月02日 04:00 |
  2. Xyloni Development Kit
  3. | トラックバック:0
  4. | コメント:0
»