FC2カウンター FPGAの部屋 2024年03月18日
fc2ブログ

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

FPGAの部屋

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

Windows 11 の Efinity で helloworld チュートリアルをやってみる2

Windows 11 の Efinity で helloworld チュートリアルをやってみる1”の続き。

Efinity® Trion® Tutorial UG-EFN-TUTORIAL-v7.0 August 2022”を参照して、helloworld チュートリアルをやってみようということで、前回は、”3.0 Run the Flow”の”3.1 RTL Simulation”を行った。今回は、”3.2 Synthesize the Design”と”3.3 Perform Post-Map Simulation”を行った。

3.2 Synthesize the Design
Toggle automated flow ボタンをクリックして、automated flow をオフにした。
Efinity_98_240318.png

Synthesize ボタンをクリックして、論理合成を行った。
Efinity_99_240318.png

論理合成が終了した。
Efinity_100_240318.png

helloworld\outflow フォルダに論理合成のリポート・ファイルの helloworld.map.rpt と helloworld.map.out が生成された。
Efinity_101_240318.png

生成されたネットリスト・ファイルは、helloworld\outflow フォルダの helloworld.map.v のようだ。
Efinity_104_240318.png

3.3 Perform Post-Map Simulation
論理合成後のシミュレーションを行う。

コマンドプロンプトで以下のコマンドを入力した。
efx_run.bat helloworld.xml --flow mapsim

helloworld\outflow フォルダの helloworld.log を見ると”RuntimeError: vvp process failed to run after 3 attempts”になっていた。エラーが発生したようだ。
Efinity_103_240318.png

helloworld.map.rpt ファイルを示す。

Efinity Synthesis report for project helloworld
Version: 2023.2.307.2.17
Generated at: Mar 18, 2024 04:31:29
Copyright (C) 2013 - 2023  All rights reserved.

### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
Top-level Entity Name : helloworld

### ### File List (begin) ### ### ###
C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v
### ### File List (end) ### ### ###

"MEM|SYN-0657" : Mapping into logic memory block 'mem' (50 bits) (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:36) because size is too small (<=64)

### ### EFX_FF CE enables (begin) ### ### ###
Total number of enable signals: 0
Total number of FFs with enable signals: 0
### ### EFX_FF CE enables (end) ### ### ###

### ### EFX_FF SR set/reset (begin) ### ### ###
Total number of set/reset signals: 1
Total number of FFs with set/reset signals: 13
SR signal <rstn>, number of controlling flip flops: 13
### ### EFX_FF SR set/reset (end) ### ### ###

### ### Module Resource Usage Distribution Estimates (begin) ### ###

**Note: some resources maybe grouped under different hierarchy due to optimization and LUT mapping

Module                          FFs        ADDs        LUTs      RAMs DSP/MULTs
-----------------------         ---        ----        ----      ---- ---------
helloworld:helloworld        18(18)      12(12)      41(41)      0(0)      0(0)

### ### Module Resource Usage Distribution Estimates (end) ### ###


### ### Clock Load Distribution Report (begin) ### ###

 Clock     Flip-Flops   Memory Ports    Multipliers
 -----     ----------   ------------    -----------
   clk             18              0              0

### ### Clock Load Distribution Report (end) ### ###

### ### EFX Flow Options (begin) ### ### ###

family : Trion
device : T8F81
project : helloworld
project-xml : C:/Efinity/2023.2/project/tutorial/helloworld/helloworld.xml
root : helloworld
I,include : C:/Efinity/2023.2/project/tutorial/helloworld
output-dir : C:/Efinity/2023.2/project/tutorial/helloworld/outflow
work-dir : C:/Efinity/2023.2/project/tutorial/helloworld/work_syn
write-efx-verilog : C:/Efinity/2023.2/project/tutorial/helloworld/outflow/helloworld.map.v
binary-db : C:/Efinity/2023.2/project/tutorial/helloworld/outflow/helloworld.vdb
insert-ios : 0
max-carry-cascade : 160
max_mult : -1
max_ram : -1
mode : speed
veri_options : verilog_mode=verilog_2k,vhdl_mode=vhdl_2008

### ### EFX Flow Options (end) ### ### ###

### ### Resource Summary (begin) ### ### ### 
INPUT  PORTS    :   3
OUTPUT PORTS    :   5

EFX_ADD         :   12
EFX_LUT4        :   41
   1-2  Inputs  :   9
   3    Inputs  :   11
   4    Inputs  :   21
EFX_FF          :   18
EFX_GBUFCE      :   1
### ### Resource Summary (end) ### ### ###

Plain synthesis (without verilog dump and post-map checks) time : 7s
Elapsed synthesis time : 7s


helloworld.map.out ファイルを示す。

[EFX-0000 INFO] Efinix FPGA Synthesis.

[EFX-0000 INFO] Version: 2023.2.307.2.17

[EFX-0000 INFO] Compiled: Dec 15 2023.

