Thermal Science & Engineering Vol.15 No.2 (2007)ࡊࡠࠣ࡜ࡒࡦࠣน⢻ߥ LSI ߦࠃࠆੑᰴరቯᏱᾲવዉࠪࡒࡘ࡟࡯࠲૒┻ ା৻̐ ᑝ੗ ⟵᣿̐Ⴧ↰ ାਯ̑ દ⮮ ᥓ⟵̑Simulator of Two-Dimensional Steady Heat Conduction by Programmable LSIShin-ichi SATAKE̐ , Yoshiaki HIROI̐ , Nobuyuki MASUDȂ and Tomoyoshi ITȎ

Abstract
A special purpose computer is developed for two-dimensional steady heat conduction problem by FPGA (FieldProgrammable Gate Array) chip on a PCI (Peripheral Component Interconnect) board. The computer consists of fourinternal memories, a calculation circuit, two adders, and one multiplier. The computational domain is divided by 64×64
meshes. The computation is adopted 32 bit fixed-point calculation to obtain stationary solution. The same calculation isperformed by a general PC with C language. FPGA results are evaluated about the performance accuracy and thecalculation time compared with C language results. Although computational time of FPGA is three times larger
than that of C language, more speed-up will be achieved if the program is directly installed in the LSI chip.
Key Words: FPGA, A special purpose computer, Heat conduction problem㧝 ߪߓ߼ߦߣߪᅢ߹ߒߊߥ޿㧚ߒߚ߇ߞߡߘߩ೨Ბ㓏ߣߒߡ౉ᔨߥḰ஻߇ᔅⷐߣߥࠆ㧚ㄭᐕߩᢙ୯ࠪࡒࡘ࡟࡯࡚ࠪࡦᛛⴚ෸߮⸘▚ᯏߩ⊒ ᚒ‫ ߪޘ‬FPGA (Field Programmable Gate Array)ࠍ૶

ዷߦࠃࠅ㧘᭽‫ߥޘ‬ᢙ୯ታ㛎߇⎇ⓥቶౝߢⴕࠊࠇࠆࠃ↪ߒߡኾ↪⸘▚ᯏࠍ⹜૞ߒߚ㧚FPGA ߪㅢᏱߩ LSI߁ߦߥߞߚ㧚ߘࠇߦ઻ߞߡࠪࡒࡘ࡟࡯࡚ࠪࡦߦⷐߔߣ⇣ߥࠅ㧘ࡊࡠࠣ࡜ࡒࡦࠣߐࠇߚ⸥ㅀߦᓥߞߡ㔚᳇ࠆ⸘▚ᤨ㑆߽Ⴧടߔࠆ௑ะߦ޽ࠆ㧚⸘▚ᤨ㑆ࠍ⍴❗

⊛ߦ⺰ℂ㈩✢ࠍⴕ߁⚛ሶߢ޽ࠆ㧚ࡄ࠰ࠦࡦ߿ࡢ࡯ࠢߔࠆᣇᴺߣߒߡ㧘㜞ㅦߥ⸘▚ᯏ߿ࡊࡠࠣ࡜ࡓ࠰ࡈ࠻ࠬ࠹࡯࡚ࠪࡦߢ࿁〝ࠍ⸳⸘ߒ㧘࠲࡯ࠥ࠶࠻↪ߦ㈩✢ߩࠕ࡞ࠧ࡝࠭ࡓࠍ㜞ㅦൻߔࠆߎߣ߇ߔߋߦᕁ޿ߟߊ

㈩⟎ߒߚ࠺࡯࠲ࠍォㅍߒߡࠦࡦࡈࠖࠣ࡟࡯࡚ࠪࡦߔ߇㧘ࠬ࡯ࡄ࡯ࠦࡦࡇࡘ࡯࠲ߥߤࠍ૶߃ࠆⅣႺߦߥߊ㧘ࠆߎߣߦࠃࠅ㧘ౝㇱ⺰ℂࠍౣ᭴ᚑߔࠆߎߣ߇น⢻ߢ߆ߟ⸘▚ኻ⽎߇㒢ቯߐࠇࠆߩߢ޽ࠇ߫㧘࿑ 1 ߦ␜ߐ޽ࠆ[2]㧚ࡂ࡯࠼࠙ࠚࠕ⸥ㅀ⸒⺆ߩᾫ㆐߇ᔅⷐߣߥࠆ

ࠇࠆࠃ߁ߥ PC ߣ LSI ╬ࠍ⚵ߺวࠊߖߚኾ↪⸘▚ᯏ߽ߩߩ㧘ฦࠪࡒࡘ࡟࡯࡚ࠪࡦߦᔅⷐߥኾ↪⸘▚ᯏࠍࠍ૞⵾ߔࠆߎߣ߇⠨߃ࠄࠇࠆ[1]㧚଀߃߫㧘ኾ↪ LSI⋡⊛ߦᔕߓߡ᭴ᚑ㧘෸߮ౣ᭴ᚑߒ㧘૶↪ߔࠆߎߣ߇ࠍ૞⵾ߒ㧘ߎࠇࠍ PC ╬ߣ⚵ߺวࠊߖߡ⸘▚ࠍⴕ߃಴᧪ࠆ㧚ዊ࡮ਛⷙᮨߩ LSI ↢↥ߢߪౣ᭴▽ਇน⢻ߢ㧘߫㧘⸘▚ㅦᐲࠍะ਄ߐߖࠆߎߣ߇ߢ߈ࠆ㧚ߒ߆ߒ㧘ᄢ㊂↢↥ࠍ೨ឭߣߒߡ޿ࠆኾ↪ LSI ߣᲧセߒߡ㧘㐿৻ᐲኾ↪ LSI ࠍ૞⵾ߒߡߒ߹߃߫㧘໧㗴ὐ߇⊒⷗ߐ⊒ࠦࠬ࠻ߩ㕙ߢ FPGA ߇᦭೑ߢ޽ࠆ㧚߹ߚ㧘ኾ↪ LSIࠇߚߣߒߡ߽ LSI ࠍୃᱜߔࠆߎߣߪ಴᧪ߕ㧘߹ߚߘߣᲧセߔࠆߣ⸘▚ㅦᐲߪഠࠆ߇㧘ㅢᏱߩ PC ߣᲧセࠇએᄖߩ⸘▚ࠍⴕ߁㓙ߦ߽ᵹ↪ߔࠆߎߣ߇㔍ߒ޿㧚ߔࠇ߫㧘․ߦਗ೉⸘▚ಣℂߦ߅޿ߡ㧘චಽߥㅦᐲߩ

