ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻي ﻣﺪارﻫﺎي ﺣﺴﺎﺑﯽ دﻫﺪﻫﯽ ﺑﺮ روي ﻣﻌﻤﺎريﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ
محورهای موضوعی : مهندسی برق و کامپیوتر
سمانه امامی
1
(دانشگاه سمنان)
کلید واژه: ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻ, ﺣﺴﺎب دﻫﺪﻫﯽ, ﻣﻌﻤﺎريﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ, نگاشت روی سختافزار, اختصاص منابع,
چکیده مقاله :
اﻓﺰاﯾﺶ ﻗﺎﺑﻠﯿﺖﻫﺎي ﻣﺪارﻫﺎي ﻣﺠﺘﻤﻊ و ﭘﯿﭽﯿﺪﮔﯽ ﺑﺮﻧﺎﻣﻪﻫﺎي ﮐﺎرﺑﺮدي، روشﻫﺎ و اﺑﺰارﻫﺎي ﻃﺮاﺣﯽ ﺳﺨﺖاﻓﺰار را ﺑﻪ ﺳﻤﺖ ﺳﻄﻮح ﺑﺎﻻﺗﺮي از اﻧﺘﺰاع ﺳﻮق داده و ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻ، ﯾﮑﯽ از ﮐﻠﯿﺪيﺗﺮﯾﻦ ﮔﺎمﻫﺎ در اﻓﺰاﯾﺶ ﺳﻄﺢ اﻧﺘﺰاع میباشد. در ﺳﺎلهای اﺧﯿﺮ، ﺗﺤﻘﯿﻘﺎت ﮔﺴﺘﺮدهاي ﺑﺮاي ﻃﺮاﺣﯽ ﺳﺎﺧﺘﺎرﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي ﺑﺎ ﻫﺪف ﺣﺴﺎب دﻫﺪﻫﯽ ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ. از آنجا که از یک سو، اﺳﺘﻔﺎده ﻣؤﺛﺮ از اﯾﻦ ﺳﺎﺧﺘﺎرﻫﺎ وابسته ﺑﻪ وﺟﻮد اﻟﮕﻮریتمها و اﺑﺰارﻫﺎي ﻣﻨﺎﺳﺐ ﺟﻬﺖ ﭘﯿﺎدهﺳﺎزي ﻃﺮاﺣﯽ ﺑﺮ روي ﺳﺨﺖاﻓﺰار بوده و از سوی دیگر، ﭘﮋوﻫﺶ در زﻣﯿﻨﻪ ﺗﻮﺳﻌﻪ اﯾﻦ دﺳﺘﻪ از اﻟﮕﻮرﯾﺘﻢﻫﺎ بسیار اندک و محدود بوده است، در این مقاله روشهایی ﺑﺮاي ﺳﻨﺘﺰ ﺧﻮدﮐﺎر ﺗﻮﺻﯿﻒ ﺳﻄﺢ ﺑﺎﻻ از ﻣﺪارﻫﺎي ﺣﺴﺎﺑﯽ دﻫﺪﻫﯽ بر روي ﯾﮏ ﻣﻌﻤﺎري ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ اراﺋﻪ خواهد شد. بستر سختافزاری انتخابشده، معماری قابل بازپیکربندی درشتدانه DARA بوده و روشهای پیشنهادشده برای اختصاص منابع در جریان سنتز، شامل دو الگوریتم مکاشفهای و ILP میباشند. نتایج به دست آمده نشان میدهند که مطابق انتظار، برای ابعاد محدود معماری مورد استفاده، الگوریتم ILP به میزان قابل توجهی (حدود 30%) بهتر از الگوریتم مکاشفهای عمل مینماید.
The increasing capabilities of integrated circuits and the complexity of applications have led hardware design methods and tools to higher levels of abstraction and high-level synthesis is one of the key steps in increasing the level of abstraction. In recent years, extensive research has been conducted on the design of decimal arithmetic reconfigurable architectures. Since, on the one hand, the effective use of these architectures depends on the existence of appropriate algorithms and tools to implement the design on the hardware, and on the other hand, research on the development of these algorithms has been very limited, this paper will present methods for the automated synthesis of decimal arithmetic circuits on a coarse-grained reconfigurable architecture. The platform chosen to execute the proposed algorithms is the DARA coarse-grained reconfigurable architecture, which is optimized for decimal arithmetic. The algorithms proposed for resource allocation of synthesis include a heuristic method and an ILP algorithm. The results show that, as expected, for the limited architectural dimensions used, the ILP algorithm performs significantly (about 30%) better than the heuristic algorithm.
[1] M. Sedighi, F. Haddadi, S. Emami, and M. Saffarpour, "A heuristic algorithm for high level synthesis of decimal arithmetic circuits using systemC," in Proc. 10th Int. Conf. on Design & Technology of Integrated Systems in Nanoscale Era, DTIS'15, 6 pp., Napoli, Italy, 21-23 Apr. 2015.
[2] D. D. Gajski and L. Ramachandran, "Introduction to high-level synthesis," IEEE Design & Test of Computers, vol. 11, no. 4, pp. 44-54, Winter 1994.
[3] P. Coussy, D. D. Gajski, M. Meredith, and A. Takach, "An introduction to high-level synthesis," IEEE Design & Test of Computers, vol. 26, no. 4, pp. 8-17, Aug. 2009.
[4] R. Nane, V. M. Sima, C. Pilato, J. Choi, B. Fort, A. Canis, Y. T. Chen, H. Hsiao, S. Brown, F. Ferrandi, J. Anderson, and K. Bertels, "A survey and evaluation of FPGA high-level synthesis tools," IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 35, no. 10, pp. 1591-1604, Oct. 2016.
[5] L. K. Wang, M. A. Erle, C. Tsen, E. M. Schwarz, and M. J. Schulte, "A survey of hardware designs for decimal arithmetic," IBM J. of Research and Development, vol. 54, no. 2, pp. 8:1-8:15, Mar./Apr. 2010.
[6] A. Nannarelli, "FPGA based acceleration of decimal operations," in Proc. Int. Conf. on Reconfigurable Computing and FPGAs, ReConFig'11, Cancun, pp. 146-151, Cancun, Mexico, 30-30 Nov. 2011.
[7] J. Cong, B. Liu, S. Neuendorffer, J. Noguera, K. Vissers, and Z. Zhang, "High-level synthesis for FPGAs: from prototyping to deployment," IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 30, no. 4, pp. 473-491, Apr. 2011.
[8] M. A. Shami, Dynamically Reconfigurable Resource Array, Ph.D. Dissertation, KTH Sch. Inf. Tech. Sweden, Kista, 2012.
[9] Y. Kim, R. N. Mahapatra, and K. Choi, "Design space exploration for efficient resource utilization in coarse-grained reconfigurable architecture," IEEE Trans. on Very Large Scale Integration (VLSI) Systems, vol. 18, no. 10, pp. 1471-1482, Oct. 2010.
[10] S. Emami and M. Sedighi, "An optimized reconfigurable architecture for hardware implementation of decimal arithmetic," Computers & Electrical Engineering, vol. 63, pp. 18-29, Oct. 2017.
[11] M. Vladutiu, "Functional analysis and synthesis of binary and decimal adding and subtracting devices," in Computer Arithmetic Algorithms and Hardware Implementations, Springer Berlin Heidelberg, 2012.
[12] I. D. Castellanos, Analysis and Implementation of Decimal Arithmetic Hardware in Nanometer CMOS technology, Ph.D. Dissertation, Oklahoma State University, USA, 2008.
[13] J. P. Deschamps, G. J. A. Bioul, and G. D. Sutter, Synthesis of Arithmetic Circuits-FPGA, ASIC and Embedded Systems, Wiley-Interscience, 2006.
[14] M. A. Gladshtein, "Algorithmic synthesis of a combinational adder of decimal digits encoded by the Johnson-Mobius code," Automatic Control and Computer Sciences, vol. 43, no. 5, pp. 233-240, 2009.
[15] R. Zimmermann, "Datapath synthesis for standard-cell design," in Proc. of the 19th IEEE Symposium on Computer Arithmetic, pp. 207-211, Portland, OR, USA, 08-10 Jun. 2009.
[16] C. K. Cheng, "Design space exploration for power-efficient mixed-radix ling adders," in Proc. of the 19th IEEE Symp. on Computer Arithmetic, pp. 212-212, Portland, OR, USA, 8-10 Jun. 2009.
[17] A. K. Verma, P. Brisk, and P. Ienne, "Challenges in automatic optimization of arithmetic circuits," in Proc. of the 16th IEEE Symposium on Computer Arithmetic, pp. 213-218, Portland, OR, USA, 8-10 Jun. 2009.
[18] Zimpl, Zuse Institute Mathematical Programming Language, Available at: http://zimpl.zib.de.
[19] SCIP, Solving Constraint Integer Programs, Available at: http://scip.zib.de.
[20] IBM Corporation, The Telco Benchmark, Retrieved May 10, 2022, from: http://speleotrove.com/decimal/telcoSpec.html.
نشریه مهندسی برق و مهندسی كامپیوتر ایران، ب- مهندسی کامپیوتر، سال 20، شماره 4، زمستان 1401 319
مقاله پژوهشی
ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻي ﻣﺪارﻫﺎي ﺣﺴﺎﺑﯽ دﻫﺪﻫﯽ ﺑﺮ روي
ﻣﻌﻤﺎريﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ
سمانه امامی
چكیده: اﻓﺰاﯾﺶ ﻗﺎﺑﻠﯿﺖﻫﺎي ﻣﺪارﻫﺎي ﻣﺠﺘﻤﻊ و ﭘﯿﭽﯿﺪﮔﯽ ﺑﺮﻧﺎﻣﻪﻫﺎي ﮐﺎرﺑﺮدي، روشﻫﺎ و اﺑﺰارﻫﺎي ﻃﺮاﺣﯽ ﺳﺨﺖاﻓﺰار را ﺑﻪ ﺳﻤﺖ ﺳﻄﻮح ﺑﺎﻻﺗﺮي از اﻧﺘﺰاع ﺳﻮق داده و ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻ، ﯾﮑﯽ از ﮐﻠﯿﺪيﺗﺮﯾﻦ ﮔﺎمﻫﺎ در اﻓﺰاﯾﺶ ﺳﻄﺢ اﻧﺘﺰاع میباشد. در ﺳﺎلهای اﺧﯿﺮ، ﺗﺤﻘﯿﻘﺎت ﮔﺴﺘﺮدهاي ﺑﺮاي ﻃﺮاﺣﯽ ﺳﺎﺧﺘﺎرﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي ﺑﺎ ﻫﺪف ﺣﺴﺎب دﻫﺪﻫﯽ ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ. از آنجا که از یک سو، اﺳﺘﻔﺎده ﻣؤﺛﺮ از اﯾﻦ ﺳﺎﺧﺘﺎرﻫﺎ وابسته ﺑﻪ وﺟﻮد اﻟﮕﻮریتمها و اﺑﺰارﻫﺎي ﻣﻨﺎﺳﺐ ﺟﻬﺖ ﭘﯿﺎدهﺳﺎزي ﻃﺮاﺣﯽ ﺑﺮ روي ﺳﺨﺖاﻓﺰار بوده و از سوی دیگر، ﭘﮋوﻫﺶ در زﻣﯿﻨﻪ ﺗﻮﺳﻌﻪ اﯾﻦ دﺳﺘﻪ از اﻟﮕﻮرﯾﺘﻢﻫﺎ بسیار اندک و محدود بوده است، در این مقاله روشهایی ﺑﺮاي ﺳﻨﺘﺰ ﺧﻮدﮐﺎر ﺗﻮﺻﯿﻒ ﺳﻄﺢ ﺑﺎﻻ از ﻣﺪارﻫﺎي ﺣﺴﺎﺑﯽ دﻫﺪﻫﯽ بر روي ﯾﮏ ﻣﻌﻤﺎري ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ اراﺋﻪ خواهد شد. بستر سختافزاری انتخابشده، معماری قابل بازپیکربندی درشتدانه DARA بوده و روشهای پیشنهادشده برای اختصاص منابع در جریان سنتز، شامل دو الگوریتم مکاشفهای و ILP میباشند. نتایج به دست آمده نشان میدهند که مطابق انتظار، برای ابعاد محدود معماری مورد استفاده، الگوریتم ILP به میزان قابل توجهی (حدود 30%) بهتر از الگوریتم مکاشفهای عمل مینماید.
کلیدواژه: ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻ، ﺣﺴﺎب دﻫﺪﻫﯽ، ﻣﻌﻤﺎريﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ، نگاشت روی سختافزار، اختصاص منابع.
1- مقدمه
از آنجا که طراحی سامانههای دیجیتال بسیار پیچیده شدهاند، توصیف ﺳﻄﺢ اﻧﺘﻘﺎل ثبات 2(RTL) دیگر برای حل چالشهای پیش روی طراحان کافی نیست. ﺑﻨﺎﺑﺮاﯾﻦ در ﺳﺎلهای اﺧﯿﺮ، ﺗﻼشﻫﺎي ﻗﺎﺑﻞ ﻣﻼﺣﻈﻪاي ﺑﺮاي اﻓﺰاﯾﺶ ﺳﻄﺢ اﻧﺘﺰاع ﻣﺪلﺳﺎزي و ﻃﺮاﺣﯽ ﺳﯿﺴﺘﻢﻫﺎي دﯾﺠﯿﺘﺎل اﻧﺠﺎم ﺷﺪه اﺳﺖ و روشهای طراحی دیجیتال به ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻ 3(HLS) تکامل یافتهاند [1].
ﺳﻨﺘﺰ ﺳﻄﺢ ﺑﺎﻻ به مجموعهای از ﻋﻤﻠﯿﺎت گفته میشود ﮐﻪ ﯾﮏ ﺗﻮﺻﯿﻒ ﺳﻄﺢ ﺑﺎﻻ از ﻋﻤﻠﮑﺮد ﻣﺪار را ﺑﻪ ﺗﻮﺻﯿﻒ ﺳﻄﺢ اﻧﺘﻘﺎل ثبات آن ﺗﺒﺪﯾﻞ ﻣﯽﮐﻨﺪ [2]. اﻓﺰاﯾﺶ ﺳﻄﺢ اﻧﺘﺰاع، ﺗﻮﻟﯿﺪ ﺳﺮﯾﻊ ﯾﮏ ﺳﺨﺖاﻓﺰار در سطح RTL را با ﺳﺮﻋﺖ، ﻣﺴﺎﺣﺖ یا ﺗﻮان مصرفی بهینه اﻣﮑﺎنﭘﺬﯾﺮ ﻣﯽنماید [3]. با توجه به این که سنتز سطح بالا، ﻃﺮاﺣﯽ ﺳﯿﺴﺘﻢﻫﺎي ﭘﯿﭽﯿﺪه اﻣﺮوزي را تسهیل کرده و زﻣﺎن رﺳﯿﺪن ﻣﺤﺼﻮل ﺑﻪ ﺑﺎزار را ﮐﺎﻫﺶ داده است، به سرعت مورد توجه و گسترش قرار گرفت [4].
با توجه به مباحث مطرحشده، سنتز سطح بالا ﻣﯽﺗﻮاﻧﺪ در ﻫﻤﻪ ﮐﺎرﺑﺮدﻫﺎ ﻣﻔﯿﺪ واﻗﻊ ﺷﻮد، اﻣﺎ ﻫﺮﭼﻪ ﺗﻮﺻﯿﻒ اوﻟﯿﻪ ﭼﮑﯿﺪهﺗﺮ ﺑﺎﺷﺪ، کارایی جریان سنتز در ﮐﺎرﺑﺮد ﻣﻮرد ﻧﻈﺮ ﻧﻤﻮد ﺑﯿﺸﺘﺮي ﺧﻮاﻫﺪ داﺷﺖ. از ﺟﻤﻠﻪ ﮐﺎرﺑﺮدﻫﺎﯾﯽ ﮐﻪ ورودي اوﻟﯿﻪ در آﻧﻬﺎ ﺑﺴﯿﺎر ﭼﮑﯿﺪه اﺳﺖ، ﮐﺎرﺑﺮدﻫﺎي ﺣﺴﺎﺑﯽ اﺳﺖ. زیرا ﮐﺎرﺑﺮ ﺗﻨﻬﺎ ﯾﮏ ﻋﺒﺎرت ﺣﺴﺎﺑﯽ را وارد ﻣﯽﮐﻨﺪ و از ﻧﺤﻮه ﭘﯿﺎدهﺳﺎزي آن ﺑﺮ ﺑﺴﺘﺮ ﺳﺨﺖاﻓﺰار ﺑﯽاﻃﻼع اﺳﺖ. از ﻣﯿﺎن ﮐﺎرﺑﺮدﻫﺎي ﺣﺴﺎﺑﯽ ﮐﻪ اغلب ﻧﯿﺎز ﺑﻪ دﻗﺖ ﺑﺎﻻﯾﯽ دارﻧﺪ، ﺣﺴﺎب دﻫﺪﻫﯽ از اﻫﻤﯿﺖ وﯾﮋهاي ﺑﺮﺧﻮردار اﺳﺖ. زیرا از یک سو، بیشتر عملیات حسابی در زندگی امروز بشر (مانند کاربردهای مالی و تجاری) با دادههای دهدهی انجام میشوند و از سوی دیگر، بسیاری از اعداد اعشاری دهدهی مانند 1/0 نمیتوانند نمایش دقیقی در مبنای دو داشته باشند [5]. برای حفظ دقت در این ﮐﺎرﺑﺮدﻫﺎ، ﯾﺎ ﺑﺎﯾﺪ آنها را ﺑﺎ اﺳﺘﻔﺎده از ﮐﺘﺎﺑﺨﺎﻧﻪﻫﺎي ﺣﺴﺎب دﻫﺪﻫﯽ ﻣﺒﺘﻨﯽ ﺑﺮ ﻧﺮماﻓﺰار اﺟﺮا نمود و یا از ﻣﺪارﻫﺎي ﺳﺨﺖاﻓﺰاري ﻣﻨﺎﺳﺐ ﺑﺮاي ﻋﻤﻠﯿﺎت دﻫﺪﻫﯽ ﭘﺎﯾﻪ اﺳﺘﻔﺎده کرد. از آنجا که پیادهسازی نرمافزاری حساب دهدهی بین 100 تا 1000 برابر کندتر از پیادهسازی دودویی در سختافزار است، گرایش به پیادهسازی سختافزاری حساب دهدهی در سالهای اخیر افزایش یافته است [6]. در پیادهسازیهای سختافزاری، طراحی به روش 4ASIC و استفاده از 5FPGAها، دو سر طیف انواع پیادهسازی و نقطه مقابل یکدیگر از نظر مساحت، توان، تأخیر، انعطافپذیری، هزینه ساخت و زمان آمادهشدن محصول هستند [7] تا [9]. ﻫﺪف ﯾﮏ ﻃﺮاﺣﯽ ﺧﻮب، رﺳﯿﺪن ﺑﻪ ﺳﺮﻋﺘﯽ ﺷﺒﯿﻪ ﺑﻪ ASIC و ﻗﺪرت اﻧﻌﻄﺎف، ﺻﺮف زﻣﺎن و هزینهای مشابه FPGA است. اﻓﺰاﯾﺶ ﻫﺰﯾﻨﻪﻫﺎي ﻃﺮاﺣﯽ و ﺻﺮف زﻣﺎن زﯾﺎد ﺑﺮاي ASIC و کارایی پایین محاسباتی و سربار بالای مساحت در FPGAها، طراحان معماری را وادار به جستجوی جایگزینی برای این معماریها کرده
است. ﻣﻌﻤﺎريﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ 6(CGRA) داراي ﮐﺎراﯾﯽ ﻣﺤﺎﺳﺒﺎﺗﯽ ﺑﺎﻻ، ﻫﺰینه و ﺻﺮف زﻣﺎن ﭘﺎﯾﯿﻨﯽ ﺑﺮاي ﻃﺮاﺣﯽ ﻫﺴﺘﻨﺪ و ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ، ﺟﺎﯾﮕﺰینی ﺟﺬاب و ﻣﻨﺎسب ﺑﺮاي ﻃﺮاﺣﯽ در ﺣﻮزه ﮐﺎرﺑﺮدﻫﺎي ﺧﺎصﻣﻨﻈﻮره ﻫﺴﺘﻨﺪ. در واﻗﻊ ﻣﻌﻤﺎريﻫﺎي ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ، مصالحهای7 بین ASIC و FPGAها به شمار میروند، زیرا نسبت به FPGAها، ﺑﺎزده ﻣﺤﺎﺳﺒﺎﺗﯽ ﺑﻬﺘﺮ و در ﻣﻘﺎﯾﺴﻪ ﺑﺎ ASIC، بازده ﻣﻬﻨﺪﺳﯽ ﺑﻬﺘﺮي دارﻧﺪ [8].
این مقاله به اراﺋﻪ ﯾﮏ روش ﺳﻨﺘﺰ ﺧﻮدﮐﺎر ﺗﻮﺻﯿﻒ ﺳﻄﺢ ﺑﺎﻻ از ﻣﺪارﻫﺎي حسابی دهدهی روي ﯾﮏ ﻣﻌﻤﺎري ﻗﺎﺑﻞ ﺑﺎزﭘﯿﮑﺮﺑﻨﺪي درﺷﺖداﻧﻪ از این کاربرد میپردازد. معماری انتخابشده برای این منظور، 8DARA نام دارد [10] که در بخش دوم معرفی گردیده و روشهای پیشنهادشده برای اختصاص منابع در جریان سنتز، شامل دو الگوریتم مکاشفهای و برنامهنویسی خطی صحیح 9(ILP) میباشند.
ساختار مقاله به این شرح است که در بخش دوم به مرور کارهای انجامشده در زمینه سنتز مدارهای حسابی پرداخته میشود. در بخش سوم، روش پیشنهادی برای سنتز سطح بالای مدارهای حسابی دهدهی ارائه میگردد. مقایسه نتایج حاصل از روشهای پیشنهادی در بخش چهارم بیان میشود و در بخش پنجم، نتیجهگیری و پیشنهادهایی برای کارهای آینده ارائه خواهد گردید.
2- مروری بر کارهای گذشته
در پژوهشهای مختلف، نگاه متفاوتی به تعریف سنتز مدارهای حسابی وجود دارد. در برخی منابع مانند [11]، مفهوم سنتز در معنای عام تبدیل الگوریتم به مدار و معادل با طراحی مدار با استفاده از عبارات منطقی، جدول کارنو و جدول درستی10 در نظر گرفته شده است. در [12]، سنتز فرایندی است که یک توصیف سطح بالای سختافزار را با در نظر گرفتن زمانبندی سلولها و محدودیتهای دیگر، به netlist تبدیل مینماید. در [13]، اصطلاح سنتز به معنای عام طراحی با در نظر گرفتن انتخابهای مختلف در فضای جواب به کار میرود. در [14] منظور از سنتز الگوریتمی، ارائه یک الگوریتم برای تبدیل دادههای ورودی به خروجی است که به سادگی با استفاده از یک مدار ترکیبی پیادهسازی شده است. در [15] تنها به بیان معماریها و روشهای به کار رفته در ابزارهای سنتز تجاری برای بهبود طراحی مبتنی بر سلول11 از نظر زمان، مساحت و توان پرداخته شده است. در این منبع به بیان کلیات روند سنتز به کار گرفته شده در این ابزارها، شامل استخراج عملیات حسابی از توصیف انجامشده و خوشهبندی آنها در دستههای بزرگتر، بهینهسازی مسیر داده با الگوریتمهای مختلف حسابی، تولید netlist با استفاده از روشهای مختلف پیادهسازی عملگرها و الگوریتمهایی برای کاهش توان مصرفی ناشی از بزرگبودن اندازه مدارها و فعالیت بالای سوئیچها پرداخته شده است.
بعضی منابع، در تعریف سنتز فقط بر روی بهینهسازی مدار متمرکز شدهاند. به عنوان نمونه در [16] با استفاده از ILP، روشی بهینه برای پیادهسازی جمعکننده Ling ارائه گردیده است. نویسنده این مقاله ادعا کرده که یک فرمولبندی ILP بر اساس مدلهای تلاش منطقی12 ارائه نموده که با کوچکسازی فضای جستجو، زمان اجرای الگوریتم را کاهش میدهد. منبع دیگری که به جنبه بهینهسازی در سنتز پرداخته است، [17] بوده که 3 روش مختلف برای بهینهسازی مدارهای حسابی ارائه مینماید.
مقاله [1]، سنتز سطح بالا را بر 3 بخش اصلی استوار میداند: 1) کتابخانه گسترشیافته از مؤلفههای سطح بالا که ویژگیهای دقیق آنها مانند تأخیر، مساحت و توان، برای الگوریتم سنتزی که میخواهد از آنها استفاده کند، مشخص شده باشد. 2) یک زبان سطح بالا که از توصیف و مدلسازی مداری که باید سنتز شود، پشتیبانی نماید. 3) یک یا چند الگوریتم که فضای طراحی را به منظور یافتن راه حل بهینه یا نزدیک به بهینه جستجو کند.
معماری DARA که در این مقاله از آن به عنوان بستر سختافزاری الگوریتمهای پیشنهادی استفاده میشود، در شکل 1 آمده است. این معماری از تکرار منظم 5 نوع بلوک مختلف، تشکیل و برای پیادهسازی عملیات پایه حساب دهدهی بهینه شده است. با توجه به درشتدانهبودن معماری DARA و دنبالکردن رویکرد [1]، از خود بلوکهای سازنده آن به عنوان مؤلفههای موجود در کتابخانه استفاده گردیده و زبان توصیف مدار دهدهی ورودی نیز SystemC در نظر گرفته شده است. در این مقاله بر روی عنصر سوم جریان سنتز، یعنی الگوریتم نگاشت بر روی سختافزار تمرکز شده و یک روش مکاشفهای13 یک الگوریتم ILP برای سنتز یک مدار دهدهی ورودی بر روی یک سختافزار قابل بازپیکربندی درشتدانه (DARA) پیشنهاد میگردد.
3- روشهای سنتز پیشنهادی
از آنجا که الگوریتمهای پیشنهادی بر روی یک 14DFG ورودی عمل میکنند، گام اول در جریان سنتز، تبدیل توصیف اولیه مدار حسابی به DFG میباشد. برای تولید این DFG که در ادامه آن را DFG سطح بالا 15(HLDFG) مینامیم، از همان الگوریتم ارائهشده در [1] استفاده میشود. بعد از تولید DFG سطح بالا، جستجو برای یافتن بهترین نگاشت گرههای DFG بر روی معماری آغاز خواهد گردید.
گام دوم و مشترک در هر دو الگوریتم پیشنهادی، بررسی وجود راه حل برای نگاشت یا همان امکانسنجی مسئله میباشد. اگر هدف،