{"id":"https://openalex.org/W7140625958","doi":"https://doi.org/10.1109/fpl68686.2025.00039","title":"Cocotb-Pynq: Co-Simulating Python+RTL Applications Targeting Pynq Platforms with Cocotb","display_name":"Cocotb-Pynq: Co-Simulating Python+RTL Applications Targeting Pynq Platforms with Cocotb","publication_year":2025,"publication_date":"2025-09-01","ids":{"openalex":"https://openalex.org/W7140625958","doi":"https://doi.org/10.1109/fpl68686.2025.00039"},"language":null,"primary_location":{"id":"doi:10.1109/fpl68686.2025.00039","is_oa":false,"landing_page_url":"https://doi.org/10.1109/fpl68686.2025.00039","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2025 35th International Conference on Field-Programmable Logic and Applications (FPL)","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5130649402","display_name":"Gavin Lusby","orcid":null},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"Gavin Lusby","raw_affiliation_strings":["University of Waterloo,Department of Electrical and Computer Engineering,Waterloo,Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo,Department of Electrical and Computer Engineering,Waterloo,Canada","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5015534628","display_name":"Nachiket Kapre","orcid":"https://orcid.org/0000-0002-2187-0406"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Nachiket Kapre","raw_affiliation_strings":["University of Waterloo,Department of Electrical and Computer Engineering,Waterloo,Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo,Department of Electrical and Computer Engineering,Waterloo,Canada","institution_ids":["https://openalex.org/I151746483"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5130649402"],"corresponding_institution_ids":["https://openalex.org/I151746483"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.87793409,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"222","last_page":"226"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T13650","display_name":"Computational Physics and Python Applications","score":0.1062999963760376,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T13650","display_name":"Computational Physics and Python Applications","score":0.1062999963760376,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10714","display_name":"Software-Defined Networks and 5G","score":0.06560000032186508,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.04729999974370003,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/process","display_name":"Process (computing)","score":0.29840001463890076},{"id":"https://openalex.org/keywords/troubleshooting","display_name":"Troubleshooting","score":0.2653999924659729},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.24789999425411224},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.24480000138282776},{"id":"https://openalex.org/keywords/identification","display_name":"Identification (biology)","score":0.24300000071525574}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.4851999878883362},{"id":"https://openalex.org/C98045186","wikidata":"https://www.wikidata.org/wiki/Q205663","display_name":"Process (computing)","level":2,"score":0.29840001463890076},{"id":"https://openalex.org/C147494362","wikidata":"https://www.wikidata.org/wiki/Q2078905","display_name":"Troubleshooting","level":2,"score":0.2653999924659729},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.2572999894618988},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.24789999425411224},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.24480000138282776},{"id":"https://openalex.org/C116834253","wikidata":"https://www.wikidata.org/wiki/Q2039217","display_name":"Identification (biology)","level":2,"score":0.24300000071525574},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.23330000042915344},{"id":"https://openalex.org/C192209626","wikidata":"https://www.wikidata.org/wiki/Q190909","display_name":"Focus (optics)","level":2,"score":0.22750000655651093},{"id":"https://openalex.org/C18762648","wikidata":"https://www.wikidata.org/wiki/Q42213","display_name":"Work (physics)","level":2,"score":0.22550000250339508}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1109/fpl68686.2025.00039","is_oa":false,"landing_page_url":"https://doi.org/10.1109/fpl68686.2025.00039","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2025 35th International Conference on Field-Programmable Logic and Applications (FPL)","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"The":[0,236],"AMD":[1],"Pynq":[2,96,148,158,207],"ecosystem":[3,149],"fails":[4],"to":[5,10,49,78,129,150,176,198],"provide":[6],"a":[7,75,85,104,118,187,220],"seamless":[8],"way":[9],"easily":[11],"validate":[12],"functional":[13],"correctness":[14,56],"of":[15,20,57,87,131,146,189,202,226],"RTL":[16,65,82,134],"designs":[17,83,231],"when":[18],"part":[19],"the":[21,28,39,50,55,58,64,69,95,123,147,165,172,233],"application":[22],"logic":[23],"runs":[24],"in":[25,84,117,160],"Python":[26,59,108,132,173],"on":[27,68,186],"ARM":[29,109],"(or":[30,110],"x86)":[31,111],"host":[32,60,112],"CPU.":[33],"Application":[34],"developers":[35],"must":[36],"wait":[37],"for":[38,106,125,157,206,212,229,244],"entire":[40,234],"FPGA":[41,51],"bitstream":[42,126,199],"generation":[43,127,200],"flow":[44],"and":[45,80,114,133,136,153,167,192,241,247],"deploy":[46],"their":[47,194],"code":[48,61,113],"before":[52],"they":[53],"confirm":[54],"working":[62],"with":[63,94,179,216],"design":[66,140],"implemented":[67],"FPGA.":[70],"In":[71,98,196],"contrast,":[72],"Cocotb":[73,180],"offers":[74],"Pythonic":[76],"framework":[77,105,185,237],"test":[79],"simulate":[81],"variety":[86],"cycle-accurate":[88],"simulators,":[89],"but":[90],"lacks":[91],"easy":[92],"integration":[93],"ecosystem.":[97],"this":[99],"paper,":[100],"we":[101,163],"propose":[102],"Cocotb-Pynq,":[103],"co-simulating":[107],"RTL/Verilog":[115],"programs":[116,191],"single":[119],"environment.":[120],"This":[121],"eliminates":[122],"need":[124],"prior":[128],"co-simulation":[130,222],"components":[135,145],"significantly":[137],"speeds":[138],"up":[139],"iterations.":[141],"We":[142,182],"rewrite":[143,164],"key":[144],"be":[151,177,239],"cocotb-compatible":[152],"offer":[154],"drop-in":[155],"solutions":[156],"APIs":[159],"Cocotb.":[161],"Specifically,":[162],"MMIO":[166],"AXI":[168],"DMA":[169],"blocks":[170],"using":[171,232],"asyncio":[174],"library":[175],"compatible":[178],"emulation.":[181],"evaluate":[183],"our":[184,213],"suite":[188],"benchmark":[190],"quantify":[193],"performance.":[195],"contrast":[197],"times":[201],"10":[203],"minutes":[204,225],"needed":[205],"devices":[208],"such":[209],"as":[210],"PynqZ1":[211],"small":[214],"benchmarks":[215],"modest":[217],"frequency":[218],"targets,":[219],"Cocotb-Pynq":[221],"takes":[223],"1-2":[224],"runtime":[227],"even":[228],"large":[230],"chip.":[235],"will":[238],"open-sourced":[240],"made":[242],"available":[243],"community":[245],"contributions":[246],"evolution.":[248]},"counts_by_year":[],"updated_date":"2026-03-28T06:11:35.319607","created_date":"2026-03-27T00:00:00"}