ߎࠇࠄߩⷐ࿃ߦࠃࠅ㧘቟ᤃߦኾ↪ LSI ࠍ૞⵾ߔࠆߎะ਄߇ᦸ߼ࠆ㧚ߒߚ߇ߞߡ㧘ਗ೉⸘▚ಣℂߩᄙ޿ࠪฃઃᣣ: 2006 ᐕ 3 ᦬ 11 ᣣ㧘╙ 43 ࿁ᣣᧄવᾲࠪࡦࡐࠫ࠙ࡓࠃࠅฃઃ㧘 ᜂᒰࠛ࠺ࠖ࠲࡯: 㤥↰ ᣿ᘏ    ၮ␆Ꮏቇㇱ㔚ሶᔕ↪Ꮏቇ⑼ (‫ޥ‬278-8510 ජ⪲⋵㊁↰Ꮢጊፒ 2641)
̑ජ⪲ᄢቇᄢቇ㒮 Ꮏቇ⎇ⓥ⑼ ੱᎿࠪࠬ࠹ࡓ⑼ቇኾ᡹ (‫ޥ‬263-8522 ජ⪲ᏒⒷᲫ඙ᒎ↢↸ 1-33)
̐᧲੩ℂ⑼ᄢቇ
- 85 -© 2007 The Heat Transfer Society of Japan

Thermal Science & Engineering Vol.15 No.2 (2007)

T=0
৻᭽⊒ᾲ
Q

yFig. 1 Summary of special purpose computer.

xࡒࡘ࡟࡯࡚ࠪࡦࠍⴕ߁႐วߦ FPGA ࠍ㜞ㅦኾ↪⸘▚ᯏߣߒߡ೑↪ߔࠆߎߣߢ㧘ࠃࠅല₸⊛ߥ࠺࡯࠲ಣℂࠍⴕ߁ߎߣ߇಴᧪ࠆ㧚ᧄ⺰ᢥߢߪ㧘ੑᰴరቯᏱᾲવዉᣇ⒟ᑼࠍ⸃ߊኾ↪⸘▚ᯏࠍ⸳⸘ߒ㧘FPGA ߦࠦࡦࡈࠖࠣ࡟࡯࡚ࠪࡦߒߡ⸘▚ࠍⴕ޿㧘ߘߩᕈ⢻ߦߟ޿ߡ⹏ଔߒߚ㧚Fig. 2 Computational domain.

Ti , j 1㧞 ⃻⁁ߩ಄ළⵝ⟎ߩ⹏ଔᧄ⺰ᢥߢߪ 11 ߩᐔ㕙ࠍ 6464 ߩࡔ࠶ࠪࡘ㗔ၞߦಽഀߒߡቯᏱᾲવዉᣇ⒟ᑼߩ⸘▚ࠍⴕ߁ߎߣࠍ⠨Ti 1, j߃ࠆ㧚࿑ 2 ߦ⸘▚ኻ⽎ࠍ␜ߔ㧚Ti , jTi 1, jੑᰴరቯᏱᾲવዉᣇ⒟ᑼߪએਅߩᑼߢ⴫ߐࠇࠆ㧚Ti , j 1

§ w 2T w 2T ·O ¨ 2  2 ¸  Q 0          (1)
wy ¹
© wx

Fig. 3 Discrete variable in grid point.

ߚߛߒ㧘T ߪ᷷ᐲߢ޽ࠆ㧚Oߪᾲવዉ₸ߢ޽ࠅ㧘߇ᓧࠄࠇࠆ㧚ߎߎߢ n ߪࠪࡒࡘ࡟࡯࡚ࠪࡦࠬ࠹࠶ࡊߎߎߢߪO㧩1 ߣߔࠆ㧚x㧘y ߩᩰሶ㑆㓒ࠍ h ߣߔࠆߣ㧘ߢ޽ࠆ㧚ᓥߞߡ೨ᓟᏀฝߩ྾ὐߩ᷷ᐲ߆ࠄᰴߩࠬ࠹

ੑᰴరߩᏅಽൻᑼߪᰴߩࠃ߁ߦਈ߃ࠄࠇࠆ㧚࠶ࡊߩ Ti,j ߩ᷷ᐲ߇੖ὐᏅಽᣇ⒟ᑼߢ᭴ᚑߐࠇ㧘࿑ 3ߩࠃ߁ߦ⴫ߐࠇࠆ㧚(Ti 1, j  Ti 1, j  Ti , j 1  Ti , j 1  4Ti , j )h2๟࿐ 4 ὐߩ᷷ᐲߦߪ㧘ߘߩᤨ߹ߢߦᓧࠄࠇߡ޿ࠆ

