FPGAの部屋 https://marsee101.blog.fc2.com/ FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。 ja https://marsee101.blog.fc2.com/blog-entry-6448.html ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する5(CLOCKS_AND_RESETS SmartDesign 3) ”ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する4(CLOCKS_AND_RESETS SmartDesign 2)”の続き。ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみようということで、前回は、PF_CCC_C0 と CLKINT、AND3 を CLOCKS_AND_RESETS SmartDesign に追加して、CLKINT の名前を CLKINT_REF_CLK_50MHz に変更した。今回は、外部ピンに接続し、配線を行って、CLOCKS_AND_RESET ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する4(CLOCKS_AND_RESETS SmartDesign 2)”の続き。

ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみようということで、前回は、PF_CCC_C0 と CLKINT、AND3 を CLOCKS_AND_RESETS SmartDesign に追加して、CLKINT の名前を CLKINT_REF_CLK_50MHz に変更した。今回は、外部ピンに接続し、配線を行って、CLOCKS_AND_RESETS SmartDesign を完成させた。CLOCKS_AND_RESETS SmartDesign を MSSGpioh SmartDesign にドラック・アンド・ドロップして追加した。

AND3_0 の C 入力を右クリックし、右クリックメニューから Promote to Top Level を選択した。
Libero_SoC3_45_251109.png

入力ポートが生成された。名前はC になっている。この名前を変更する。
C 入力ポートを右クリックし、右クリックメニューから Modify/Rename を選択した。
Libero_SoC3_46_251109.png

Modify Port- C ダイアログが表示された。
Name を MSS_TO_FABRIC_RESETN に変更した。
Libero_SoC3_47_251109.png

入力ポートをすべて実装した。
Libero_SoC3_48_251109.png

PULL UP、PULL DOWN、配線を行って、CLOCKS_AND_RESETS SmartDesign を完成させた。
Libero_SoC3_49_251109.png

CLOCKS_AND_RESETS SmartDesign をセーブして、Generate Component ボタンをクリックした。
Libero_SoC3_50_251109.png

Design Hierarchy タブをクリックし、CLOCKS_AND_RESETS SmartDesign を Gpioh SmartDesign にドラック・アンド・ドロップした。
Gpioh SmartDesign に CLOCKS_AND_RESETS SmartDesign が追加された。
Libero_SoC3_51_251109.png
]]>
Libero SoC 2024-11-09T04:16:07+09:00 marsee FC2-BLOG
https://marsee101.blog.fc2.com/blog-entry-6447.html ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する4(CLOCKS_AND_RESETS SmartDesign 2) ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみようということで、前回は、polarfire-soc-discovery-kit-reference-design の CLOCKS_AND_RESETS SmartDesign を再現することにして、CLOCKS_AND_RESETS SmartDesign を新規作成し、PFSOC_INIT_MONITOR_C0 と CORERESET_PF_C0 IP を追加した。CORERESET_PF_C0 IP は RESET_FIC_0_CLK に名前を変更した。今回は、PF_CCC_C0 と CLKINT
PF_CCC_C0 を CLOCKS_AND_RESETS SmartDesign に追加する。
IP Catalog の検索ウインドウに ccc と入力した。
Clock Conditioning Circuitry (CCC) を右クリックし、右クリックメニューから Instantiate in CLOCKS_AND_RESETS を選択した。
Libero_SoC3_35_251108.png

Congfigurator ダイアログが表示された。(名前を変更するダイアログは省略しています)
デフォルトのまま、OK ボタンをクリックした。
Clock Options PLL タブ
Input Freqency を 50 MHz に設定した。
Libero_SoC3_36_251108.png

Output Clocks タブ
Output Clock 0 の Requested Frequency を 125 MHz に設定した。
OK ボタンをクリックした。
Libero_SoC3_37_251108.png

CLKINT を CLOCKS_AND_RESETS SmartDesign に追加する。
IP Catalog の検索ウインドウに clkint と入力した。
CLKINT を右クリックし、右クリックメニューから Instantiate in CLOCKS_AND_RESETS を選択した。
Libero_SoC3_38_251108.png

CLKINT_0 が実装された。
先ほど追加した PF_CCC_C0_0 も追加されている。
Libero_SoC3_39_251108.png

CLKINT_0 の名前を変更する。
CLKINT_0 を右クリックし、右クリックメニューから Rename... を選択した。
Libero_SoC3_40_251108.png

Rename Intance ダイアログが表示された。
Name に CLKINT_REF_CLK_50MHz を入力した。
OK ボタンをクリックした。
Libero_SoC3_41_251108.png

CLKINT の名前が CLKINT_REF_CLK_50MHz に変更された。
Libero_SoC3_42_251108.png

and3 を CLOCKS_AND_RESETS SmartDesign に追加する。
IP Catalog の検索ウインドウに and3 と入力した。
AND3 を右クリックし、右クリックメニューから Instantiate in CLOCKS_AND_RESETS を選択した。
Libero_SoC3_43_251108.png

