{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,27]],"date-time":"2026-03-27T17:07:46Z","timestamp":1774631266662,"version":"3.50.1"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2014,8,1]],"date-time":"2014-08-01T00:00:00Z","timestamp":1406851200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2014,8]]},"abstract":"<jats:p>DSP blocks in modern FPGAs can be used for a wide range of arithmetic functions, offering increased performance while saving logic resources for other uses. They have evolved to better support a plethora of signal processing tasks, meaning that in other application domains they may be underutilised. The DSP48E1 primitives in new Xilinx devices support dynamic programmability that can help extend their usefulness; the specific function of a DSP block can be modified on a cycle-by-cycle basis. However, the standard synthesis flow does not leverage this flexibility in the vast majority of cases. The lean DSP Extension Architecture (iDEA) presented in this article builds around the dynamic programmability of a single DSP48E1 primitive, with minimal additional logic to create a general-purpose processor supporting a full instruction-set architecture. The result is a very compact, fast processor that can execute a full gamut of general machine instructions. We show a number of simple applications compiled using an MIPS compiler and translated to the iDEA instruction set, comparing with a Xilinx MicroBlaze to show estimated performance figures. Being based on the DSP48E1, this processor can be deployed across next-generation Xilinx Artix-7, Kintex-7, Virtex-7, and Zynq families.<\/jats:p>","DOI":"10.1145\/2629443","type":"journal-article","created":{"date-parts":[[2014,8,29]],"date-time":"2014-08-29T13:03:31Z","timestamp":1409317411000},"page":"1-23","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":36,"title":["The iDEA DSP Block-Based Soft Processor for FPGAs"],"prefix":"10.1145","volume":"7","author":[{"given":"Hui Yan","family":"Cheah","sequence":"first","affiliation":[{"name":"Nanyang Technological University, Nanyang Avenue, Singapore"}]},{"given":"Fredrik","family":"Brosser","sequence":"additional","affiliation":[{"name":"Nanyang Technological University, Nanyang Avenue, Singapore"}]},{"given":"Suhaib A.","family":"Fahmy","sequence":"additional","affiliation":[{"name":"Nanyang Technological University, Nanyang Avenue, Singapore"}]},{"given":"Douglas L.","family":"Maskell","sequence":"additional","affiliation":[{"name":"Nanyang Technological University, Nanyang Avenue, Singapore"}]}],"member":"320","published-online":{"date-parts":[[2014,9,3]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Aeroflex Gaisler. 2012. GRLIB ip library user's manual. http:\/\/aeroflex.bentech-taiwan.com\/aeroflex\/pdf\/grlib.pdf.  Aeroflex Gaisler. 2012. GRLIB ip library user's manual. http:\/\/aeroflex.bentech-taiwan.com\/aeroflex\/pdf\/grlib.pdf."},{"key":"e_1_2_1_2_1","unstructured":"Altera Corpration. 2011. Nios II processor design. http:\/\/www.altera.com\/literature\/lit-nio2.jsp.  Altera Corpration. 2011. Nios II processor design. http:\/\/www.altera.com\/literature\/lit-nio2.jsp."},{"key":"e_1_2_1_3_1","unstructured":"Arm Ltd. 2011. Cortex-m1 processor. http:\/\/www.arm.com\/products\/processors\/cortex-m\/cortex-m1.php.  Arm Ltd. 2011. Cortex-m1 processor. http:\/\/www.arm.com\/products\/processors\/cortex-m\/cortex-m1.php."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2011.154"},{"key":"e_1_2_1_5_1","volume-title":"Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'13)","author":"Brosser F.","unstructured":"F. Brosser , H. Y. Cheah , and S. A. Fahmy . 2013. Iterative floating point computation using FPGA DSP blocks . In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'13) . F. Brosser, H. Y. Cheah, and S. A. Fahmy. 2013. Iterative floating point computation using FPGA DSP blocks. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'13)."},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the Design and Diagnostics of Electronic Circuits and Systems Conference (DDECS'07)","author":"Buciak P.","unstructured":"P. Buciak and J. Botwicz . 2007. Lightweight multi-threaded network processor core in FPGA . In Proceedings of the Design and Diagnostics of Electronic Circuits and Systems Conference (DDECS'07) . 1--5. P. Buciak and J. Botwicz. 2007. Lightweight multi-threaded network processor core in FPGA. In Proceedings of the Design and Diagnostics of Electronic Circuits and Systems Conference (DDECS'07). 1--5."},{"key":"e_1_2_1_7_1","unstructured":"H. Y. Cheah 2013. iDEA FPGA soft processor. https:\/\/github.com\/archntu\/idea.  H. Y. Cheah 2013. iDEA FPGA soft processor. https:\/\/github.com\/archntu\/idea."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the International Conference on Field Programmable Technology (FPT'12)","author":"Cheah H. Y.","unstructured":"H. Y. Cheah , S. A. Fahmy , and D. L. Maskell . 2012a. iDEA: A DSP block based FPGA soft processor . In Proceedings of the International Conference on Field Programmable Technology (FPT'12) . 151--158. H. Y. Cheah, S. A. Fahmy, and D. L. Maskell. 2012a. iDEA: A DSP block based FPGA soft processor. In Proceedings of the International Conference on Field Programmable Technology (FPT'12). 151--158."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2145694.2145734"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950413.1950420"},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the International Conference on Field Programmable Technology (FPT'10)","author":"Chu X.","unstructured":"X. Chu and J. Mcallister . 2010. FPGA based soft-core SIMD processing: A MIMO-OFDM fixed-complexity sphere decoder case study . In Proceedings of the International Conference on Field Programmable Technology (FPT'10) . 479--484. X. Chu and J. Mcallister. 2010. FPGA based soft-core SIMD processing: A MIMO-OFDM fixed-complexity sphere decoder case study. In Proceedings of the International Conference on Field Programmable Technology (FPT'10). 479--484."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/MDT.2011.44"},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'05)","author":"Dimond R.","unstructured":"R. Dimond , O. Mencer , and W. Luk . 2005. CUSTARD\u2014A customisable threaded FPGA soft processor and tools . In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'05) . R. Dimond, O. Mencer, and W. Luk. 2005. CUSTARD\u2014A customisable threaded FPGA soft processor and tools. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'05)."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2011.14"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/1870926.1871169"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1723112.1723122"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2145694.2145731"},{"key":"e_1_2_1_18_1","unstructured":"Lattice Semiconductor Corp. 2009. LatticeMico32 processor reference manual. http:\/\/www.lattice.us\/&sim;\/Documents\/UserManuals\/JL\/LatticeMico32HardwareDeveloperUserGuide.PDF&quest;document_id=35467  Lattice Semiconductor Corp. 2009. LatticeMico32 processor reference manual. http:\/\/www.lattice.us\/&sim;\/Documents\/UserManuals\/JL\/LatticeMico32HardwareDeveloperUserGuide.PDF&quest;document_id=35467"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2011.51"},{"key":"e_1_2_1_20_1","volume-title":"Proceedings of the IEEE Global Communications Conference (GLOBECOM'09)","author":"Lotze J.","unstructured":"J. Lotze , S. A. Fahmy , J. Noguera , B. Ozgul , L. Doyle , and R. Esser . 2009. Development framework for implementing FPGA-based cognitive network nodes . In Proceedings of the IEEE Global Communications Conference (GLOBECOM'09) . J. Lotze, S. A. Fahmy, J. Noguera, B. Ozgul, L. Doyle, and R. Esser. 2009. Development framework for implementing FPGA-based cognitive network nodes. In Proceedings of the IEEE Global Communications Conference (GLOBECOM'09)."},{"key":"e_1_2_1_21_1","volume-title":"Conference Record of the Asilomar Conference on Signals, Systems and Computers. 226--230","author":"Milford M.","unstructured":"M. Milford and J. Mcallister . 2009. An ultra-fine processor for FPGA DSP chip multiprocessors . In Conference Record of the Asilomar Conference on Signals, Systems and Computers. 226--230 . M. Milford and J. Mcallister. 2009. An ultra-fine processor for FPGA DSP chip multiprocessors. In Conference Record of the Asilomar Conference on Signals, Systems and Computers. 226--230."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2005.209"},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'12)","author":"Ronak B.","unstructured":"B. Ronak and S. A. Fahmy . 2012. Evaluating the efficiency of DSP block synthesis inference from flow graphs . In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'12) . 727--730. B. Ronak and S. A. Fahmy. 2012. Evaluating the efficiency of DSP block synthesis inference from flow graphs. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL'12). 727--730."},{"key":"e_1_2_1_24_1","volume-title":"Proceedings of the Workshop on the Intersections of Computer Architecture and Reconfigurable Logic.","author":"Severance A.","unstructured":"A. Severance and G. Lemieux . 2012. VENICE: A compact vector processor for FPGA applications . In Proceedings of the Workshop on the Intersections of Computer Architecture and Reconfigurable Logic. A. Severance and G. Lemieux. 2012. VENICE: A compact vector processor for FPGA applications. In Proceedings of the Workshop on the Intersections of Computer Architecture and Reconfigurable Logic."},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the International Conference on Field-Programmable Technology (FPT'12)","author":"Vipin K.","unstructured":"K. Vipin and S. A. Fahmy . 2012. A high speed open source controller for FPGA partial reconfiguration . In Proceedings of the International Conference on Field-Programmable Technology (FPT'12) . 61--66. K. Vipin and S. A. Fahmy. 2012. A high speed open source controller for FPGA partial reconfiguration. In Proceedings of the International Conference on Field-Programmable Technology (FPT'12). 61--66."},{"key":"e_1_2_1_26_1","unstructured":"Xilinx. 2010. Virtex-4 family overview. http:\/\/www.xilinx.com\/support\/documentation\/data_sheets\/ds112.pdf.  Xilinx. 2010. Virtex-4 family overview. http:\/\/www.xilinx.com\/support\/documentation\/data_sheets\/ds112.pdf."},{"key":"e_1_2_1_27_1","unstructured":"Xilinx. 2011a. UG081: MicroBlaze processor reference guide. http:\/\/www.xilinx.com\/support\/documentation\/sw_manuals\/xilinx13_1\/mb_ref_guide.pdf.  Xilinx. 2011a. UG081: MicroBlaze processor reference guide. http:\/\/www.xilinx.com\/support\/documentation\/sw_manuals\/xilinx13_1\/mb_ref_guide.pdf."},{"key":"e_1_2_1_28_1","unstructured":"Xilinx. 2011b. UG369: Virtex-6 FPGA DSP48E1 Slice user guide. http:\/\/www.xilinx.com\/support\/documentation\/user_guides\/ug369.pdf.  Xilinx. 2011b. UG369: Virtex-6 FPGA DSP48E1 Slice user guide. http:\/\/www.xilinx.com\/support\/documentation\/user_guides\/ug369.pdf."},{"key":"e_1_2_1_29_1","unstructured":"Xilinx. 2011c. Virtex-II pro and Virtex-II Pro X platform FPGAs data sheet. http:\/\/www.xilinx.com\/support\/documentation\/data_sheets\/ds083.pdf  Xilinx. 2011c. Virtex-II pro and Virtex-II Pro X platform FPGAs data sheet. http:\/\/www.xilinx.com\/support\/documentation\/data_sheets\/ds083.pdf"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2554688.2554779"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1450095.1450107"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1344671.1344704"}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2629443","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2629443","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:01:17Z","timestamp":1750230077000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2629443"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,8]]},"references-count":32,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2014,8]]}},"alternative-id":["10.1145\/2629443"],"URL":"https:\/\/doi.org\/10.1145\/2629443","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"value":"1936-7406","type":"print"},{"value":"1936-7414","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,8]]},"assertion":[{"value":"2011-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-12-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-09-03","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}