Q0  (2)᷷ᐲࠍ↪޿ߡ⸘▚ࠍⴕ޿㧘ߎߩᠲ૞ࠍో㗔ၞߦኻߒ૗ᐲ߽෻ᓳߒߡⴕ߁ߎߣߦࠃࠅ෼᧤⸃߇ᓧࠄࠇࠆ੐
ߣߒ㧘SOR ߥߤߩടㅦߪⴕࠊߥ޿㧚߹ߚ㧘Ⴚ⇇᧦ઙߎߎߢ㧘Ti+1,j㧘Ti-1,j㧘Ti,j+1㧘T i,j-1㧘ߪ೨ᓟ਄ਅߩ᷷

ߣߒߡᐔ㕙ߩ๟࿐ࠍోߡ࠺ࠖ࡝ࠢ࡟᧦ઙ(T=0)ߣߒ

ᐲߢ޽ࠅ㧘Ti,j ߇᳞߼ߚ޿᷷ᐲߢ޽ࠆ㧚਄ᑼࠍᄌᒻߒ

ߚ㧚ࠬ࠹࠶ࡊߩᄌൻ߽฽߼ࠆߣ㧘㧟 FPGA ⸳⸘n 1i, jT(Ti n1, j  Ti n1, j  Ti ,nj 1  Ti ,nj 1 )
4



Qh 2
  (3)4

ㅢᏱ FPGA ߿ LSI ࠍ૶↪ߒߚኾ↪⸘▚ᯏߢߪ PC஥ߣ࠴࠶ࡊ஥ߢ⸘▚ࠍಽᜂߒ㧘⸘▚ㅦᐲߩะ਄ࠍ࿑
ߞߡ޿ࠆ߇㧘੹࿁ߩ࿁〝ߢߪ⸘▚ᑼ߇න⚐ߢ޽ࠆߣ޿߁ߎߣ߽޽ࠅ㧘⸘▚ࠍಽᜂߔࠆࠃ߁ߥᒻߦߪߒߡ

- 86 -© 2007 The Heat Transfer Society of Japan

Thermal Science & Engineering Vol.15 No.2 (2007)ࠆ㧚ᧄ⸘▚ߢߪ 32 bit ోߡࠍዊᢙߩ⴫⃻ߦ೑↪ߒߡ߅ࠅ㧘߹ߚ⽶ߩ୯߇ሽ࿷ߒߥ޿ߚ߼╓ภㇱ෸߮ᢛᢙㇱߪሽ࿷ߒߥ޿㧚ㅢᏱ㧘ട▚ࠍⴕߞߚ㓙ߦ bit ᢙ߇Ⴧടߔࠆ႐ว߇⠨߃ࠄࠇࠆ߇㧘੹࿁ߩ⸘▚ߢߪ➅ࠅ਄ࠅ߇ሽ࿷ߒߥ޿ߚ߼ߘߩࠃ߁ߥ႐วߪήⷞߢ߈ࠆ㧚߹ߚ㧘ਸ਼▚ࠍⴕ߁ߣ bit ᢙ߇୚ߦߥࠆߚ߼㧘ਸ਼▚ᓟߩ୯ߪ਄૏ 32 bit ߩߺࠍ૶↪ߒ㧘⺋Ꮕࠍᷫࠄߔߚ߼
ߦਅ૏ 32 bit ߩᦨ਄૏ bit ߇ 1 ߩᤨߦߪ਄૏ 32 bit ߩᦨਅ૏ߦ 1 ࠍട▚ߔࠆࠃ߁ߥਣ߼ಣℂࠍⴕ߁ਸ਼▚ེߣߒߡ૞⵾ߒߚ㧚࿑ 5 ߦ 32 bit ࿕ቯዊᢙὐ⴫⃻ߣਸ਼▚ߩਣ߼ಣℂࠍ␜ߔ㧚⸘▚࿁〝ߢߪട▚ེࠍੑߟ㧘

Fig. 4㩷 HORN-5 board.

ਸ਼▚ེࠍ৻ߟ૶↪ߒߡ޿ࠆ㧚߅ࠄߕ㧘ో⸘▚ࠍ FPGA ߢⴕ߁ࠃ߁ߦ⸳⸘ߒߚ㧚ᧄ࿁〝ߪၮᧄ⊛ߦߪࠬ࠹࡯࠻ࡑࠪࡦߢ᭴ᚑߐࠇߡ

⸘▚ᯏߩ⸳⸘ߦߪ Xilinx ␠⵾ FPGA virtex II Pro(700߅ࠅ㧘ࠬ࠹࡯࠻ߩㆫ⒖ߦߪ೨ㅀߩหᦼࠢࡠ࠶ࠢࠍ↪

ਁࠥ࡯࠻⋧ᒰ)ࠍ 4 ߟ៞タߒߡ޿ࠆජ⪲ᄢቇߣℂൻ޿ߡ޿ࠆ㧚৻࿁ߩ⸘▚ߦߪ࿑ 6 ߦ␜ߐࠇࠆࠃ߁ߦ 4ቇ⎇ⓥᚲ߇౒ห㐿⊒ߒߚ HORN-5 ࡏ࡯࠼ࠍ૶↪ߒߚ㧚ࠢࡠ࠶ࠢࠍⷐߔࠆ㧚⸘▚࿁〝ߣ೙ᓮ࿁〝ߩ㑆ߢߩ࠺

