HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2022/07/01

Xilinxの FPGA Spartan-6で PicoBlaze KCPSM 8 ビット マイクロコントローラーを動かす! Xilinxの FPGA Spartan-6で PicoBlaze KCPSM 8 ビット マイクロコントローラーを動かす!

(PicoBlaze KCPSM6 in Spartan-6 with ISE WebPack)

Tags: [FPGA], [電子工作], [Xilinx XC6SLX9], [FPGA 2022]




● Xilinxの FPGA Spartan-6で PicoBlaze 8 ビット マイクロコントローラーを動かす!

 PicoBlaze KCPSM6 in Spartan-6 with ISE WebPack

PicoBlaze 8 ビット マイクロコントローラー

Release 9 of KCPSM6 (What’s new?)

KCPSM6 is Here! (Download it now)


● Xilinxの KCPSM PicoBlaze 8-bit Microcontrollerをダウンロードする方法

 How to Download Xilinx KCPSM PicoBlaze 8-bit Microcontroller

・Xilinx PicoBlaze KCPSM6 Download KCPSM6_Release9_30Sept14.zip
Xilinx PicoBlaze KCPSM6 Download KCPSM6_Release9_30Sept14.zip
 デザインファイルの所から
 UltraScale、7 シリーズ、6 シリーズ FPGA 用 PicoBlaze KCPSM6 Rev 9 - 2014 年 9 月 30 日 (ZIP)
KCPSM6_Release9_30Sept14.zip
 をダウンロードします。

Xilinx PicoBlaze KCPSM6 Download KCPSM6_Release9_30Sept14.zip
 ログインします。

Xilinx PicoBlaze KCPSM6 Download KCPSM6_Release9_30Sept14.zip
 ログイン後に TOPページに遷移してダウンロードできない場合は、ダウンロード画面に戻って操作をし直す。

Xilinx PicoBlaze KCPSM6 Download KCPSM6_Release9_30Sept14.zip
 ダウンロードの際に I Agree欄に姓名を入力して、I Acceptボタンを押すとダウンロードが開始します。

Xilinx PicoBlaze KCPSM6 Download KCPSM6_Release9_30Sept14.zip
 ダウンロードの際に I Agree欄に姓名を入力して、I Acceptボタンを押すとダウンロードが開始します。


● Xilinxの FPGA Spartan-6で PicoBlazeのサンプルを ALINX AX309で動かす!

 UART_and_PicoTermの 4桁の 16進数を 10進数に変換する UART通信のサンプルが動いたよ!

 とりあえず大変でした。(説明書を読まないでいきなり動かそうとするから)

 ML605_designを元にして ALINX AX309で動く様に基板の差異の部分を変更しました。

 Virtex-6 FPGA ML605基板と ALINX AX309基板の差異の部分
差異の部分ML605基板AX309基板対応方法
使用している FPGAが違うVirtex-6Spartan-6JTAG Loaderの FPGAの定義を変更
クロック源の仕様が違う差動クロック入力シングルエンド入力シングルエンド入力に変更する
クロックの周波数が違う200MHz50MHz50MHzをそのまま使う
UARTの I/Oのピン配置Tx=J25、Rx=J24Tx=D12、Rx=C11.ucfファイルを書き換える

● uart6_ax309.ucf

 AX309の基板の I/O配線で .ucfファイルの内容を変更して対応した。
 クロック入力と USB UART通信。
uart6_ax309.ucf

#
# Period constraint for 50MHz operation
#
NET "clk50" LOC = T8 | TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 50000 kHz;

#
# USB-UART
#
NET "uart_rx" LOC = "C11" | IOSTANDARD = LVCMOS33;
NET "uart_tx" LOC = "D12" | IOSTANDARD = LVCMOS33;

● uart6_ml605.v

 ML605は 200MHzを 50MHzに変換する回路が有ったので、AX309の場合は入力の 50MHzをそのまま使う様にしただけで済んだ。
uart6_ml605.v

 差動入力の 200MHzのピン定義を削除、clk50を追加
module uart6_ml605 (  input   uart_rx,
                      // input   clk200_p,
                      // input   clk200_n,
                      input   clk50,
                     output   uart_tx );

 ...

// wire          clk200;
wire          clk;

 ディファレンシャル入力回路と 200MHzを 50MHzに変換する回路をゴッソリ削除

  /////////////////////////////////////////////////////////////////////////////////////////
  // Create 50MHz clock from 200MHz differential clock
  /////////////////////////////////////////////////////////////////////////////////////////

