N. Corna, E. Ronconi, F. Garzetti, S. Salgaro, N. Lusardi, L. Tavazzani, A. Geraci
{"title":"High-Performance Physical-Independent Address-Based Communication Interface for FPGA in Custom Scientific Equipment","authors":"N. Corna, E. Ronconi, F. Garzetti, S. Salgaro, N. Lusardi, L. Tavazzani, A. Geraci","doi":"10.1109/NSS/MIC42677.2020.9507844","DOIUrl":null,"url":null,"abstract":"Nowadays, in different scientific applications, custom processing systems are particularly suited for Field-Programmable Gate Arrays (FPGA), rather than for Application Specific Integrate Circuits (ASIC). This is mainly due to the added flexibility, simpler design and manufacturing process that FPGA solutions offer, fitting the needs of small-scale custom applications. While the intra-chip data-transfer between the IP-Cores (IPs) that compose the FPGA architecture is relatively easy to implement, the communication system with Temporal Computing (TC) devices is not trivial to build. This contribution focuses on this issue and presents our inter-chip communication system, that possesses the quality of not relying on any specific physical link feature, which allows the use of any type of connection between FPGA and TC devices, as long as it transmits ordered data. Encoding and communication errors are also automatically detected. The system is composed by a software part and a hardware one. The software part is developed in C++, with Python bindings, and provides the read and write methods, to be able to issue the relative commands to an internal standard bus of the FPGA. The hardware part is composed by the sub-modules Packet Transmission Engine (PTE) and Memory Management Engine (MME); the first one being responsible for packets' data framing, integrity check and data multiplexing on the physical link, while the second one executing the read and write operations which were encoded within the packets.","PeriodicalId":6760,"journal":{"name":"2020 IEEE Nuclear Science Symposium and Medical Imaging Conference (NSS/MIC)","volume":"222 1","pages":"1-4"},"PeriodicalIF":0.0000,"publicationDate":"2020-10-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE Nuclear Science Symposium and Medical Imaging Conference (NSS/MIC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/NSS/MIC42677.2020.9507844","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Nowadays, in different scientific applications, custom processing systems are particularly suited for Field-Programmable Gate Arrays (FPGA), rather than for Application Specific Integrate Circuits (ASIC). This is mainly due to the added flexibility, simpler design and manufacturing process that FPGA solutions offer, fitting the needs of small-scale custom applications. While the intra-chip data-transfer between the IP-Cores (IPs) that compose the FPGA architecture is relatively easy to implement, the communication system with Temporal Computing (TC) devices is not trivial to build. This contribution focuses on this issue and presents our inter-chip communication system, that possesses the quality of not relying on any specific physical link feature, which allows the use of any type of connection between FPGA and TC devices, as long as it transmits ordered data. Encoding and communication errors are also automatically detected. The system is composed by a software part and a hardware one. The software part is developed in C++, with Python bindings, and provides the read and write methods, to be able to issue the relative commands to an internal standard bus of the FPGA. The hardware part is composed by the sub-modules Packet Transmission Engine (PTE) and Memory Management Engine (MME); the first one being responsible for packets' data framing, integrity check and data multiplexing on the physical link, while the second one executing the read and write operations which were encoded within the packets.