AND3_0 が実装された。
Libero_SoC3_44_251108.png
]]>
Libero SoC 2024-11-08T05:10:47+09:00 marsee FC2-BLOG
https://marsee101.blog.fc2.com/blog-entry-6446.html ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する3(CLOCKS_AND_RESETS SmartDesign 1) ”ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する2”の続き。ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみようということで、前回は、Libero SoC 2024.1 を起動して、PolarFire SoC Discoverly Kit 用の MSSGpioh プロジェクトを生成した。MSSGpioh SmartDesign を作成し、前回生成された CXZ ファイルを使用して、MPFS_DISCOVERY_KIT_MSS_0 を SmartDesign に追 ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する2”の続き。

ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみようということで、前回は、Libero SoC 2024.1 を起動して、PolarFire SoC Discoverly Kit 用の MSSGpioh プロジェクトを生成した。MSSGpioh SmartDesign を作成し、前回生成された CXZ ファイルを使用して、MPFS_DISCOVERY_KIT_MSS_0 を SmartDesign に追加した。今回は、polarfire-soc-discovery-kit-reference-design の CLOCKS_AND_RESETS SmartDesign を再現することにして、CLOCKS_AND_RESETS SmartDesign を新規作成し、PFSOC_INIT_MONITOR_C0 と CORERESET_PF_C0 IP を追加した。CORERESET_PF_C0 IP は RESET_FIC_0_CLK に名前を変更した。

polarfire-soc-discovery-kit-reference-design の CLOCKS_AND_RESETS SmartDesign を示す。
Libero_SoC3_26_241107.png

CLOCKS_AND_RESETS SmartDesign は FIC_0 から FIC_3 までのクロックとリセットが生成されるようだ。今回の私の MSSGpio SmartDesign では、FIC_0 (AXI4) しかないので、FIC_0 (AXI4) 用のクロックとリセットだけ生成する。

Libero SoC の Create Design -> Create SmartDesign をダブルクリックした。
Create New SmartDesign ダイアログが表示された。
Name に CLOCKS_AND_RESETS と入力した。
OK ボタンをクリックした。
Libero_SoC3_24_241107.png

CLOCKS_AND_RESETS SmartDesign が生成された。
Libero_SoC3_25_241107.png

IP Catalog の検索ウインドウに courre と入力した。
表示された CoreReset_PF を右クリックし、右クリックメニューから Instantiate in CLOCKS_AND_RESETS を選択した。
Libero_SoC3_26_241107.png

名前を設定するダイアログが表示された。
デフォルトのまま、OK ボタンをクリックした。

Congfigurator ダイアログが表示された。
デフォルトのまま、OK ボタンをクリックした。
Libero_SoC3_27_251107.png

CORERESET_PF_C0_0 が生成された。
Libero_SoC3_28_251107.png

IP Catalog の検索ウインドウに init_mo と入力した。
表示された PolarFireSoC Initialization Monitor を右クリックし、右クリックメニューから Instantiate in CLOCKS_AND_RESETS を選択した。
Libero_SoC3_29_251107.png

Congfigurator ダイアログが表示された。
デフォルトのまま、OK ボタンをクリックした。
Libero_SoC3_30_251107.png

PFSOC_INIT_MONITOR_C0_0 が生成された。
Libero_SoC3_31_251107.png

CORERESET_PF_C0_0 の名前を変更する。
CORERESET_PF_C0_0 を右クリックし、右クリックメニューから Rename... を選択した。
Libero_SoC3_32_251107.png

Rename Intance ダイアログが表示された。
Name に RESET_FIC_0_CLK と入力した。
OK ボタンをクリックした。
Libero_SoC3_33_251107.png

CORERESET_PF_C0 の名前が RESET_FIC_0_CLK になった。
Libero_SoC3_34_251107.png
]]>
Libero SoC 2024-11-07T05:49:11+09:00 marsee FC2-BLOG
https://marsee101.blog.fc2.com/blog-entry-6445.html ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する2 ”ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する1”の続き。ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみようということで、前回は、PolarFireSoC MSS Configurator を起動して、MPFS_DESCOVERRY_KIT_MSS.cfg を開いた。FIC_0 (AXI4) の Use Initiator Interface と Use Embedded DLL と MMUART_0 のみ残して後は OFF として、生成を行った。今回は、Libero SoC ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する1”の続き。

ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみようということで、前回は、PolarFireSoC MSS Configurator を起動して、MPFS_DESCOVERRY_KIT_MSS.cfg を開いた。FIC_0 (AXI4) の Use Initiator Interface と Use Embedded DLL と MMUART_0 のみ残して後は OFF として、生成を行った。今回は、Libero SoC 2024.1 を起動して、PolarFire SoC Discoverly Kit 用の MSSGpioh プロジェクトを生成した。MSSGpioh SmartDesign を作成し、前回生成された CXZ ファイルを使用して、MPFS_DISCOVERY_KIT_MSS_0 を SmartDesign に追加した。

最初に Libero SoC 2024.1 で MMSGpioh プロジェクトを作成する。

Project の New... をクリックして、新規プロジェクトを作成する。