[EFX-0000 INFO] 

[EFX-0000 INFO] Copyright (C) 2013 - 2023 Efinix, Inc. All rights reserved.



INFO: Read project database "C:/Efinity/2023.2/project/tutorial/helloworld/helloworld.xml"

-- Analyzing Verilog file 'C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v' (VERI-1482)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(8): INFO: compiling module 'EFX_IBUF' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(16): INFO: compiling module 'EFX_OBUF' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(23): INFO: compiling module 'EFX_IO_BUF' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(33): INFO: compiling module 'EFX_CLKOUT' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(41): INFO: compiling module 'EFX_IREG' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(51): INFO: compiling module 'EFX_OREG' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(60): INFO: compiling module 'EFX_IOREG' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(75): INFO: compiling module 'EFX_IDDIO' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(87): INFO: compiling module 'EFX_ODDIO' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(99): INFO: compiling module 'EFX_GPIO_V1' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(118): INFO: compiling module 'EFX_PLL_V1' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v(136): INFO: compiling module 'EFX_OSC_V1' (VERI-1018)

INFO: Read project database "C:/Efinity/2023.2/project/tutorial/helloworld/helloworld.xml"

INFO: ***** Beginning Analysis ... *****

INFO: default VHDL library search path is now "C:/Efinity/2023.2/sim_models/vhdl/packages/vhdl_2008" (VHDL-1504)

-- Analyzing Verilog file 'C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v' (VERI-1482)

-- Analyzing Verilog file 'C:/Efinity/2023.2/sim_models/maplib/efinix_peri_lib.v' (VERI-1482)

-- Analyzing Verilog file 'C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v' (VERI-1482)

INFO: Analysis took 0.0200392 seconds.

INFO:   Analysis took 0 seconds (approximately) in total CPU time.

INFO: Analysis virtual memory usage: begin = 55.736 MB, end = 56.064 MB, delta = 0.328 MB

INFO:   Analysis peak virtual memory usage = 56.072 MB

INFO: Analysis resident set memory usage: begin = 58.748 MB, end = 59.692 MB, delta = 0.944 MB

INFO:   Analysis peak resident set memory usage = 59.692 MB

INFO: ***** Ending Analysis ... *****

INFO: ***** Beginning Elaboration ... *****

C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v(14): INFO: compiling module 'helloworld' (VERI-1018)

C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v(36): INFO: extracting RAM for identifier 'mem' (VERI-2571)

C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v(66): WARNING: expression size 32 truncated to fit in target size 13 (VERI-1209)

C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v(69): WARNING: expression size 14 truncated to fit in target size 13 (VERI-1209)

C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v(36): WARNING: net 'mem' does not have a driver (VDB-1002)

INFO: Elaboration took 0.0042327 seconds.

INFO:   Elaboration took 0 seconds (approximately) in total CPU time.

INFO: Elaboration virtual memory usage: begin = 56.064 MB, end = 56.068 MB, delta = 0.004 MB

INFO:   Elaboration peak virtual memory usage = 56.076 MB

INFO: Elaboration resident set memory usage: begin = 59.704 MB, end = 60.396 MB, delta = 0.692 MB

INFO:   Elaboration peak resident set memory usage = 60.396 MB

INFO: ***** Ending Elaboration ... *****

[EFX-0000 INFO] ... Setting Synthesis Option: mode=speed

INFO: ***** Beginning Reading Mapping Library ... *****

-- Analyzing Verilog file 'C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v' (VERI-1482)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(8): INFO: compiling module 'EFX_ADD' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(21): INFO: compiling module 'EFX_FF' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(38): INFO: compiling module 'EFX_COMB4' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(48): INFO: compiling module 'EFX_GBUFCE' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(57): INFO: compiling module 'EFX_LUT4' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(65): INFO: compiling module 'EFX_MULT' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(100): INFO: compiling module 'EFX_DSP48' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(156): INFO: compiling module 'EFX_DSP24' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(209): INFO: compiling module 'EFX_DSP12' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(262): INFO: compiling module 'EFX_RAM_4K' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(322): INFO: compiling module 'EFX_RAM_5K' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(394): INFO: compiling module 'EFX_DPRAM_5K' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(499): INFO: compiling module 'RAMB5' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(561): INFO: compiling module 'EFX_RAM_10K' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(653): INFO: compiling module 'EFX_RAM10' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(754): INFO: compiling module 'EFX_DPRAM10' (VERI-1018)

C:/Efinity/2023.2/sim_models/maplib/efinix_maplib.v(884): INFO: compiling module 'EFX_SRL8' (VERI-1018)

INFO: Reading Mapping Library took 0.0172926 seconds.

INFO:   Reading Mapping Library took 0 seconds (approximately) in total CPU time.

INFO: Reading Mapping Library virtual memory usage: begin = 56.068 MB, end = 56.328 MB, delta = 0.26 MB