࿑ 4 ߦࡏ࡯࠼ࠍ␜ߔ㧚ᧄࡏ࡯࠼ߪ PCI (Peripheral࡯࠲ߩ߿ࠅขࠅߦ 2 ࠢࡠ࠶ࠢࠍⷐߔࠆߚ߼㧘⸘▚⚳Component Interconnect)ࠍ੺ߒߡ PC ߣធ⛯ߐࠇߡ߅

ੌ߹ߢ

ࠅ㧘PCI ࡃࠬ(33 MHz ߢേ૞)ߣหᦼࠍขࠆߚ߼ߦ 66MHz ߣ 133 MHz ߩੑ⒳㘃ߩࠢࡠ࠶ࠢ߇↪ᗧߐࠇߡ޿ࠆ㧚 ᧄࡏ࡯࠼ߪ 4 ߟߩ FPGA ࠍ೑↪ߒߚಽഀ⸘▚߇น⢻ߢ޽ࠆ߇㧘PC ߣߩ࠺࡯࠲ߩ߿ࠅߣࠅߦߪ 4 ߟߩFPGA ౒ㅢߩࡃࠬࠍ੺ߒߡⴕ߁ߚ߼㧘หᤨߦ PC ߣߩㅢାࠍⴕ߁ߎߣߪߢ߈ߥ޿㧚ߒ߆ߒ㓞ࠅวߞߚFPGA ห჻ߪኾ↪ߩࡃࠬߢធ⛯ߐࠇߡ߅ࠅ㧘੕޿ߦㅢା߇ߢ߈ࠆ㧚ߘߒߡࡏ࡯࠼਄ㇱߦߪ㧘
DDR-SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory) 256 MB ៞タࠍ 4 ߟ៞タߒ
Fig. 5 32 bit fixed-point calculation.

ߡ߅ࠅ㧘ߘࠇߙࠇߩ FPGA ࠃࠅኾ↪ߩࡃࠬߢࠕࠢ࠮
ࠬߢ߈ࠆ㧚੹࿁ߪߎߩ DDR-SDRAM ߪ૶↪ߖߕ㧘4
ߟߩ FPGA ࠍ૶↪ߒߚਗ೉⸘▚߽ⴕࠊߕ㧘1 ߟߩߺࠍ૶↪ߒߡ࿁〝ߩ᦭ലᕈࠍᬌ⸽ߒߚ㧚਄⸥ߩ FPGA ࡏ࡯࠼ࠍ૶↪ߒ㧘ࡂ࡯࠼࠙ࠚࠕ⸥ㅀTN⸒⺆ߦ VHDL(VHSIC Hardware Description Language)
ࠍ↪޿ߡ⸳⸘ࠍⴕߞߚ[3]㧚VHDL ߪ C ߿ Pascal ߥߤTSߩࠃ߁ߥᒻᑼ⸒⺆ߢ޽ࠅ㧘࠺ࠖࠫ࠲࡞࿁〝ߩേ૞߿᭴ㅧ㧘േ૞ߩ࠲ࠗࡒࡦࠣ߹ߢ⸥ㅀߢ߈ࠆ[4]㧚ߘߒߡTW૞ᚑน⢻ߥ࿁〝ߩⷙᮨߪ㧘FPGA ߩ࿁〝ⷙᮨߦଐሽ
ߔࠆ㧚VHDL ࡊࡠࠣ࡜ࡓߩ⸥ㅀ෸߮㈩✢㈩⟎࠺࡯࠲QG h 2TP14TE

ߩ૞ᚑߦߪ Xilinx ␠ߩࡊࡠࠣ࡜ࡑࡉ࡞ࡠࠫ࠶ࠢ૞ᚑ࠰ࡈ࠻࠙ࠚࠕߢ޽ࠆ ISE6.3 ࠍ૶↪ߒߚ㧚 ࿁〝⥄૕ߩ᭴ᚑߪ਄૏ߩ೙ᓮ࿁〝㧘ਅ૏ߩ FPGAFig. 6 Block chart of calculation circuit.

ౝㇱߩࡔࡕ࡝෸߮⸘▚࿁〝ߢ᭴ᚑߐࠇߡ޿ࠆ㧚᷷ᐲߩ⸘▚ߪ 32 bit ࿕ቯዊᢙὐṶ▚ߦࠃߞߡ⸘▚ߒߡ޿- 87 -© 2007 The Heat Transfer Society of Japan

Thermal Science & Engineering Vol.15 No.2 (2007)

ߦታ⾰ 6 ࠢࡠ࠶ࠢᔅⷐߣߥࠆ㧚FPGA ౝㇱߩࡔࡕ࡝calc : thermal port map(TN,TS,TE,TW,C_START,CLK,RESET,C_END,TP);ߦߪ⃻࿷ߩࠬ࠹࠶ࡊߩో㗔ၞ᷷ᐲ࠺࡯࠲ߣᰴߩࠬ࠹