//   IBUFGDS diff_clk_buffer(
//       .I(clk200_p),
//       .IB(clk200_n),
//       .O(clk200));

  // BUFR used to divide by 4 and create a regional clock

//   BUFR #(
//       .BUFR_DIVIDE("4"),
//       .SIM_DEVICE("VIRTEX6"))
//   clock_divide (
//       .I(clk200),
//       .O(clk),
//       .CE(1'b1),
//       .CLR(1'b0));

assign clk = clk50;

 ...

 JTAG Loaderの FPGAの定義を Virtex-6から Spartan-6に変更
 uart_controlの C_FAMILYを "V6"から "S6"、C_RAM_SIZE_KWORDSを 1から 2に変更する

  // Development Program Memory
  //   JTAG Loader enabled for rapid code development.

  uart_control #(
//	.C_FAMILY		   ("V6"),
//	.C_RAM_SIZE_KWORDS	(2),
	.C_FAMILY		   ("S6"),
	.C_RAM_SIZE_KWORDS	(1),


● PicoBlazeの .psmファイルをアセンブルして ROMファイルを生成する方法

 プログラムの内容を格納する為の ROM_form.vテンプレートファイルが必要です。

 UART_and_PicoTermの場合は Verilog言語で記述されており、JTAG Loader機能を使用しています。

.\KCPSM6_Release9_30Sept14\Verilog
 の
ROM_form_JTAGLoader_3Mar11.v
 ファイルを
ROM_form.v
 のファイル名でコピーします。

 この状態で uart_control.psmファイルをアセンブルすると、プログラムの内容が埋め込まれた uart_control.vファイルが生成されます。

・Xilinxの FPGA Spartan-6で PicoBlaze 8 ビット マイクロコントローラーを動かす!
Xilinxの FPGA Spartan-6で PicoBlaze 8 ビット マイクロコントローラーを動かす!


Xilinxの FPGA Spartan-6で PicoBlaze 8 ビット マイクロコントローラーを動かす!




● PicoBlazeの I/Oポートのアクセスの動作仕様の調査

 PicoBlazeは 1cycle = 2clockで動き、1命令を 1cycleで実行します。
 48MHzで動作させた場合、16命令毎に USBの 1bitを送受信すれば 1.5Mbpsにできます。
 1bit = 66.67ns= 48MHz / (2 * 16)

 下記の移植の事前準備として調査しました。

2022/07/17
USBの通信プロトコルを勉強する
USBの通信プロトコルを勉強する

  今まで漠然としていた USBデバイスの通信方法を理解します

2022/07/23
USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!
USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!

  FPGAに USB HOST機能を実装して Low Speedの USB HIDデバイスを接続するのら

            LOAD s5, AA
            OUTPUT s5, 55
            LOAD s5, 55
            OUTPUT s5, AA
            LOAD s5, C3
            OUTPUT s5, 3C
            LOAD s5, 3C
            OUTPUT s5, C3
            LOAD s5, 00
            OUTPUT s5, FF
            LOAD s5, FF
            OUTPUT s5, 00

            INPUT s5, 00
            INPUT s5, 11
            INPUT s5, 22
            INPUT s5, 33
            INPUT s5, 44
            INPUT s5, 55
            INPUT s5, 66
            INPUT s5, 77
・PicoBlazeの I/Oポートのアクセスの動作仕様の確認
PicoBlazeの I/Oポートのアクセスの動作仕様の確認




cold_start:
            LOAD s0, 05
loop_x:
            LOAD s5, AA
            OUTPUT s5, 55

            SUB s0, 1'd
            JUMP NZ, loop_x

            JUMP cold_start
・PicoBlazeの I/Oポートのアクセスの動作仕様の確認
PicoBlazeの I/Oポートのアクセスの動作仕様の確認




● PicoBlaze KCPSMの JTAG Loaderの使用方法

jtagloader -l hoge\your_program.hex


● JTAG_Loader実行時に libCseJtag.dllが見つからない

 JTAG_Loader_Win7_64.exeの JTAG_Loader実行時に libCseJtag.dllが見つからない。

解決方法: Startメニューの Xilinxの中のコマンドラインを実行し、その中から JTAG_Loader_Win7_64.exeを実行する。