INFO:   Reading Mapping Library peak virtual memory usage = 56.328 MB

INFO: Reading Mapping Library resident set memory usage: begin = 60.62 MB, end = 60.86 MB, delta = 0.24 MB

INFO:   Reading Mapping Library peak resident set memory usage = 60.86 MB

INFO: ***** Ending Reading Mapping Library ... *****

[EFX-0000 INFO] ... Pre-synthesis checks begin

[EFX-0000 INFO] ... Pre-synthesis checks end (Real time : 0s)

[EFX-0000 INFO] ... NameSpace init begin

[EFX-0000 INFO] ... NameSpace init end (Real time : 0s)

[EFX-0000 INFO] ... Mapping design "helloworld"

[EFX-0000 INFO] ... Hierarchical pre-synthesis "helloworld" begin

[EFX-0000 INFO] ... Hierarchical pre-synthesis "helloworld" end (Real time : 0s)

[EFX-0200 WARNING] Removing redundant signal : i[31]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[30]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[29]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[28]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[27]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[26]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[25]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[24]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[23]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[22]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[21]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[20]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[19]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[18]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[17]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[16]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[15]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[14]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[13]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] Removing redundant signal : i[12]. (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:39)

[EFX-0200 WARNING] The above message was generated too many times, subsequent similar messages will be muted.

[EFX-0657 WARNING] Mapping into logic memory block 'mem' (50 bits) (C:\Efinity\2023.2\project\tutorial\helloworld\helloworld.v:36) because size is too small (<=64)

[EFX-0000 INFO] ... Flat optimizations begin

[EFX-0000 INFO] ... Flat optimizations end (Real time : 0s)

[EFX-0000 INFO] ... Flat synthesis begin

[EFX-0000 INFO] ... Flat synthesis end (Real time : 0s)

[EFX-0000 INFO] ... Flat optimizations begin

[EFX-0000 INFO] ... Flat optimizations end (Real time : 0s)

[EFX-0000 INFO] ... Check and break combinational loops begin

[EFX-0000 INFO] ... Check and break combinational loops end (Real time : 0s)

[EFX-0000 INFO] ... Sequential Optimization begin

[EFX-0000 INFO] ... Clock Network 'clk' with 18 loads will be considered for sequential optimization.

[EFX-0000 INFO] ... Sequential Optimization deduced 25 equivalent points.

[EFX-0000 INFO] ... Sequential Optimization end (Real time : 3s)

[EFX-0000 INFO] ... SOP modeling begin

[EFX-0000 INFO] ... SOP modeling end (Real time : 0s)

[EFX-0000 INFO] ... LUT mapping begin

[EFX-0000 INFO] ... LS, strategy: 3, nd: 36, ed: 125, lv: 4, pw: 95.92

[EFX-0000 INFO] ... LUT mapping end (Real time : 0s)

[EFX-0000 INFO] ... Post-synthesis Verific netlist creation begin

[EFX-0000 INFO] ... Post-synthesis Verific netlist creation end (Real time : 0s)

[EFX-0000 INFO] ... Postmap Retiming Optimization begin

[EFX-0000 INFO] ... Clock Network 'clk' with 18 loads will be considered for retiming optimization.

[EFX-0000 INFO] ... Performed 0 retime moves.

[EFX-0000 INFO] ... Postmap Retiming Optimization end (Real time : 4s)

[EFX-0000 INFO] ... Post-synthesis Verific netlist unification/params processing begin

[EFX-0000 INFO] ... Post-synthesis Verific netlist unification/params processing end (Real time : 0s)

INFO: ***** Beginning VDB Netlist Checker ... *****

INFO: VDB Netlist Checker took 0.0008936 seconds.

INFO:   VDB Netlist Checker took 0 seconds (approximately) in total CPU time.

INFO: VDB Netlist Checker virtual memory usage: begin = 67.424 MB, end = 67.424 MB, delta = 0 MB

INFO:   VDB Netlist Checker peak virtual memory usage = 89.812 MB

INFO: VDB Netlist Checker resident set memory usage: begin = 74.376 MB, end = 74.412 MB, delta = 0.036 MB

INFO:   VDB Netlist Checker peak resident set memory usage = 93.728 MB

INFO: ***** Ending VDB Netlist Checker ... *****

-- Writing netlist 'helloworld' to Verilog file 'C:/Efinity/2023.2/project/tutorial/helloworld/outflow/helloworld.map.v' (VDB-1030)

[EFX-0000 INFO] Resource Summary 

[EFX-0000 INFO] =============================== 

[EFX-0000 INFO] EFX_ADD         :   12

[EFX-0000 INFO] EFX_LUT4        :   41

[EFX-0000 INFO] EFX_FF          :   18

[EFX-0000 INFO] EFX_GBUFCE      :   1

[EFX-0000 INFO] =============================== 

  1. 2024年03月18日 05:13 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0