memory_N : thermem port map(ADD_N,CLK,IN,OUT,WE);
memory_S : thermem port map(ADD_S,CLK,IN,OUT,WE);
memory_W : thermem port map(ADD_W,CLK,IN,OUT,WE);
memory_E : thermem port map(ADD_E,CLK,IN,OUT,WE);࠶ࡊߩో㗔ၞ᷷ᐲ࠺࡯࠲ࠍᩰ⚊ߒߡ߅ࠅ㧘৻ߟߩ࠺࡯࠲ߩᦠ߈ㄟߺ෸߮ ขࠅ಴ߒߦߪ 3 ࠢࡠ࠶ࠢࠍⷐߔࠆ㧚process begin
case state iswhen “00” => --read calc data from memory
ADD_E <= CENTER_ADD + "0000000000001";
ADD_W <= CENTER_ADD - "0000000000001";
ADD_N <= CENTER_ADD + "0000001000000";
ADD_S <= CENTER_ADD - "0000001000000";state <= “01”;when “01” =>--calc start
C_START <= ‘1’;
if C_END = 1 thenstate <=“10”;end if;when “10” => --write calc data to memory
WE <= ‘1’;
ADD_E <= CENTER_ADD;
ADD_W <= CENTER_ADD;
ADD_N <= CENTER_ADD;
ADD_S <= CENTER_ADD;
state <= “00”;೨ㅀߩߣ߅ࠅ㧘⸘▚ߦᔅⷐߥนᄌ࠺࡯࠲ߪ 4 ߟ޽ࠆߚ߼㧘ߎࠇࠍ FPGA ౝㇱߩࡔࡕ࡝߆ࠄขࠅ಴ߔߩ
ߦߪ 12 ࠢࡠ࠶ࠢ㧘⸘▚ߒߚ࠺࡯࠲ࠍࡔࡕ࡝ߦᦠ߈ㄟ
߻ߩߦ 3 ࠢࡠ࠶ࠢࠍⷐߔࠆߚ߼㧘৻ὐߩ᷷ᐲߩ⸘▚ߦ 15 ࠢࡠ࠶ࠢࠍⷐߔࠆߎߣߦߥࠆ㧚ߎࠇߪᄢ᏷ߥᤨ㑆ߩࡠࠬߢ޽ࠆߩߢ㧘ߎߩὐࠍᡷ⦟ߔࠆߚ߼ߦࡔࡕ
࡝ࠍ 4 ߟ૞⵾ߒ㧘ߎࠇࠄ߆ࠄ๟࿐ฦ‫ߩޘ‬᷷ᐲࠍขࠅ಴ߒ㧘⸘▚⚳ੌᓟߦోߡߩࡔࡕ࡝ߦ⸘▚ߒߚ࠺࡯࠲ࠍᦠ߈ㄟ߻ࠃ߁ߥᒻࠍߣߞߚ㧚ߎࠇߦࠃࠅ㧘྾ὐߩ࠺࡯࠲ߩขࠅ಴ߒࠍหᤨߦⴕ߃ࠆߚ߼㧘৻ὐߩ᷷ᐲ
ߩ⸘▚ߢߩ࠺࡯࠲ߩ⒖േߦ߆߆ࠆᤨ㑆ࠍ 6 ࠢࡠ࠶ࠢFig. 7 Outline program of VHDL.

ߦᷫࠄߔߎߣ߇಴᧪ߚ㧚᷷ᐲߩ⸘▚ߣ࠺࡯࠲ߩขࠅ
಴ߒߪ FPGA ߩ․ᓽߢ޽ࠆਗ೉ಣℂߦࠃࠅหᤨߦⴕstart߃ࠆߩߢ㧘⸘▚ࠍ฽߼ߚ৻ὐߩ᷷ᐲࠍಣℂߔࠆߩߦ߆߆ࠆᤨ㑆ߪ 6 ࠢࡠ࠶ࠢߣ޿߁ߎߣߦߥࠆ㧚ᐔ㕙ߩloop startᄖ๟ߦᒰߚࠆㇱಽߪႺ⇇᧦ઙߣߒߡ᷷ᐲਇᄌߢ޽ࠆ
ADD_E=Ti+1,j add
ADD_W=Ti-1,j add
ADD_N=Ti,j+1 add
ADD_S=Ti,j-1 addߚ߼㧘ో㗔ၞߩᰴߩࠬ࠹࠶ࡊߩ᷷ᐲߩ⸘▚߇⚳ੌߔࠆߦߪ 6262㧩3844 ࿁ห᭽ߩ⸘▚ࠍ➅ࠅ㄰ߔᔅⷐ߇޽ࠆ㧚࿑ 7 ߦ VHDL ߩࡊࡠࠣ࡜ࡓߩ᭎⇛ࠍ㧘࿑ 8ߦࡈࡠ࡯࠴ࡖ࡯࠻ࠍ␜ߔ㧚read Ti+1,jread Ti-1,jread Ti,j+1
read Ti,j-1㧠 ኾ↪⸘▚ᯏߦࠃࠆ⸘▚ߩ᭎ⷐ

calc Ti,jwrite Ti,jloop endendPC ߣ FPGA ߩ 㑆 ߩ ࠺ ࡯ ࠲ ߩ ㅢ ା ߦ ߪ 㧘Fig. 8 Flowchart of steady heat conduction problem.