●下記は大昔の Spartan-2時代の PicoBlazeの記事

 もう記憶が無い。

 でも、ソースリストを残しておいて偉いぞ!>俺

2003/01/07
KCPSM-CPUコア(PicoBlaze)の実験
KCPSM-CPUコア(PicoBlaze)の実験

  Ken Chapman氏作の芸術的CPU core



Tags: [FPGA], [電子工作], [Xilinx XC6SLX9], [FPGA 2022]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

AMD Xilinxの FPGA Spartan-6 XC6SLX16のボードを買ってアーケード ゲームを動かす
AMD Xilinxの FPGA Spartan-6 XC6SLX16のボードを買ってアーケード ゲームを動かす

  ALINX AX309 XC6SLX9の中華クローンの XC6SLX16版を購入しました

AMD Xilinxの FPGAの開発アプリ ISE WebPackをダウンロードして Windows 10で動かす方法
AMD Xilinxの FPGAの開発アプリ ISE WebPackをダウンロードして Windows 10で動かす方法

  Spartan-6の FPGAの開発用に Xilinx ISE WebPack開発ソフトウェアを Windows 10で動かす方法

Xilinxの FPGA Spartan-6の Block RAM RAMB8BWERに初期値を入れて ROMとして使う方法
Xilinxの FPGA Spartan-6の Block RAM RAMB8BWERに初期値を入れて ROMとして使う方法

  Xilinxの FPGA Spartan-6の Block RAM RAMB8BWERに初期値を入れて ROMとして使う方法

FPGA Spartan-6 XC6SLX16でファミコンを動かす!
FPGA Spartan-6 XC6SLX16でファミコンを動かす!

  Xilinx FPGA Spartan-6 XC6SLX16 NES clone in ALINX AX309

Xilinxの FPGA Spartan-6で MicroBlazeを ISE WebPack 14.7で無料ライセンスで動かす方法
Xilinxの FPGA Spartan-6で MicroBlazeを ISE WebPack 14.7で無料ライセンスで動かす方法

  How to MicroBlaze in Spartan-6 with ISE WebPack 14.7 only Free License to Blink LED !

USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!
USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!

  FPGAに USB HOST機能を実装して Low Speedの USB HIDデバイスを接続するのら

USBの通信プロトコルを勉強する
USBの通信プロトコルを勉強する

  今まで漠然としていた USBデバイスの通信方法を理解します

USB HOST機能が欲しいのでワンチップマイコンの GPIOで USB HOST機能を実現する
USB HOST機能が欲しいのでワンチップマイコンの GPIOで USB HOST機能を実現する

  FPGAに USBデバイスを接続したいのですが、USB HOSTの通信を実装できないので困っています

OLIMEX LPC-H40(Philips LPC2106)
OLIMEX LPC-H40(Philips LPC2106)

  MOTHER BOARD for LPC-H40(LPC-H2106) and ASM Sample Program.

線形帰還シフトレジスタ LFSRのまとめ、FPGAの Verilog HDLでの実装例
線形帰還シフトレジスタ LFSRのまとめ、FPGAの Verilog HDLでの実装例

  LFSR Linear Feedback Shift Registerについて調べた

【2022年版】最近流行の RISC-Vプロセッサの環境を WSL Ubuntu上に構築する方法
【2022年版】最近流行の RISC-Vプロセッサの環境を WSL Ubuntu上に構築する方法

  RISC-Vプロセッサの Rocket Chipの開発環境を Windows上に構築して Verilogする方法

XILINX FPGAのBlock RAMをROMとして使う方法
XILINX FPGAのBlock RAMをROMとして使う方法

  FPGAに内蔵のBLOCK-RAMにROMとして初期値を与える方法

スパルタン2で
スパルタン2で"ギャラクシアン基板"を作る!

  Verilog言語で記述してあります

スパルタン2で
スパルタン2で"MIDWAY 8080(TAITO インベーダ基板)"を動かす!

  ハードウェアで本物を作ります

スパルタン2で
スパルタン2で"パックマン"を動かす!

  FPGAでパックマンが動きます

スパルタン2で
スパルタン2で"ド*キーコ*グ"を動かす!

  これもFPGAで動いちゃいます

スパルタン3でアーケードゲームを動かす!
スパルタン3でアーケードゲームを動かす!

  XAPP694の使用例、INVADER/GALAXIAN/PACMAN/D*NKEY-K*NG/TIME PILOT




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2022 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/fpga/xilinx_spartan6_picoblaze/