New Project ダイアログが開いた。
Project details 画面
Project name に MMSGpioh と入力した。
Project location を設定した。
Preferred HDL typte はデフォルトの Verilog とした。
Next > ボタンをクリックした。
Libero_SoC3_13_241106.png

Device Selection 画面
Part Number は MPF5095T-1FCSG325E を指定した。
Libero_SoC3_14_241106.png

Device settings 画面
Default I/O technology はデフォルトの LVCMOS 1.8V だった。
Reserve pins for probes のチェックボックスにチェックが入っている。
Finish ボタンをクリックした。
Libero_SoC3_15_241106.png

MMSGpioh プロジェクトが作成された。
Libero_SoC3_16_241106.png

Create SmartDesign をダブルクリックして、SmartDesign を作成する。

Create New Design ダイアログが表示された。
MMSGpioh と入力して、OK ボタンをクリックした。
Libero_SoC3_17_241106.png

MMSGpioh SmartDesign が生成された。
Libero_SoC3_18_241106.png

Design Hierarchy タブをクリックした。
work -> MMSGpioh を右クリックし、右クリックメニューから Set As Root を選択した。
Libero_SoC3_19_241106.png

Please select a root が消えた。
File メニューから Import -> MMS Components を選択した。
Libero_SoC3_20_241106.png

前回生成した MPFS_DESCOVERRY_KIT_MSS.cxz ファイルを指定した。
Libero_SoC3_21_241106.png

MPFS_DISCOVERY_KIT_MSS がインポートされた。
Libero_SoC3_22_241106.png

Design Hierarchy タブをクリックする。
Work -> MPFS_DISCOVERY_KIT_MSS を MMSGpioh SmartDesign にドラック・アンド・ドロップすると、シンボルが生成された。
Libero_SoC3_23_241106.png
]]>
Libero SoC 2024-11-06T05:00:52+09:00 marsee FC2-BLOG
https://marsee101.blog.fc2.com/blog-entry-6444.html ハードコア RISC-V MSS で FPGA 部に実装した GPIO IP を制御する1 ハードコア RISC-V MSS (Microprocessor Sub-System) で FPGA 部に実装した GPIO IP を制御してみよう。今回は、MSS Configurator を起動して、FIC_0 (AXI4) は残して、最小限の MSS を生成する。”Windows 11 で polarfire-soc-discovery-kit-reference-design をやってみよう6(PolarFire SoC MSS Configurator 1)”で使用した MPFS_DESCOVERRY_KIT_MSS.cfg を使用する。Microchip¥Project¥MSSGpio フォルダを作成し、MPFS_DESCOV 今回は、MSS Configurator を起動して、FIC_0 (AXI4) は残して、最小限の MSS を生成する。

Windows 11 で polarfire-soc-discovery-kit-reference-design をやってみよう6(PolarFire SoC MSS Configurator 1)”で使用した MPFS_DESCOVERRY_KIT_MSS.cfg を使用する。
Libero_SoC3_1_241105.png

Microchip¥Project¥MSSGpio フォルダを作成し、MPFS_DESCOVERRY_KIT_MSS.cfg をコピーした。
Libero_SoC3_2_241105.png

PolarFireSoC MSS Configurator を起動した。
Project メニューから Open を選択した。
Libero_SoC3_3_241105.png

Open MSS Configuration file ダイアログが表示された。
Microchip¥Project¥MSSGpio フォルダの MPFS_DESCOVERRY_KIT_MSS.cfg を選択した。
Libero_SoC3_4_241105.png

MPFS_DESCOVERRY_KIT_MSS.cfg の設定がロードされた。
Libero_SoC3_5_241105.png

IO Connection の SGMII / I/Os Bank5 を未使用 (Unused) にする。
Libero_SoC3_6_241105.png

Peripherals タブの項目を Unused にしていった。MMUART_0 のみ残した。
Libero_SoC3_7_241105.png

MSS to/from Fabric Interface Contorollers タブをクリックした。
FIC_0 (AXI4) の Use Initiator Interface と Use Embedded DLL のチェックボックスのチェックを残して、その他はチェックを外した。
Libero_SoC3_8_241105.png

Misc タブでは、Intterupt の Exporse Interrupt ports to Fabric のチェックを外した。
Libero_SoC3_9_241105.png

Project メニューから Save As... を選択した。
Save MSS Configuration as... ダイアログが表示された。
MPFS_DESCOVERRY_KIT_MSS.cfg とファイル名に入れて、保存ボタンをクリックした。
Libero_SoC3_10_241105.png

MSS Configurator の Save ボタンと Generate ボタンをクリックした。
Libero_SoC3_11_241105.png

Microchip¥Project¥MSSGpio フォルダを見ると、MPFS_DESCOVERRY_KIT_MSS.cxz ファイルと MPFS_DESCOVERRY_KIT_MSS_mss_cfg.xml ファイルが生成された。名前を変えてセーブしたのはどこに行ったのか?
Libero_SoC3_12_241105.png
]]>
Libero SoC 2024-11-05T04:59:38+09:00 marsee FC2-BLOG