CBUS[7:0](8 bit)ߣ DBUS[63:0](64 bit)ߩੑ⒳㘃ߩାภ✢ߦࠃߞߡⴕࠊࠇࠆ㧚ߎߩ߁ߜ CBUS ߪ PC ߆ࠄFPGA ߳ߩ࠺࡯࠲ߩᦠ߈ㄟߺ㧘෸߮ FPGA ߆ࠄ PC߳ߩ࠺࡯࠲ߩ⺒ߺㄟߺߩ㐿ᆎ㧘⚳ੌࠍ⴫ߔାภߩㅍฃାߦ૶↪ߐࠇࠆߚ߼㧘FPGA ౝㇱߩࡔࡕ࡝ߩࠕ࠼
࡟ࠬᜰቯ㧘෸߮⸘▚⚿ᨐߩข಴ߒߥߤߩౕ૕⊛ߥ࠺࡯࠲ߩ߿ࠅขࠅߦߪ DBUS ࠍ↪޿ࠆߎߣߦߥࠆ㧚ߎࠇࠄߩାภ✢ߦࠃࠆ࠺࡯࠲ߩฃߌᷰߒߪ㧘FPGA ઃዻߩ DLL ࡈࠔࠗ࡞෸߮ LIB ࡈࠔࠗ࡞ࠍ૶↪ߒߚ C++⸥ㅀߩࡊࡠࠣ࡜ࡓࠍ૞ᚑߒ㧘ߎࠇߦࠃߞߡ೙ᓮࠍⴕߞߚ㧚࿑ 9 ߦߎߩࡊࡠࠣ࡜ࡓߩേ૞ࠍ␜ߔ㧚ᦨೋߦࠦࡦࡈࠖࠣ࡟࡯࡚ࠪࡦߒߚ࿁〝ࠍ FPGA ߦታⵝߔࠆ㧚FPGA ߳ߩታⵝߦߪࡏ࡯࠼ઃዻߩ࠰ࡈ࠻࠙ࠚࠕࠍ↪޿ߡ޿ࠆ㧚ߘࠇએ㒠ߩ૞ᬺߪ C++ߦࠃߞߡ૞ᚑߒߚࡊࡠࠣ࡜ࡓߦࠃߞߡⴕࠊࠇࠆߎߣߦߥࠆ㧚- 88 -Fig. 9 Flow chart of communication between PC andFPGA.

© 2007 The Heat Transfer Society of Japan

Thermal Science & Engineering Vol.15 No.2 (2007)

వߕ OpenPciDev 㑐ᢙߦࠃߞߡ࠺ࡃࠗࠬࠍࠝ࡯ࡊ

Table 1 Computation time.

⸳⸘ᚻᴺFPGACࡦߔࠆ㧚ⶄᢙᨎߩࡏ࡯࠼ࠍ૶↪ߒߡ޿ࠆ㓙ߪߎߎߢߤߩࡏ࡯࠼ࠍ૶↪ߔࠆ߆ࠍ᳿ቯߔࠆ㧚ᰴߦ⸘▚ߩ㐿ᆎࠍᗧ๧ߔࠆାภࠍ FPGA ߦㅍାߔࠆ㧚೨ㅀߩߣ߅

᷷ᐲ(x = y = 32)
0.071342
0.071342⸘▚ᤨ㑆[s]3.49
0.941

ࠅ㧘࠺࡯࠲ߩㅍฃାߦߪ DBUS ࠍ↪޿ࠆᔅⷐ߇޽ࠆߚ ߼ 㧘 ࠺ ࡯ ࠲ ࠍ FPGA ߦ ᦠ ߈ ㄟ ߻ ߚ ߼ ߩ
WriteBase1Ulong 㑐ᢙࠍ૶↪ߒߡ㧘ⷙቯߩࠕ࠼࡟ࠬߦ࠺࡯࠲ࠍᦠ߈ㄟ߻㧚੹࿁⸳⸘ߒߚ࿁〝ߪ㧘ೋᦼ᧦ઙ

0 .08߿⸘▚᧦ઙߪ FPGA ߩౝㇱߢ୯ࠍ᳿߼ߡ޿ࠆߚ߼㧘0 . 07⸘▚㐿ᆎᤨߩ PC ߣߩㅢାߪ⸘▚㐿ᆎାภߩߺߣߥ

0 . 060 . 05

ࠆ㧚FPGA ౝㇱߩࡔࡕ࡝ߦߪ޽ࠄ߆ߓ߼⸘▚㐿ᆎߣ

T 0 . 04
0 . 03⸘ ▚⚳ੌࠍ⏕⹺ߔࠆߚ߼ߩ㗔ၞࠍ޽ࠄ߆ߓ߼↪ᗧ

0 . 02ߒߡ߅ߊ㧚⸘▚㐿ᆎ್ቯ↪ߩࠕ࠼࡟ࠬ㗔ၞߦ࠺࡯࠲

0 . 010 .00

߇ᦠ߈ㄟ߹ࠇࠆߣ㧘ߘࠇࠍ⸘▚㐿ᆎߩว࿑ߣߒߡౝ

60ㇱߢ⸘▚߇㐿ᆎߐࠇࠆ㧚40⸘▚ߪ FPGA ౝߢ⥄േ⊛ߦⷙቯ࿁ᢙ(ࠬ࠹࠶ࡊ)߹
ߢⴕࠊࠇࠆ㧚࡙࡯ࠩߪߘߩ㑆⸘▚߇⚳ੌߒߚ߆ߤ߁

60

40

20

X200Y

߆್ᢿߔࠆߚ߼ߦ࠺࡯࠲ࠍขࠅ಴ߔߚ߼ߩ

Fig. 10 Two- dimensional temperature distribution.

ReadBase1Ulong 㑐ᢙߦࠃࠅ⸘▚⚳ੌ್ቯ↪ߩࠕ࠼࡟ࠬߩ࠺࡯࠲ࠍขࠅ಴ߔ㧚⸘▚߇⚳ੌߔࠆߣߎߩࠕ

T࠼࡟ࠬߩ࠺࡯࠲߇ᦠ߈឵߃ࠄࠇࠆࠃ߁ߦ૞⵾ߒߡ޽
ࠆߩߢ㧘ߎߩ࠺࡯࠲ࠍ⏕⹺ߔࠆߎߣߢ⸘▚߇⚳ੌߒ

. 0 0 0 0 08.0
8. 0 0 0 0 06.0
6. 0T0 0 0 04.0
4. 0 0 0 0 02.0
2.u0100 060 00.0
0.0 0 0 0 02-2.0.0 0 0 0 -4.004.0 0 0 0 -6.006

ߡ޿ࠆ߆ߤ߁߆ࠍ್ᢿߔࠆߎߣ߇಴᧪ࠆ㧚ߎߩࠃ߁
ߥᚻᴺࠍߣࠆߩߪ੹࿁૶↪ߒߚࡏ࡯࠼ߢߪ FPGA ஥߆ࠄ PC ஥ߦ⥄േ⊛ߦ⸘▚߇⚳ੌߒߚᣦࠍ⍮ࠄߖࠆᣇᴺ߇ߥ޿ߚ߼ߢ޽ࠆ㧚⸘▚߇⚳ੌߒߚࠄ㧘೨ㅀߩ WriteBase1Ulong 㑐ᢙ-8.0ࠍ૶↪ߒߡో⸘▚⚿ᨐࠍขࠅ಴ߒ㧘C++ߩࡊࡠࠣ࡜

6040

ࡓ ߦ ߡ 10 ㅴ ᢙ ߩ ࠺ ࡯࠲ ߦ ᄌ ឵ ߔࠆ 㧚 ߘ ߩ ᓟ ߦClosePciDev 㑐ᢙߦࠃߞߡࠝ࡯ࡊࡦߒߚ࠺ࡃࠗࠬࠍXࠢࡠ࡯࠭ߒ㧘ో⸘▚ㆊ⒟ࠍ⚳ੌߔࠆ㧚

20
020

60

40

YFig. 11 Error margin with C language.
㧡 ⸘▚ㅦᐲᲧセ1 ߦ␜ߔ㧚਄⸥ߩኾ↪⸘▚ᯏߢ PCI ࡃࠬߣߩหᦼߦ 66MHz

੹࿁⸳⸘ߒߚ࿁〝ߢߪ㧘᷷ᐲߩ⸘▚⚿ᨐߦ㑐ߒߡߩࠢࡠ࠶ࠢࠍ૶↪ߒߡ⸘▚ࠍⴕ޿㧘10000 ࠬ࠹࠶ࡊߩ⸘▚ߦⷐߒߚᤨ㑆ࠍ᷹ቯߒ㧘㗔ၞߩ᷷ᐲࠍขᓧߒ

ߪ 10000 ࿁(10000 ࠬ࠹࠶ࡊ)⸘▚ᓟߦ߅ߌࠆ C ⸒⺆ߚ㧚߹ߚ㧘ߎߩ⸘▚ᯏߣห᭽ߩ⸘▚ࠍⴕ߁ࡊࡠࠣ࡜ߣߩᦨᄢ⺋Ꮕ߇ 5.010-7 㧑ߣ♖ᐲߦ㑐ߒߡߪ↳ߒ

ࡓࠍ C ⸒⺆(ᄌᢙߦߪ double ဳࠍ૶↪)ߢ૞ᚑߒ㧘ಽߥ޿⚿ᨐࠍᓧࠆߎߣ߇಴᧪ߚ㧚৻ᣇ⸘▚ᤨ㑆ߦ㑐Pentium4 1.8 GHz ࡊࡠ࠮࠶ࠨ៞タߩ PC ߢ⸘▚ࠍⴕ

ߒߡߪ C ⸒⺆ߦࠃࠆࡊࡠࠣ࡜ࡓߩ 3.7 ୚⒟ᐲߩᤨ㑆޿㧘ߘߩ⚿ᨐࠍᲧセߒߚ㧚࿑ 10 ߦ FPGA ߦࠃࠆ⸘߇߆߆ߞߡ޿ࠆ㧚▚⚿ᨐߩ୯ࠍ㧘࿑ 11 ߦ C ⸒⺆ࡊࡠࠣ࡜ࡓߣߩฦὐ㧢 ߅ࠊࠅߦߢߩ⺋Ꮕࠍ␜ߔ㧚߹ߚ㧘ฦ⸳⸘ᣇᑼߦ߅ߌࠆ 10000 ࠬ࠹࠶ࡊߩ⸘▚੹࿁㧘FPGA ߩേ૞ࠢࡠ࠶ࠢࠍ 66 MHz ߦ⸳ቯߒߦⷐߒߚᤨ㑆ߣ㧘ߘߩߣ߈ߩਛᄩߩ᷷ᐲ࠺࡯࠲ࠍ⴫ߡ࿁〝ߩᬌ⸽ࠍⴕ޿㧘චಽߥ♖ᐲ߇଻⸽ߐࠇߡ޿ࠆ
- 89 -© 2007 The Heat Transfer Society of Japan

Thermal Science & Engineering Vol.15 No.2 (2007)ߎߣࠍ⏕⹺ߒߚ㧚ㅦᐲ⊛ߦߪචಽߢߪߥ߆ߞߚ߇㧘࠼਄ㇱߦታⵝߐࠇߚ DDR-SDRAM ࠍ૶↪ߔࠆᣇᴺ⸳⸘਄ߢߪ 200 MHz ߢ߽േ૞น⢻ߥ⷗Ⓧ߽ࠅࠍᓧ߽⠨߃ࠄࠇࠆ߇㧘FPGA ౝㇱߩࡔࡕ࡝ࠃࠅㅢା

ߡ޿ࠆ㧚 ߒ߆ߒ㧘੹࿁૶↪ߒߚ FPGA ߪ 133 MHzߦᤨ㑆߇߆߆ࠆߚ߼⸘▚ᤨ㑆߇Ⴧ߃ߡߒ߹߁㧚චಽ߹ߢߢߒ߆േ૞ߒߥ޿ߩߢ㧘ࠃࠅ㜞޿േ૞๟ᵄᢙߩ

ߥࡔࡕ࡝߇ FPGA ౝߦ޽ࠇ߫㧘ᑼ(3)ࠍⶄᢙታⵝߒߡFPGA ࠍ૶↪ߔࠆᔅⷐ߇޽ࠆ㧚⃻࿷Ꮢ⽼ߐࠇߡ޿ࠆਗ೉ಣℂߔࠆߎߣ߇น⢻ߦߥࠆ㧚FPGA ߩౝㇱࡔࡕ

FPGA ߪ 500 MHz ߢേ૞ߔࠆ߽ߩ߽޽ࠆߩߢ㧘੹ᓟ㧘࡝ߪᐕ‫ޘ‬ᄢⷙᮨൻߒߡ޿ࠆߩߢ㧘ㄭ޿዁᧪ߦߪߐࠄ

200 MHz ߢߩታⵝߦᚑഞߔࠇ߫㧘FPGA 1 ߟ޽ߚࠅߦ᦭ലߥ⸘▚ᯏࠪࠬ࠹ࡓࠍ᭴▽ߔࠆߎߣ߇น⢻ߢ޽

PC 1 บಽߩᕈ⢻ࠍᓧࠆߎߣ߇ᦼᓙߢ߈ࠆ㧚ࠆߣ⷗ㄟ߹ࠇࠆ㧚߹ߚ㧘੹࿁ߩ࿁〝ࠍ〯߹߃ߡ㧘ౝ૶↪ߒߚࡏ࡯࠼ߦߪ 4 ߟߩ FPGA ߇៞タߐࠇߡ޿ㇱࡔࡕ࡝ࠍචಽߦ⚵ߺㄟࠎߛኾ↪ LSI ࠍ㐿⊒ߔࠇ߫㧘ࠆߩߢ㧘4 ߟߩ᧦ઙߩᢙ୯⸘▚ࠍหᤨߦⴕࠊߖࠆߎ⸘▚᧦ઙࠍ⥄↱ߦᄌᦝߔࠆߎߣߪߢ߈ߥ޿߽ߩߩ㧘ߣ߇น⢻ߢ޽ࠅ㧘૶޿ᣇߦࠃߞߡߪ㧘ታ⾰⊛ߦ PC⃻ᤨὐߦ߅޿ߡ߽᦭↪ߥࠪࠬ࠹ࡓߩ᭴▽ߪน⢻ߢ޽

ߩ 4 ୚ߩ㜞ㅦൻࠍታ⃻ߔࠆߎߣߦߥࠆ㧚ߐࠄߦ㧘૶ࠆߣ⠨߃ࠄࠇࠆ㧚↪ߒߚࡏ࡯࠼ߪ PC ߦᮡḰⵝ஻ߐࠇߡ޿ࠆ PCI ⷙᩰߩ߽ߩߢ޽ࠆߚ߼㧘1 บߩ PC ߦ 4 ᨎ⒟ᐲⵝ⌕ߔࠆߎෳ⠨ᢥ₂ߣ߇ߢ߈㧘ߘߩ႐วߪℂᗐ⊛ߦߪ 16 ୚⒟ᐲߩ⸘▚ㅦ

[1] Ito, T., Masuda N., Yoshimura K., Shiraki A.,ᐲ߇ᓧࠄࠇࠆߣ⠨߃ࠄࠇࠆ㧚ߒ߆ߒ㧘ታ㓙ߦߪ⸘▚

Shimobaba, T. and Sugie, T.,” A special-purposeㅦᐲ߇Ⴧടߒߡ߽ࡏ࡯࠼਄ߩ⇣ߥࠆ FPGA ߣߩㅢାcomputer for electroholography HORN-5 to realize߿㧘⇣ߥࠆ FPGA ࡏ࡯࠼ߣߩㅢାߩᔅⷐᕈ߇಴ߡ߈a real-time reconstruction”, Optics Express 13(6)ߚ႐ว㧘ߘߎߢࡏ࠻࡞ࡀ࠶ࠢߦߥࠆน⢻ᕈ߇޽ࠆ㧚(2005) 1923-1932.
[2] ખ㊁Ꮑ㧘VHDL ߦࠃࠆࡑࠗࠢࡠࡊࡠ࠮࠶ࠨ⸳⸘ߘߩߚ߼㧘ਗ೉ಣℂߦ߅޿ߡߪߥࠆߴߊઁߩ FPGA౉㐷㧘CQ ಴ ␠㧘2002.

ߣㅢାߔࠆᔅⷐ߇ߥ޿ࠃ߁ߦ㧘ㆡಾߥ⸘▚㗔ၞߩಽ[3] ਗᧁ⑲᣿㧘᳗੗ਗ਼㆏㧘VHDL ߦࠃࠆ࠺ࠖࠫ࠲࡞ഀࠍߔࠆᔅⷐ߇޽ࠆ㧚࿁〝౉㐷㧘ᛛⴚ⹏⺰␠㧘2001.

߹ߚ㧘੹࿁ߩ࿁〝ߪ 1 ߟߩ FPGA ߦᑼ(3)ࠍ 1 ࠮࠶࠻[4] ศ↰ߚߌ߅㧘የ࿾ඳ㧘VHDL ߢቇ߱࠺ࠖࠫ࠲࡞ߒ߆ታⵝߢ߈ߥ߆ߞߚ߇㧘ߎࠇߪ FPGA ߦౝ⬿ߐࠇ࿁〝⸳⸘㧘CQ ಴ ␠㧘2002.

ߡ޿ࠆࡔࡕ࡝ኈ㊂ߢ೙㒢ߐࠇߚߚ߼ߢ޽ࠆ㧚ࡏ࡯- 90 -© 2007 The Heat Transfer Society of Japan